前言¶
在 DeepSeek Harness (DSH) 中,长任务的执行过程会积累大量上下文:读过的文件、试过的错、执行的命令。这些内容对后续步骤没有直接用处,却不断占据上下文长度。dsh-tree-task-flow 插件通过树形结构管理多步任务,在节点完成时自动折叠执行过程,只保留结果。
是什么¶
这是一款把多步任务组织成目标 → 任务 → 子任务三级树的插件。
每个节点完成时,由 AI 提交结果,插件随即把该节点的执行过程从上下文里折叠掉,只留下结果。
- 维护者:viyiviyi
- 许可证:MIT
安装与启用¶
安装前请确保环境满足要求:Node.js 22.19 以上版本,并已安装运行 dsh。
从 npm 安装:
dsh plugin --profile web add dsh-tree-task-flow
安装后必须重启 dsh web 才能生效。安装即启用,不需要再改任何配置。若不想使用,可在 profile 里配置 enabled: false 关闭。
核心功能¶
插件提供命令行接口(/task-tree 系列命令)和工具调用接口(tree_task_* 系列)。
- 树形结构:支持目标、任务、子任务三级嵌套。
- 上下文折叠:节点完成时,折叠该节点执行过程,只保留结果。
- 界面集成:提供折叠卡片和展开清单视图。
折叠逻辑¶
折叠按“只看表层,不依赖 tree_task_plan”的规则切分:
- 起点:上一次 tree_task_done 之后的第一条 tree_task_create 调用。
- 终点:本次 tree_task_done 调用之前。
- 区间处理:折叠起点那次调用与返回、终点那次调用与返回原样留在上下文,中间的过程被收走,换成一条计数通告。
- tree_task_plan:不是边界,随中间过程一起被收走。
工具接口¶
插件提供以下工具:
| 工具名 | 用途 |
|---|---|
tree_task_create |
新建目标(开工),也是折叠的起点标记 |
tree_task_plan |
给一个节点追加子节点(任务加子任务,目标加任务) |
tree_task_done |
完成一个节点并提交结果(收工),触发折叠 |
tree_task_update |
修改一个节点的标题或说明 |
tree_task_drop |
丢弃一个节点(留记号,历史留着) |
tree_task_delete |
删除一个节点(摘掉,不留痕) |
tree_task_status |
查看计划树,默认只展开未结束的目标 |
命令行接口¶
/task-tree 命令不经过模型,直接执行:
| 命令 | 作用 |
|---|---|
/task-tree |
查看本会话的任务树与检查点状态 |
/task-tree done <id> <结果> |
提交某个节点的结果并完成它 |
/task-tree drop <id> |
丢弃某个节点 |
/task-tree delete <id> |
删除某个节点(连子节点一起摘掉) |
/task-tree pause |
暂停:正在跑的工具跑完就停住 |
/task-tree resume |
继续:从停住的地方接着跑 |
/task-tree reset |
清掉本会话的计划树 |
界面与配置¶
界面集成在 DSH Web 界面中,输入框上方有“树形任务流”条目。
- 折叠时:显示为 36px 单行条,包含阶段标签、目标标题、进度,以及暂停/继续、清空计划、展开按钮。
- 展开后:显示三级树,默认只摊开当前路径,其余节点收起。支持查看全文、完成、丢弃、删除操作。
配置项位于 $DSH_HOME/profiles/<名字>/cordis.patch.yml 或 DSH 设置面板:
- enabled:总开关。
- autoContinue:模型停下时是否自动续行。
- interruptRecovery:意外中断后是否自动拉起。
适用场景与注意¶
- 适合需要拆解复杂任务、希望保持上下文清洁的开发者。
- 插件以当前 dsh 进程权限运行,安装前建议检查源码与许可证。
- 数据每 4 秒自动拉取,界面会自动更新。
总结¶
dsh-tree-task-flow 通过树形结构管理和上下文折叠机制,解决了长任务执行中上下文膨胀的问题。它将“过程”与“结果”分离,让后续步骤始终能聚焦在当前需要完成的节点上。