在 DeepSeek Harness (DSH) 环境中,智能体在处理复杂任务时通常需要较长的思考时间。在这段时间里,对话流往往是静默的,用户可能无法感知系统正在工作,也无法获得实时的背景信息。现有的做法通常是轮询状态或手动查询,交互体验不够连贯。dsh-gap-feed 插件旨在解决这个问题,它能在智能体长思考期间,将热点新闻或自定义提醒卡片直接插入对话流中,保持用户对当前会话的感知。
这是一个由 faukwaa 维护的联网工具类插件,遵循 MIT 许可证。它通过在长思考阶段触发消息注入,向对话流中添加卡片内容,且频率较低,不会打断正常的交互。
安装¶
使用官方命令安装:
dsh plugin --profile web add dsh-gap-feed
安装后,重启 dsh web 或刷新页面即可生效。
核心功能¶
-
长思考注入
插件不会在每次思考时都触发。只有当满足以下条件时,才会向对话流注入卡片:enabled开关为true;- 智能体持续思考时间超过
minThinkSeconds(默认 20 秒)且未处于空闲状态; - 距离上次注入已超过
cooldownMinutes(默认 15 分钟); - 过去一小时内注入次数未超过
maxPerHour(默认 4 次)。
-
多源并行抓取
支持同时从三个源抓取数据:- 今日头条:使用公开 API,无需登录;
- GitHub 趋势:抓取本周创建且按 Star 数排序的仓库;
- Bilibili 热榜:获取当前热门视频排行。
多个源并行抓取,任一源失败都不会影响其他源的正常运行。
-
自然语言提醒
用户可以在对话中直接使用自然语言设置提醒,插件会解析任务和截止时间并保存。支持的示例包括:- “提醒我 18:00 开会”
- “remind me to have a meeting at 18:00”
- “半小时后提醒我回邮件”
解析失败时返回友好错误,不会阻断对话。
-
优先级与去重
- 优先级:已到期的提醒优先于新闻显示。
- 去重:同一内容不会在单次会话中重复注入。
-
持久化与配置
- 内置设置页面,自动根据配置表单渲染 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 进程权限运行,安装前应检查源码与许可证。