前言¶
在 DeepSeek Harness(DSH)里跑长会话时,内置 todo 往往只是一行式展示,composer 上方的面板也难一眼看清「当前做到哪、上一轮干了什么」。Agent 明明调用了 todo_write,清单却不够醒目;回合结束后的上下文又散落在 transcript 里,回看成本高。
dsh-plugin-taskflow 面向 Web GUI,用任务清单 UI、逐项小结和每回合压缩摘要补这两块空白。下面按安装、界面行为、配置与排错说明如何启用。
这是什么¶
dsh-plugin-taskflow 由维护者 wk-xjd 发布,分类为工作流,在 SkillHub 目录 与 GitHub 可查到。简介概括为:液态玻璃风格任务列表、每项任务一句模型小结、每个 assistant 回合结束自动压成「一行标题 + 要点」。
本包同时是 DSH bundle:dsh plugin add 会写入 profile 的 dsh.profile.bundles 并加载 cordis.patch.yml,一般无需手工改 patch。许可证为 MIT;package.json 当前版本为 0.1.2,运行环境要求 Node ≥ 22。插件在当前 DSH 进程权限下工作,安装前建议自行核对源码与许可证。
核心功能¶
对话内清单卡片¶
每次 agent 调用 todo_write 时,插件遮蔽内置的一行式 todo 行,改成 Claude 风格清单卡片,例如「7 个任务 · 完成 6 · 待办 1」,逐项用 ✔ / ◐ / □ 标示状态,渲染在对应工具调用处。
composer 上方常驻任务列表¶
替换输入框上方自带的 todo 面板(同一 todo 槽位)。有任务时清单常驻显示,宽度与输入卡片对齐,并随侧栏、窗口尺寸变化。视觉为液态玻璃背景;执行中的行带彩虹描边与呼吸圆点;进度环为 SVG,列表最高约 190px,超出可滚动。
行为要点:
- 任务完成时,宿主用当前模型为该任务写一句小结(≤60 字,依据该段工具调用与涉及文件)。
- 仅有小结的项可点击,浮窗展示小结、起止时间、用时、期间动作与文件;无小结项显示「小结生成中…」或「无小结」。
- 点击进度环打开右侧栏「任务流」,查看全部分段小结。
- 回合结束仍标记为
in_progress的任务会显示暂停态;若子 agent 仍在跑,则单独显示「子 agent 执行中」并继续计时。 - 无任务时退化为单行胶囊,显示最近一段小结标题(≤20 字)。
分段小结(每回合)¶
每个 assistant 回合结束时,宿主按会话路由发起一次短请求,将本回合压缩为「一行标题 + 1–3 条要点」。结果用于胶囊标题、侧栏与插件 HTTP 路由;数据防抖写入 ~/.dsh/taskflow/<session>.json。
模型侧规范(可选)¶
默认向系统提示注册「任务清单规范」:先拆 todo、中文动词开头、单条约 35 词、同时仅一项 in_progress 等。另可选「复杂任务:并行拆解」,与多 subagent 并行场景配合。均可通过配置关闭。
斜杠命令 /taskflow 可立即整理最近一个尚未生成小结的回合。
安装与启用¶
官方 README 给出的安装方式如下(--profile web 按你的 profile 调整):
# 从 npm 安装
dsh plugin --profile web add dsh-plugin-taskflow
# 若包管理器因「新版本发布冷却期」装到了旧版,显式指定:
dsh plugin --profile web add dsh-plugin-taskflow@0.1.1
# 或直接从 GitHub 源码安装
dsh plugin --profile web add github:wk-xjd/dsh-plugin-taskflow
安装后刷新页面(桌面端可在开发者工具执行 location.reload(),或重启 App)。浏览器半部(client/client.js)改完后刷新即可;宿主半部(lib/index.js)需重启 App。本地开发可用仓库内的 install.mjs 同步到 ~/.dsh/plugins,其中 node install.mjs --rotate 用于宿主热更路径。
典型用法¶
| 位置 | 你会看到 |
|---|---|
对话里每次 todo_write |
清单卡片与完成/待办统计 |
| composer 上方 | 常驻清单与当前进度 |
| 点有小结的项 | 任务详情浮窗 |
| 点进度环 | 右侧栏全部段落小结 |
| 无任务时 | 单行「最新小结标题」,点开侧栏 |
需要手动补摘要时,在对话里输入 /taskflow。
排错时可对本地 DSH HTTP 端口探活(端口以你环境为准):
curl -s http://127.0.0.1:<port>/taskflow/health
curl -s http://127.0.0.1:<port>/taskflow/diagnostics
curl -s "http://127.0.0.1:<port>/taskflow/diagnostics?llm=1"
配置¶
在 patch 行的 config: 下设置,字段均可选。示例结构与 README 一致:
- insert:
- id: dsh-plugin-taskflow
name: '.../lib/index.js'
config:
enabled: true
minToolCalls: 1
minAssistantChars: 240
maxOutputTokens: 320
provider: ''
model: ''
includeSubagents: false
常用项含义(完整表见 GitHub README):
| 字段 | 默认 | 含义 |
|---|---|---|
enabled |
true |
false 时不调模型,仅用规则摘要 |
minToolCalls |
1 |
工具调用数达到阈值才总结 |
minAssistantChars |
240 |
或助手文本达到该长度 |
provider / model |
空 | 空则跟随会话路由 |
includeSubagents |
false |
默认不为子 agent 会话单独生成小结 |
taskListPolicy |
true |
是否注入任务清单规范 |
parallelPolicy |
true |
是否注入并行拆解规范 |
无可用 LLM 或调用失败时,宿主退回规则摘要(工具数、文件、命令等),界面会标「规则摘要」。
适用场景与注意¶
适合在 DSH Web 里做多步 agent 任务:需要常驻看清 todo 进度、希望每项收工有一句可点开的回顾、又要在回合之间用短 digest 减少翻 transcript。
注意:
- 小结与分段 digest 会额外调用模型,有 token 与并发上限(如
maxConcurrent默认 2、timeoutMs默认 45000)。 - 子 agent、中断或失败回合等有默认跳过策略;子 agent 小结默认关闭,避免刷屏与成本。
- DSH 生态是「一切皆插件」;社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-plugin-taskflow 把任务清单从「一行 todo」拉到 composer 上方的液态玻璃面板,并在任务级与回合级两层做摘要,配合 /taskflow 与 HTTP 诊断路由便于自查。