前言¶
在 DeepSeek Harness(DSH)里跑复杂任务时,Agent 往往会连续调用大量工具却长时间不向用户输出文字。你很难判断它是仍在推进、卡在某一步,还是已经偏离目标。单靠人工盯着侧栏步数也不可靠:模型「只调工具不说话」时,即便提高催促频率,往往只能增加噪音。
dsh-progress-reminder 是社区维护者 Kiru-Sama 发布的工作流类 DSH 插件(当前包版本 3.0.1,MIT 许可证)。它在累计工具步数或墙钟时间达到阈值时,通过宿主认可的通道提醒 Agent 做一次简短进度汇报,同时在侧栏实时显示计数,并在聊天区用横幅标明「提醒是否已发出」。插件另带余额低额提醒与 DeepSeek 官方 API 峰谷时段指示,零额外 npm 运行时依赖(仅使用 Node 自带模块)。
插件在 SkillHub 目录 可查;源码与说明见 GitHub:Kiru-Sama/dsh-progress-reminder。社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
这是什么¶
一句话:dsh-progress-reminder 在 DSH 会话中计量「自上次汇报以来的工具步数与真实耗时」,命中阈值后注入一条带 source.kind = 'progress-nudge' 的合成 user 上下文,促使模型向用户汇报;用户界面同步显示计数、上次提醒时刻,以及可选的余额与计费时段信息。
运行环境要求(见 package.json):Node ^22.19.0 || >=24.0.0,DSH >=0.2.0-rc.2。
进度提醒怎么工作¶
两个触发器,共用一把尺¶
| 触发器 | 默认 | 含义 |
|---|---|---|
| 步数 | 10 步 | 自上次汇报起累计 N 次工具调用 |
| 时间 | 120 秒 | 自上次汇报起累计经过的真实墙钟时间 |
任一命中即提醒一次,随后两个计量一起归零,避免步数刚提醒完、几秒后时间阈值又连击刷屏。另有 minGapSeconds(默认 45)与单回合 maxPerTurn(默认 20)作为兜底。
提醒不弹窗,而是通过 tools/post-execute 决策的 additionalContexts 注入合成 user 消息——README 写明这是唯一能让模型真正看见并照做的通道;消息带 progress-nudge 来源标记,以免污染用户提示词历史。
计步与停表规则¶
时钟按墙钟推进,是否在走由 running 状态决定。暂停(面板暂停按钮)立刻冻结秒数;回合结束(agent/turn-stopping)归零并停表;新回合或新用户消息(agent/pre-step 的 turn 变化)归零并起表;Agent 向用户输出可见文本(agent/assistant-stream 的 text-delta)时归零并继续走表,使长时间思考仍累计 toward 时间阈值。reasoning-delta、tool-call-delta 与空白文本默认不重置;不需要可将 resetOnSpeech 设为 false。
默认不计步的工具在 exclude 中:todo_write、ask_user_question。是否对 subagent 计数由 includeSubagents(默认 false)控制。
为什么提醒可能「看起来迟到了」¶
硬约束:提醒只能在步骤边界投递,因为 additionalContexts 只能挂在 tools/post-execute 上。工具执行期间 agent 循环阻塞,模型读不到中途注入的内容。因此长跑命令可能在界面上早已越过 120 秒,但提醒要等命令返回才发出。
界面用 /status 的 pending 字段说明「已到期 N 秒 · 等当前步骤结束后提醒」,避免对着越界的进度条误判插件失效。
聊天区横幅与侧栏¶
侧栏底部按钮实时显示「第 N/阈值 步 · 已过秒数」;展开面板可改步数/时间阈值(防抖 350ms 后写运行时配置,不写 profile,重启后回到 cordis.patch.yml 默认值)、暂停/恢复、查看已提醒次数,以及余额与峰谷信息。
聊天区在输入框上方:有过提醒后常驻显示「上次提醒」时间(来自宿主 nudge.at,与日志一致);新提醒到达时高亮约 12 秒。用户侧默认看不见注入给模型的那条合成消息,横幅用来补足「提醒是否已发出」的可见性。
面板上的「增强提醒」默认开启:当模型连续多次提醒仍不对用户说话,会自适应提高步数/时间阈值并调整文案,减轻「只调工具不说话」场景下的噪音(机制见 README「自适应退避」一节)。
余额监控与峰谷指示¶
余额¶
插件不读取、不存储 API key,而是调用宿主 deepseekAccount 服务(与设置页「账号与余额」同源)。充值钱包与赠送钱包分行展示;低额判定默认 balance.scope = total(充值 + 赠送之和),因平台扣款先从赠金扣。阈值默认 balance.thresholdCny = 1.5,轮询间隔 checkSeconds 默认 300;仍低额时按 repeatSeconds(默认 1800)去重。余额从不足恢复到正常时也会通知模型,避免用户充值后仍被反复催充值。未登录或服务不可用时静默,不编造数字。
峰谷时段¶
按 DeepSeek 官方 Models & Pricing 口径换算为北京时间:工作日 09:00–12:00、14:00–18:00 为高峰(侧栏显示「梁文峰」),其余含周末为低谷半价(「梁文谷」)。法定节假日无法离线判断,需在 tariff.holidays 手工列出 YYYY-MM-DD;列表为空时面板会提示仅按周末与时段判断。走第三方中转时费率以对方说明为准,不需要可将 tariff.enabled 设为 false。
安装与启用¶
推荐在 DSH 设置 → 插件 → 添加插件 中输入包名(INSTALL.md 方式 A):
dsh-progress-reminder
装完后执行 文件 → 退出,再重新启动 DeepSeek Harness;新增 bundle 不支持热加载。
包名不可用时,可在同一入口粘贴 Release 地址(方式 B):
https://github.com/Kiru-Sama/dsh-progress-reminder/releases/latest/download/dsh-progress-reminder.tgz
npm 上另有名称相近的 dsh-progress-bar、dsh-progress-nudge,与本插件作者与实现均不同,添加时勿混淆。
重启成功后,侧栏底部应出现类似 0/10 · 0秒 与峰谷标签的入口;若无,在设置 → 插件中确认 dsh-progress-reminder 已加载,并查阅 INSTALL.md 中 already-installed、not-a-bundle 等错误码说明。
配置要点¶
长期默认值在插件包内 cordis.patch.yml;修改后需重启生效,更新插件会覆盖该文件,改前宜备份。侧栏输入框改阈值仅影响当前进程内存,重启后回落默认值。
| 字段 | 默认 | 说明 |
|---|---|---|
enabled |
true |
总开关 |
stepThreshold |
10 |
步数阈值 |
timeThresholdSeconds |
120 |
时间阈值(秒) |
minGapSeconds |
45 |
两次提醒最小间隔 |
maxPerTurn |
20 |
单回合提醒上限 |
exclude |
["todo_write","ask_user_question"] |
不计步工具 |
includeSubagents |
false |
是否计入 subagent |
resetOnSpeech |
true |
助手对用户说话后是否归零 |
locale |
zh |
提醒文案 zh | en |
balance.enabled |
true |
余额监控 |
balance.thresholdCny |
1.5 |
低额阈值(元) |
balance.scope |
total |
total 或 recharge |
balance.checkSeconds |
300 |
查余额间隔(最小 30) |
balance.repeatSeconds |
1800 |
低额重复提醒间隔;0 为只提醒一次 |
tariff.enabled |
true |
峰谷显示 |
tariff.holidays |
[] |
法定节假日(北京时间日期) |
非法配置在插件激活时会抛错,不会静默回退。同一 profile 内勿重复配置两行相同 id,以免路由冲突导致插件树启动失败。
典型用法¶
1、安装并完全重启后,保持默认即可:每 10 步或 120 秒提醒一次汇报。
2、长回合开发任务中,在侧栏面板适当加大 stepThreshold / timeThresholdSeconds,或暂时点「暂停」,避免探索阶段提醒过密。
3、若模型陷入「只调工具不说话」,可保留「增强提醒」开启,让退避逻辑自动拉大间隔。
4、依赖赠金账户时,保持 balance.scope = total;仅关心充值钱包低额时改为 recharge。
5、法定节假日密集使用 API 时,在 tariff.holidays 补全日历,使峰谷判断与官方计费一致。
适用场景与注意¶
适合谁:在 DSH 桌面版上跑长链路 Agent 任务、希望定期收到简短进度说明,并顺带关注账户余额与官方 API 高峰计费的开发者。
权限与安全:插件在 DSH 进程内运行,与宿主同权;安装前宜浏览源码与许可证(MIT)。余额功能仅复用宿主已有登录态,不自行发起对外余额 API。
已知限制(INSTALL.md):提醒受步骤边界约束;余额依赖宿主登录;峰谷节假日需手工维护;文档写明主要在 Windows + DSH 桌面版实测,macOS / Linux 与多 profile 场景未全面验证。版本更新检测需能访问 api.github.com。
结尾¶
dsh-progress-reminder 把「多久该让用户听到一声」变成可配置的步数与时间规则,并用侧栏计数与聊天横幅把提醒是否送达暴露给用户,同时可选地挂上余额与峰谷信息。若你在 Harness 里经常一开就是一个多小时的工具回合,可以按上文包名或 Release 地址安装,重启后在侧栏确认入口再开任务。
- 目录页:https://www.skillhub.cn/plugins/Kiru-Sama/dsh-progress-reminder
- 仓库:https://github.com/Kiru-Sama/dsh-progress-reminder