前言¶
用 DeepSeek Harness(dsh)做稍长一点的开发,会话里很快会堆出三类东西:随口提的后续想法、中途拍板的技术选型,以及 agent 规划时写下的一串 todo。这些内容默认只活在当前对话里。换一个会话再问「上次为什么选方案 A」「那个顺手记下的念头后来有没有做」,往往只能靠翻历史,或者干脆重问一遍。
dsh 的设计是「一切皆插件」:模型、工具、会话、存储、界面都可以挂载替换。社区目录里有一类工作流插件,专门补任务与协作层。dsh-track 做的是更靠里的一层:不把任务同步到外部 Linear / Jira,而是在 harness 内部把念头、决策、任务收成结构化数据,并给网页界面加一块可回跳来源对话的面板。
本文按社区目录详情页、GitHub 仓库 README、协议 skill 原文、npm 包信息和 DeepSeek Harness 官方仓库核对后整理:它是什么、装哪些命令、日常怎么用。该插件由 fakechris 维护,收录在独立社区站点 DeepSeek Harness 插件库,与 DeepSeek / 幻方没有官方从属关系,不能当成官方应用商店。
这是什么¶
dsh-track 在仓库里也叫 Track Bridge,是 DeepSeek Harness 的嵌入式任务管理引擎。目录分类是「工作流与自动化」,主要语言 TypeScript,许可证 BSD-3-Clause(目录页、GitHub license 字段、仓库 LICENSE 和 skill 元数据一致)。截至 2026-08-18,GitHub 仓库 fakechris/dsh-track 显示 6 星;npm 包名为 @fakechris/dsh-track,当前版本 0.5.0。
它要解决的是:智能体执行时产生的念头、不可逆决策和任务进度,如何在不接外部项目管理服务的前提下,变成可查询、可折叠、可回到原始 prompt 的数据。README 写明数据全部落在 harness 内部——决策点 / todo 走 session 事件(可回放),Capture / Issue / Decision / Usage 走 ctx.storage KV(跨会话独立),形状按 Linear 兼容来建模,方便以后迁移,但运行时零外部依赖。
架构是 fat skill + thin harness:判断「要不要上报决策点、要不要把念头升级成任务」写在 skills/dsh-track/SKILL.md;插件侧只注册工具、订阅事件、接存储和 HTTP API,自己不做这类判断。package.json 里客户端注入声明 platform 为 web,面板挂在网页会话右侧栏。
核心功能¶
捕获墙¶
入口工具是 capture_thought(content, tags?)。用户提到与当前工作无关的想法、未来计划或半成型念头时,agent 按协议 skill 把它收进捕获墙,不打断手头工作。规划阶段的 todo_write 也会被自动捕获,并且每条带上当时那条用户请求作为动机上下文,避免事后只剩一串看不出缘由的清单。
面板上可以手动输入捕获、分页、两步确认删除,以及一键把捕获转成任务。v0.3.0 起 createCapture 做了统一闸门(按会话持久化标记 + 内容哈希兜底),重启后不会把同一条再捕一遍。
决策账本¶
遇到不可逆、风险、价值观、范围或验收类决策时,agent 先调用 report_decision_point,给出选项、自己的倾向和理由,让用户做轻决策。用户回答后必须再调 track_respond_decision(decision_id, choice, rationale?) 落盘;skill 原文写得很硬:不落盘等于没问。用户说「先不定 / 跳过」时,choice 传 dismissed。历史可用 track_list_decisions 按待确认 / 已回答 / 已跳过查询。
协议 skill 也划了边界:变量命名、函数拆分、用户已经说过「你决定」、同类决策已被接受过,都不要重复上报。长任务默认最多 5 个决策点。
证据驱动的任务生命周期¶
任务用 Linear 兼容形状存储。典型链路是:
track_create_issue → track_attach_issue → 会话里执行证据自动记到该任务 → track_update_issue_state / track_issue_evidence
track_attach_issue(issue_id) 声明当前会话正在推进某条任务,之后 todo 完成、轮次结果、工具错误会记到证据账本,状态机据此推断进度。关键约束:done 和 canceled 不会自动达成,必须用户确认后带 confirmed_by_user=true 再改状态。面板在 v0.5.0 给任务卡加了「完成 / 取消」(两步确认)和批量模式。
v0.4.0 还加了生命周期 sweep:长时间无进展的任务会浮到「待确认」区;近似重复捕获可按可配置的 token 相似度归并;canceled 提议超过宽限期可自动确认。这些是仓库 changelog 记录的行为,配置入口在 Track 面板的 ⚙ 和 /api/track/config。
历史同步与用量账本¶
track_sync_history 把工作区过往会话折叠成 epic / issue 候选。默认 dry_run=true,只看清单,确认后再写回。skill 推荐 engine: 'v2'(segment + intent + synthesize),since 默认 7 天。
track 引擎自己发起的 LLM 调用单独记账,用 track_usage 查请求数、各类 token、耗时和估算成本,避免和业务对话的用量混在一起。
Web 面板¶
面板是纯 DOM 注入,无前端框架依赖。右侧栏同时放捕获墙和任务墙(进行中优先);每条记录可以点「↩ 对话」,切到左侧来源会话、翻到对应历史、滚动并高亮原始用户 prompt。收起后右下角有 ◆ 悬浮按钮,也可以走会话标签栏的 Track 页签。面板约 20 秒轻量刷新,宽度可拖拽。
安装与启用¶
社区目录页给出的安装命令如下,在 DeepSeek Harness 终端运行即可:
dsh plugin add github:fakechris/dsh-track
如需可复现安装,目录页建议固定 commit 哈希:
dsh plugin add github:fakechris/dsh-track#<commit>
插件声明面向 web 客户端。仓库 README 推荐用发布版 dsh、并显式指定 web profile;npm 包已发布时也可以这样装:
npx -p @deepseek-ai/dsh dsh plugin --profile web add @fakechris/dsh-track
协议 skill 不会只靠挂插件就自动进默认扫描目录,README 要求再拷一份到本机:
mkdir -p ~/.dsh/skills && cp -r skills/dsh-track ~/.dsh/skills/
dsh web
验证方法:浏览器打开面板(右下角 ◆,或会话标签栏的 Track 页签),能看到「捕获想法」和「任务」两栏即安装成功。
有一处文档需要交叉看:README 和 cordis.patch.yml 注释里仍写着 git 备选源 github:dsh-external/dsh-track。访问该地址会重定向到当前公开仓库 fakechris/dsh-track(同一仓库 id)。目录页安装命令以 github:fakechris/dsh-track 为准,不要按旧 org 名自行拼接。
目录页同时提醒:插件以当前 dsh 进程的权限运行,安装时可能执行代码。安装前应检查源代码仓库和许可证。
典型用法¶
下面的流程来自仓库 README 的「核心工作流」和 skills/dsh-track/SKILL.md,不是另编的案例。
1. 捕获念头。 用户在改接口时随口说「下次把文档也补上」,agent 调 capture_thought,当前任务继续。面板里也可以自己往捕获墙丢一条。明确要求落实时,再用 track_create_issue(或面板「转任务」)补 title、描述、验收标准和优先级;创建前先 track_list_issues,避免重复。
2. 上报决策点。 skill 给的正例包括:框架 A 还是 B、API key 能否存本地、顺带写文档算不算范围内、做到什么程度算 done、要不要动数据库 schema。上报后看返回文本首行 Decision recorded: dec_xxx,用户选定后再 track_respond_decision。
3. 推进任务。 开始做某条 issue 时(计划阶段或写第一条 todo 时)调用 track_attach_issue。中途用 track_issue_evidence 看推断状态和证据。看起来做完了,先问用户「要标完成吗?」,同意后再 track_update_issue_state(..., confirmed_by_user=true)。证据里出现 Pending confirmation 时,主动问,不要擅自落盘。
4. 整理历史。 用户说「最近的工作同步到 Track」时,先 track_sync_history(默认 dry-run)看候选,确认后再 dry_run=false 写回。面板上任意捕获或任务都可以跳回原始 prompt。
常用工具对照:
| 工具 | 作用 |
|---|---|
capture_thought |
把念头收进捕获墙 |
report_decision_point |
上报决策点 |
track_respond_decision |
把用户选择与理由落盘 |
track_create_issue |
创建 Linear 兼容任务 |
track_attach_issue |
声明本会话正在推进该任务 |
track_update_issue_state |
提议或确认状态变更 |
track_issue_evidence |
查看证据账本与推断状态 |
track_sync_history |
把会话历史折叠成任务候选 |
track_usage |
查询 track 引擎自己的 LLM 开销 |
适用场景与注意事项¶
适合已经在用 dsh 网页界面、会话多、需要把「说过的话」留成可查记录的人:个人用 harness 做中长期改造、希望决策有账本、不想为此再开一套 Linear。它不是通用看板,也不替代团队协作里的认领 / 验收流程;同分类下还有看板、多 Agent 编排等其他社区插件,定位不同。
使用前注意这几条:
- 客户端平台是 web。
package.json的dsh.client.platform为web,README 的验证步骤也走浏览器面板。不要默认它在 headless 会话里提供同一套 UI。 - 只装插件不够。决策纪律在 skill 里,需要按 README 拷到
~/.dsh/skills/,agent 才会按「什么该问、什么不该问」调用工具。 done/canceled必须人确认。系统可以提议,不会自动标完成。- 历史同步默认 dry-run。没确认前不会把候选写成 issue。
- 业务数据不要写进 session 自定义事件。README 写明:2026-08-11 起 harness 对未知事件类型会拒读整份日志;观察会话只走官方事件流,只读不写。
- 权限与来源。插件以当前 dsh 进程权限运行。目录是社区站点,不是 DeepSeek 官方商店;安装前核对 GitHub 仓库、BSD-3-Clause 许可证和近期提交。需要可复现环境时,用目录页的
#commit写法固定哈希。
小结¶
dsh-track 把 DeepSeek Harness 会话里本来散落的念头、决策和 todo,收成 harness 内部的捕获墙、决策账本和 Linear 形任务,并在网页右侧栏提供可跳回来源 prompt 的面板。数据不依赖外部项目管理服务;完成与取消仍由人确认。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-track/
GitHub:https://github.com/fakechris/dsh-track
npm:https://www.npmjs.com/package/@fakechris/dsh-track