dsh-todo-progress-guard: Keeping DSH Todo Panel in Sync with Multi-Step Tool Rounds

前言

DeepSeek Harness(DSH)里,模型通过 todo_write 维护任务列表;面板展示的是会话投影,只有再次调用 todo_write 时整表才会被替换更新。多步、工具密集的回合里,常见两种脱节:模型先写计划再连续执行 bash、read、edit 等调用,注意力在工具输出上,面板长时间停在第一项 in_progress;或者工作已在最后一步用文字答完、该步没有工具调用,回合结束时仍显示「1 in progress · N pending」。下面介绍 Host 侧 Cordis 插件 dsh-todo-progress-guard,在不改 DSH 核心、不新增会话事件类型的前提下,用两种机制补齐上述缺口。

这是什么

dsh-todo-progress-guard 是 DSH Host 插件(npm 包名同插件 id),维护者为 GitHub 用户 LaochenFEIZHAI,社区目录分类为工作流。简介原文:在回合中途提醒模型刷新 todo_write,并在回合正常结束时把遗留项收束为已完成,使待办进度与 agent 实际进展一致。

核心功能

插件只做两件事,对应 README 中的 Two mechanisms。

回合内提醒(tools/post-execute)

当前回合存在未完成的待办列表,且模型连续若干步或若干次其他工具调用而未调用 todo_write 时,插件在该步最后一次工具结果之后注入一条上下文消息(source.kind = "todo-progress-reminder",form: "notice",在聊天流里以可折叠注入行展示)。正文会原样重复当前列表,便于模型在下一步直接 todo_write 整表更新,而无需翻远历史。

回合结束补全(agent/turn-stopping)

回合正常结束前(在写入 turn/end 之前、回合仍合法打开时),将仍停留在 in_progress 或 pending 的项通过一次 todo/write 快照写回为 completed,避免面板在任务已做完后仍显示进行中。

安全边界(资料原文):仅在回合确实做过工作时补全;中止、被中断、已排队下一步、ask_user_question / exit_plan_mode 等待人工、列表已全部 completed、或列表刚创建且尚未运行其他工具等情况下不会追加完成。插件只追加 todo/write,不改写历史。

安装与启用

推荐在 Web UI:Plugins → Install,粘贴下列任一 spec,会同时添加依赖并选中 bundle,补丁立即生效且无需重启:

github:LaochenFEIZHAI/dsh-todo-progress-guard
/absolute/path/to/dsh-todo-progress-guard
dsh-todo-progress-guard

CLI 仅安装包(dsh plugin 为 pnpm 透传,不会自动选中 bundle):

dsh plugin --profile web add github:LaochenFEIZHAI/dsh-todo-progress-guard

安装后须在 Plugins 页面启用一次 dsh-todo-progress-guard(等价于写入 profile 的 dsh.profile.bundles),cordis.patch.yml 才会生效。

配置

默认可直接使用。若需调节,在 profile 自有 cordis.patch.yml 中按 id 覆盖 config(patch 层会整段替换 config,需写全三个键):

- id: todo-progress-guard
  config:
    stepThreshold: 2
    callThreshold: 5
    autoCompleteOnTurnEnd: true
字段 默认 含义
stepThreshold 2 自上次 todo_write 起,经过多少模型步后提醒
callThreshold 5 自上次 todo_write 起,经过多少次其他工具调用后提醒(至少一步)
autoCompleteOnTurnEnd true 回合正常结束时是否自动将遗留项标为 completed

两个阈值为 OR 关系,先达到者触发;每步最多一条提醒,计数在回合边界重置。非法值回退默认,不导致激活失败。

兼容性与开发

  • 依赖 Host 的 sessions 与 sessionProjections;缺失时插件保持 inactive(plain inject),不拖垮组合。
  • README 写明在 DSH 0.2.0-rc.2 上验证;使用的扩展点均为该版本的公开契约。
  • 零运行时依赖,不 import DSH 包;engines.node 为 >=20。
  • 许可证 MIT;当前 package 版本 1.0.2。

本地验证:

npm test

适用场景与注意

适合在 DSH 中依赖 todo_write 做多步任务规划、且单回合内工具调用较多的工作流。插件以当前 DSH 进程权限运行,安装前请自行查看仓库源码与 MIT 许可证。社区目录站点与 DeepSeek / 幻方无官方从属关系,仅为生态插件索引。

链接

  • 目录页:https://www.skillhub.cn/plugins/LaochenFEIZHAI/dsh-todo-progress-guard
  • 仓库:https://github.com/LaochenFEIZHAI/dsh-todo-progress-guard
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye