前言¶
在 DeepSeek Harness(DSH)里跑长任务时,模型常会连续发出大量 tool call,中间几乎没有面向用户的文字说明。对话历史里看起来像「静默执行了几十步」,你很难判断它在做什么、是否卡住。把纪律写进 AGENTS.md 或 deployment 的 personaSuffix 也不总是可靠:前者可能被对话压缩摘要掉,后者在 Standard / PTC / Minimal 等 preset 下还可能被 @deepseek-ai/dsh-persona 同名 section 遮住。
下面介绍社区插件 dsh-progress-rules(维护者 Adamaik,GitHub 分类为工作流相关能力)。它用「系统提示词独立段落 + 每步前的确定性提醒」两层机制,把「过程要有叙述」从「指望模型记得规则」变成 harness 侧可执行的行为。
这是什么¶
dsh-progress-rules 是一个 DSH bundle 插件:在 profile 的 bundle 列表里挂一行即可同时挂载两层逻辑。
- 一层是 过程纪律 的系统提示词 section(默认名
user:progress-rules,顺序10150),每次请求都会重新渲染,不会被 compaction 摘要掉。 - 另一层是在
agent/pre-step上检查的 确定性 nudge:若上一条 assistant 消息只有 tool call(或 reasoning)而没有文本块,则计为「静默步」;连续静默达到阈值后,由插件在下一步注入提醒,而不是等模型自己想起来。
简介原文表述为:process-discipline system-prompt section + deterministic progress nudge for silent tool steps。
核心功能¶
系统提示词段落(建议层)¶
插件通过 Cordis patch 插入 id 为 progress-rules 的配置行。默认 text 为内置的中文过程纪律文案;order 为 10150(在 WEB_SURFACE 10100 之后、persona suffix 10200 之前)。section 使用独立名称,避免 preset 里 @deepseek-ai/dsh-persona 像遮挡 deployment:persona-suffix 那样挡住本插件内容。
这一层对模型是 建议性 的:告诉它优先遵守过程纪律。
确定性进度提醒(执行层)¶
在每个 admitted step 之前,插件检查 上一条 assistant 消息 是否包含任意 text block:
- 若只有 tool calls(或 reasoning),该步记为 silent。
- 连续 silent 步数达到
everySteps(默认5)时,在下一步注入一条 user-role 提醒(文案可配置):大意是「你连续用工具却没有汇报,先用 1–3 句话说明再继续」。 - 提醒以 durable context 形式出现,对应
progress-rulescontext row,不是用户真实发来的消息。 - 任意一步带有叙述的 assistant 消息会 重置 计数器。
README 写明:打破「连续 40 步静默」这类模式,靠的是 harness 自己插入提醒,而不是只信任模型记住规则。
与 AGENTS.md、personaSuffix 的对比¶
| 方式 | 局限(据 README) |
|---|---|
AGENTS.md |
作为对话里的 durable user message,长任务可能被 compaction 摘要 |
system-prompt.personaSuffix |
preset 挂载的 persona bundle 可能用空文本注册同名 section,遮住 deployment 配置 |
本插件用 独立命名的 system-prompt section 规避后者;用 pre-step 注入 补足前者无法强制执行的缺口。
安装与启用¶
DSH 插件安装在 profile($DSH_HOME/profiles/<name>),不是全局一次装完。
- 进入你的 profile 目录(例如 desktop / web / tui):
cd ~/.dsh/profiles/desktop
- 安装 npm 包:
npm install dsh-progress-rules
- 在 profile 的
package.json里加入依赖,并在dsh.profile.bundles中 放在基础 bundle 之后(列表顺序即组合顺序):
{
"dependencies": {
"dsh-progress-rules": "^0.2.1"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-progress-rules"
]
}
}
}
- 重启 DSH。若你使用的 DSH 构建带有
dsh plugin命令,README 说明:加依赖和 bundles 条目通常就是该命令替你完成的事。
包版本在 npm 元数据中为 0.2.1;许可证 MIT。
配置¶
默认配置写在包内 cordis.patch.yml。在 profile 的 cordis.patch.yml 里用 相同 row id progress-rules 覆盖。注意 patch 语义会 整体替换 该行的 config,保留的键需要全部写回。
示例:把连续静默阈值改为 3,并换成英文纪律文案:
- id: progress-rules
name: dsh-progress-rules
config:
everySteps: 3
text: |
## Process discipline
1. Narrate progress after every step.
2. Ask when uncertain instead of guessing.
| 键 | 默认值 | 含义 |
|---|---|---|
text |
内置中文规则 | 系统提示词 section 正文;空字符串则去掉该 section |
name |
user:progress-rules |
section 名称 |
order |
10150 |
section 顺序 |
enforce |
true |
false 时关闭 per-step nudge,仅保留提示词段落 |
reminder |
内置一句英文提醒 | 注入静默步前的文案;空则关闭 nudge |
everySteps |
5 |
连续多少静默步后注入一次提醒;1 即每步都提醒,更大则更安静 |
典型用法¶
默认开箱:安装并加入 bundles、重启后,无需改配置即可获得中文过程纪律 section + 每 5 个连续静默 tool 步一次的提醒。
只保留提示、不要自动提醒:在 profile patch 里设 enforce: false,或把 reminder 置空(二者效果分别是关闭 nudge 逻辑或关闭注入文案,见上表)。
更频繁的叙述:减小 everySteps,例如设为 1 表示每一步静默后下一步都会收到提醒。
定制纪律与提醒语:同时重写 text 与 reminder(若只改其一,patch 时仍须列出你要保留的其他键)。
适用场景与注意¶
适合:你在 DSH 里跑多步工具链(读文件、改代码、跑命令),希望终端或 Web 界面里 持续有短叙述,而不是长时间只有 tool 图标在动。
兼容性(README 自述):在 DSH 0.2.1-rc.2、Standard preset、deepseek-v4.1-flash:1017-cloud 下测试过。实现为纯 ESM,无 Cordis 运行时依赖,使用 node:crypto。
静默检测限制:nudge 通过上一条 assistant 消息里的 text block 判断是否「有汇报」。若某 provider 把 assistant 正文放在自定义 block 类型里,可能不会被识别为已叙述——README 建议此类情况可开 issue。
安全与信任:插件随当前 DSH profile 以本机 Node 进程权限运行;安装前可在 GitHub 仓库 查看 index.mjs、cordis.patch.yml 与 MIT 许可证,再决定是否纳入生产 profile。
社区目录 SkillHub 插件页 与 GitHub 无 DeepSeek / 幻方官方从属关系,仅为 DSH 生态里的第三方收录。
结尾¶
dsh-progress-rules 把「过程纪律」放进不会被 compaction 吃掉的 system-prompt section,并在连续静默 tool 步后由 harness 注入提醒,两层合一 bundle、配置集中在 progress-rules 一行。若你正被「智能体闷头连跑几十步工具」困扰,可以按 profile 方式安装 ^0.2.1 并调整 everySteps 与 text 试一轮。
- 目录页:https://www.skillhub.cn/plugins/Adamaik/dsh-progress-rules
- 源码与文档:https://github.com/Adamaik/dsh-progress-rules