dsh-progress-rules
Verifieddsh-progress-rules · v0.2.1 · MIT
DeepSeek Harness bundle plugin: a process-discipline system-prompt section plus a deterministic nudge that makes agents narrate progress between silent tool steps.
Install
dsh plugin add dsh-progress-rules Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Readme
dsh-progress-rules
一个 DeepSeek Harness(DSH)bundle 插件: 让 agent 在执行过程中先通报进展,而不是闷头连续跑几十步工具。
English | 中文
它做什么
一个 bundle 行挂载两层独立机制:
系统提示词段落 ——
user:progress-rules,order10150(Web surface 段之后、persona suffix 之前)。它会带上你的过程纪律规则,且每个请求都重新组装,会话压缩(compaction) 不会把它摘要掉。它使用独立命名的 section,所以预设里的@deepseek-ai/dsh-persona无法像遮蔽部署级personaSuffix那样把它盖掉。确定性提醒 —— 每次
agent/pre-step检查上一条 assistant 消息里有没有 text 块。 如果只有工具调用(或 reasoning),这一步记为“沉默步”。连续everySteps个沉默步后, 在一次即将进入的请求里注入一条 user 角色提醒:“你只调用了工具没通报,先用 1–3 句说明 再继续”。这条提醒是持久化 context 消息,在界面上渲染为progress-rulescontext 行, 不会伪装成用户发言。任何一步有正文,计数清零。
第一层对模型只是建议;第二层才是真正能打断“40 步不吭声”的机制——由 harness 自己插提醒, 而不是指望模型记住规则。
安装
DSH 插件安装在profile($DSH_HOME/profiles/<name>)里,不是全局:
cd ~/.dsh/profiles/desktop # 或 web / tui / 你自己的 profile
npm install dsh-progress-rules
然后在 profile 的 package.json 里把 bundle 加进去(bundle 按列表顺序组合,放 base 之后):
{
"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 命令,它做的就是“加依赖 + 加 bundles 条目”。
配置
包内的 bundle patch(cordis.patch.yml)声明一行:
- insert:
- id: progress-rules
name: dsh-progress-rules
config:
everySteps: 5
text: |
## 过程纪律(优先于其他风格偏好)
...
在 profile 的 cordis.patch.yml 里用相同 id 覆盖。注意 patch 语义是整行替换 config,
保留的键要全部重写:
- 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 |
包内中文规则 | 系统提示词段落文本,空字符串则不注册该段。 |
name |
user:progress-rules |
段落名。 |
order |
10150 |
段落顺序(WEB_SURFACE 为 10100,persona suffix 为 10200)。 |
enforce |
true |
false 关闭每步提醒,只保留提示词段落。 |
reminder |
包内一句话 | 沉默步注入的提醒文本,空字符串关闭该机制。 |
everySteps |
5 |
连续沉默多少步提醒一次。1 = 每步提醒,越大越安静。 |
为什么不用 AGENTS.md 或 personaSuffix?
AGENTS.md是作为普通用户消息进入对话历史的,长任务里可能被 DSH 的压缩摘要掉; 系统提示词不会。system-prompt.personaSuffix对预设会话会被遮蔽:内置 Standard / PTC / Minimal 预设 挂载@deepseek-ai/dsh-persona,并用空文本注册同名deployment:persona-suffix段, 把部署级的值盖住。换一个独立段落名就绕开了这个问题。
兼容性
- 在 DSH
0.2.1-rc.2、Standard 预设、deepseek-v4.1-flash:1017-cloud上测试。 - 纯 ESM,无 Cordis 运行时导入,无运行时依赖;只用了
node:crypto。 - 沉默判定看的是最后一条 assistant 消息里的 text 块;如果某个 provider 用自定义块类型 承载正文,会判不出来,欢迎提 issue。
许可证
MIT