dsh-gap-feed:长思考期间的对话流注入插件

在 DeepSeek Harness (DSH) 环境中,智能体在处理复杂任务时通常需要较长的思考时间。在这段时间里,对话流往往是静默的,用户可能无法感知系统正在工作,也无法获得实时的背景信息。现有的做法通常是轮询状态或手动查询,交互体验不够连贯。dsh-gap-feed 插件旨在解决这个问题,它能在智能体长思考期间,将热点新闻或自定义提醒卡片直接插入对话流中,保持用户对当前会话的感知。

这是一个由 faukwaa 维护的联网工具类插件,遵循 MIT 许可证。它通过在长思考阶段触发消息注入,向对话流中添加卡片内容,且频率较低,不会打断正常的交互。

安装

使用官方命令安装:

dsh plugin --profile web add dsh-gap-feed

安装后,重启 dsh web 或刷新页面即可生效。

核心功能

  1. 长思考注入
    插件不会在每次思考时都触发。只有当满足以下条件时,才会向对话流注入卡片:

    • enabled 开关为 true;
    • 智能体持续思考时间超过 minThinkSeconds(默认 20 秒)且未处于空闲状态;
    • 距离上次注入已超过 cooldownMinutes(默认 15 分钟);
    • 过去一小时内注入次数未超过 maxPerHour(默认 4 次)。
  2. 多源并行抓取
    支持同时从三个源抓取数据:

    • 今日头条:使用公开 API,无需登录;
    • GitHub 趋势:抓取本周创建且按 Star 数排序的仓库;
    • Bilibili 热榜:获取当前热门视频排行。
      多个源并行抓取,任一源失败都不会影响其他源的正常运行。
  3. 自然语言提醒
    用户可以在对话中直接使用自然语言设置提醒,插件会解析任务和截止时间并保存。支持的示例包括:

    • “提醒我 18:00 开会”
    • “remind me to have a meeting at 18:00”
    • “半小时后提醒我回邮件”
      解析失败时返回友好错误,不会阻断对话。
  4. 优先级与去重

    • 优先级:已到期的提醒优先于新闻显示。
    • 去重:同一内容不会在单次会话中重复注入。
  5. 持久化与配置

    • 内置设置页面,自动根据配置表单渲染 UI,支持修改限流参数、管理提醒(增删改查、启用/完成)。
    • 配置和提醒数据支持持久化存储,重启后不丢失。
    • 注入的消息继承会话中现有消息的 model source,确保会话加载正常。

配置项

配置项 类型 默认值 说明
enabled boolean true 总开关
minThinkSeconds number 20 触发注入的最长思考时间(秒)
cooldownMinutes number 15 注入间隔的最小时间(分钟)
maxPerHour number 4 每小时最大注入次数
blacklist string[] [] 标题黑名单关键词,匹配的标题会被过滤

提醒存储

提醒数据存储在本地文件中:

$DSH_HOME/profiles/<profile>/data/gap-feed/reminders.json
  • DSH_HOME 默认为 ~/.dsh;
  • 文件结构为 JSON 数组,包含 id、text、dueAt、done、enabled、createdAt 字段;
  • 缺失的目录会自动创建,读写失败或 JSON 损坏时静默回退到内存状态。

注意事项

  • Bilibili 限流:Bilibili 源在数据中心 IP 下可能触发限流(错误码 -352),但插件会静默降级,不影响其他源。
  • 会话去重:去重逻辑仅针对单次会话生命周期(重启后重新计算),因此重启后可能出现重复内容。
  • 运行权限:插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜