前言¶
DeepSeek Harness (DSH) 采用“一切皆插件”的理念,开发者可以针对特定场景扩展功能。在开发智能体时,模型经常在没有完成 Todo 列表项的情况下结束对话,或者在没有跟踪进度的情况下陷入循环。dsh-todo-continuation 插件旨在解决这一问题,通过门禁机制与建议性提示,帮助智能体在 agent/turn-stopping 边界保持工作流的完整性。
插件简介¶
dsh-todo-continuation 是由 DoiiarX 维护的一个 DSH 插件。它作为 Todo 门禁与提示插件,在 agent/turn-stopping 边界依据当前 turn 的最新 todo/write 快照决定是否放行结束,并对“长期不用 Todo”和“长期不更新 Todo”给出建议性提示。
核心功能¶
- 停止门禁:当当前 turn 存在未完成、且不以“等待用户”前缀开头的 todo 时,插件会注入一条继续消息,让模型在同一 turn 内继续推进,而不是带着未完成项结束。
- 无 Todo 提示:连续
noTodoPromptEveryNTurns(默认 5)轮没有任何 todo 快照时,提示模型使用todo_write规划与跟踪工作。 - 过期 Todo 提示:已有 todo 列表却连续
staleTodoPromptEveryNTurns(默认 20)轮不更新时,提示模型保持列表最新。
安装与启用¶
安装依赖:
cd <本插件目录>
pnpm install
在 $HOME/.dsh/profiles/web/package.json 中挂载插件:
{
"dependencies": {
"@doiiarx/dsh-todo-continuation": "link:<本插件目录绝对路径>"
},
"dsh": {
"profile": {
"bundles": [
"@doiiarx/dsh-todo-continuation"
]
}
}
}
然后在 profile 目录运行 pnpm install。
典型用法¶
在设置页的「Todo 门禁」小节中,可以编辑以下配置项:
* waitingTodoPrefixes:未完成项以此开头时视为「等待用户」,允许结束(默认:信息不足:、要求用户确认:)。
* noTodoPromptEveryNTurns:连续多少轮无 Todo 后提示开始使用(默认:5)。
* staleTodoPromptEveryNTurns:已有 Todo 却连续多少轮不更新后提示保持最新(默认:20)。
适用场景与注意¶
- 职责边界:插件绝不创建、删除、完成或改写 Todo——列表的唯一作者仍是模型。
- 行为:门禁只把关“能否结束”,两条提示都是建议性的(不阻止结束),且各自每间隔最多触发一次,避免每轮催促。
- 安全性:用户的取消(
agent.cancel)与终态 turn 错误在停止边界前中止,绝不会被门禁覆盖。 - 运行权限:插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
总结¶
该插件通过门禁机制与建议性提示,帮助智能体在 agent/turn-stopping 边界保持工作流的完整性。更多细节可查看 GitHub 仓库 或 DSH 社区目录。