前言¶
在 DeepSeek Harness(DSH)里写代码或跑工作流时,内置的 todo_write 绑定在一次 agent 会话里:整表替换、三种状态,会话结束计划也跟着消失。若要在多台机器、多个工作区之间延续同一份任务清单,或让人和 agent 共同改同一条记录,就需要把待办落到会话外的持久存储,并有一套明确的交接与收尾规则。下面介绍社区插件 dsh-global-todo(维护者 LUgABeEEE),分类为工作流,用单个 JSON 文件承载列表,并支持步骤计划、会话回读与人工确认「完成」。
这是什么¶
dsh-global-todo 是 DSH 的跨会话待办插件:你和 agent 共同读写同一份 JSON 文件,一键把某条待办(含步骤)交给新会话或已绑定的对话;agent 声明完成时,条目会进入待确认,需人工确认或打回后再算真正结案。
与内置 todo_write 的对比如 README 所述:
内置 todo_write |
dsh-global-todo | |
|---|---|---|
| 归属 | 单次 agent 会话 | 跨会话、跨工作区,由你持有文件 |
| 写入方式 | 整表替换 | 按字段更新,人与 agent 均可写 |
| 创建时间 | 不记录 | createdAt,不可变,界面展示 |
| 上下文 | 标题 + 状态 | 描述、文档与地址等 |
| 交接 | — | 一键:复用绑定会话或新开会话 |
| 存储 | 会话事件日志 | 可 cat、diff、备份的 JSON 文件 |
当前包版本为 0.12.13(见仓库 package.json),许可证 MIT。GitHub 仓库约 3 stars、2 forks(以目录页线索为准)。
核心功能¶
单文件 JSON 即整张列表¶
列表不藏在会话日志里。你可以直接查看、对比、提交版本库,或放到 NAS、另一台机器上使用。
步骤(Steps):待办内的执行计划¶
单条待办最多 20 步、每步 200 字符(LIMITS 定义于 lib/model.js)。每步为 { text, done },是同一工作单元内的勾选行,不是带独立 id 的子任务。
- 在面板「更多字段 → Steps」按行添加。
- 详情里勾选步骤,列表行显示如
steps 2/5。 - 交接(Hand-off) 时,下发提示会把步骤编号列出,已完成项前缀
[已完成]。 - 导出 Markdown 为嵌套
- [ ];导入可读回。
证据句(Evidence)¶
evidence 保存捕获待办时的原话(最多 300 字符)。global_todo_capture 会请模型给出,global_todo_add 可写入;详情在 In the author’s words 以引用块展示。手填的待办无此字段。Markdown 导出中带 原话:。
一键交接与四种模式¶
交接不是大段粘贴说明:插件会检查工作目录,并把该待办的 steps 作为编号计划交给目标会话。详情面板可查看绑定会话状态并打开对话。
会话回读(Session read-back)¶
交接在另一段对话里推进时,不必切窗口也能看「它刚才说了什么」。GET /api/global-todo/session?id= 返回 alive、dir 以及最后一条 assistant 消息的 tail(有界:内存中约 200 个会话、每段 tail 400 字符,来自各 assistant/message;不落盘,Host 重启会丢失)。无 tail 表示本进程尚未见过该会话发言。
待确认(Review):「完成」是声明,不是终局¶
agent 调用 global_todo_done(或 watcher 在干净回合上触发)后,记录变为 done,并带 review: { pending: true }。列表显示 Needs review,顶栏有 Review 计数。
| 操作 | 效果 |
|---|---|
| Confirm done | 保持 done,去掉待确认标记,活动流记录确认人 |
| Send back | 回到 open;清除 doneAt 与完成记录;增加 reopened 活动;标题、描述、步骤、附件与进展备注均保留 |
Markdown 导入与导出¶
JSON 是可往返的权威格式。Markdown 便于人工阅读、diff 与手改(手改列表中 doing、cancelled 导入后会变成 open,无进行中状态)。
导出示例结构:
- [ ] 标题
优先级: 高 · 截止: 2026-10-21T18:00 · 标签: 发布, 文档
原话: …
描述: 第一行
- [x] 一步
- 导出:More actions → Export Markdown,或
GET /export?format=md(分组:未完成 / 已完成 / 已归档)。 - 导入:More actions → Import(
.md),或POST /import { markdown };Markdown 无 id,不会覆盖已有记录,一律create。
字段标签为中文(优先级 / 截止 / 标签 / 原话 / 描述 / 附件 / #)。无法解析的日期会丢弃;没有 - [ ] 行会拒绝并说明原因。
周报(Weekly report)¶
More actions → This week(GET /report?days=7)根据完成记录推导「本周动了什么、是否落到文件」,不额外存储。字段包括:finished、sessions、created、pendingReview、files(最多列 12 个路径,fileCount 为总数)。days 大于 90 会钳制为 90;缺失或非正数时默认 7 天。
安装与启用¶
环境要求(来自 README 与 package.json):
- DeepSeek Harness 0.2.x(
engines.dsh为>=0.2.0-rc.1 <0.3.0,开发与验证针对0.2.1-rc.2;Host 版本不符会跳过该 bundle)。 - Node >=22.19.0。
官方安装命令:
dsh plugin add dsh-global-todo
安装后可在 DSH 面板中使用全局待办界面。仓库还提供 CLI:dsh-global-todo-doctor(npm run doctor / tools/doctor.mjs)用于环境检查。更短上手见仓库 5-minute quickstart 与 中文说明 README.zh.md。
典型用法(可复现流程)¶
- 安装插件(见上节命令),确认 Host 版本在
engines.dsh范围内。 - 在面板创建或捕获待办:需要原话证据时走捕获流程(
global_todo_capture/global_todo_add);在「更多字段」里补全步骤、截止、标签等。 - 交接执行:在详情中选择交接方式(复用绑定会话或新开会话),agent 按编号步骤推进;必要时在详情查看 Session read-back。
- agent 收尾:完成时触发
global_todo_done;你在 Review 里 Confirm done 或 Send back。 - 备份与协作:对 JSON 文件做
cat、diff、git 提交;需要可读摘要时用 Export Markdown,从 Markdown 批量新增用 Import。
面板还支持收件箱确认、到期提醒、多选等状态;各状态基线截图见仓库 docs/screenshots/。
适用场景与注意¶
适合谁:需要在多个 DSH 会话、多个工作区之间共用同一份待办;希望 agent 按计划步骤执行且「完成」必须经人确认;要把清单放进 git/NAS 与 Markdown 工作流的人。
权限与安全:插件以当前 dsh 进程权限运行,可读写你配置的 JSON 与相关 API。安装前请阅读 GitHub 源码 与 MIT 许可证,自行评估是否用于生产环境。
生态说明:DSH 社区插件目录(如 SkillHub 上的条目)是独立站点,与 DeepSeek / 幻方无官方从属关系;安装来源以 README 给出的命令为准,不要自行拼接未在文档出现的安装 URL。
结尾¶
dsh-global-todo 把待办从「单次会话里的临时计划」收成「你拥有的一个 JSON 文件」,并用步骤计划、一键交接、会话回读和待确认收尾,对齐人与 agent 协作时的常见缺口。进一步了解可访问插件 目录页、项目主页 与 GitHub 仓库。