前言¶
DSH 已有扁平列表式的 dsh-tool-todo 工具插件,用於維護 todo_write 任務清單。如果部署側需要按父子層級組織任務,而不是把任務鋪成一個扁平列表,就需要一個能保持 DSH 工具註冊形態、但把數據形狀改爲樹形的替代方案。
下面介紹 dsh-tool-todo-tree。它是扁平 dsh-tool-todo 的互斥替代品:兩者註冊同一個工具名 todo_write,一個部署只能掛載其中一個。
這是什麼¶
倉庫爲 Chinesezjc/dsh-tool-todo-tree,許可證爲 MIT。
該插件用於 DeepSeek Harness(DSH),定位是嵌套樹形 todo_write 工具插件。它把 todo_write 的寫入內容從扁平列表換成由 children 嵌套的任務樹,並在 Web 側提供對應的計劃條和工具行展示。
該包是可獨立構建的 DSH bundle,依賴全部取自已發佈的 @deepseek-ai/* npm 包,不需要 DSH 源碼樹。
核心功能¶
todo_write:整棵任務樹全量替換寫入,節點通過children嵌套。- 事件寫入:每次調用向所屬 agent 的 session 追加一條
todo/tree事件快照,回放爲 last-write-wins。 - 投影讀取:發佈
todoTreeprojection,供 UI 讀取當前整樹,由下一個turn/start清空。 - 並行控制:支持
allowParallelInProgress配置。true允許多個節點同時in_progress,false則全樹只允許一個。 - 狀態約束:父節點只有在全部子節點
completed時纔可爲completed。 - 數據歸一化:同層兄弟節點
content去重;空children歸一化爲省略該字段。 - 深度控制:支持
maxDepth配置,默認 3,上限爲協議常量SCHEMA_DEPTH。 - Web 側:註冊
conversation.input.dock計劃條,讀todoTreeprojection,並按深度縮進列出節點。 - Web 側:註冊
tool.call.toolview行,以priority: -1遮蔽內置扁平行,並逐層統計。 - 瀏覽器端產物:爲 closure-factory 形態,CSS Module 編譯進包並注入樣式表。
安裝與啓用¶
先使用 DSH 插件命令安裝到指定 profile:
dsh plugin --profile <名字> add dsh-tool-todo-tree
這一步會把包寫進 profile 依賴,並把 cordis.patch.yml 註冊爲一層 bundle。
示例 bundle 配置如下。它掛載樹形工具,同時禁用扁平工具:
- id: tool-todo
disabled: true
- insert:
- id: tool-todo-tree
name: dsh-tool-todo-tree
config:
maxDepth: 3
allowParallelInProgress: true
如果從本地 tarball 安裝,可以使用 pnpm pack 產出的包。
如果從 git ref 安裝,可使用:
github:Chinesezjc/dsh-tool-todo-tree#<sha>
git 安裝時 pnpm 會跑 prepare,需要在 profile 的 pnpm-workspace.yaml 放行。
典型用法¶
啓用樹形工具不能只安裝本包,還要從 agent preset 中移除扁平工具那一項。
1、複製一份現有 agent preset,避免直接改動共享預設。
2、從副本里移除 - id: tool-todo 條目及其 config 子鍵。
3、創建 session 時使用這份修改後的 preset。
不要把 tool-todo-tree 加進 preset。本工具有意拒絕 scoped context,加進去會讓 session.create 直接失敗;它只掛 host 層,靠繼承到達 session。
已覈實的 preset 影響包括:shipped 的 standard、code、cordis 三個 preset 各自都有一行 - id: tool-todo,minimal 沒有。preset 層的同名工具會遮蔽 host 層的同名工具,所以僅執行 dsh plugin add 的部署仍可能拿到扁平行爲。
適用場景與注意¶
適合需要在 DSH 中使用樹形任務計劃、替代扁平 dsh-tool-todo 的部署。使用前確認以下限制:
- 與扁平
dsh-tool-todo互斥:兩者都註冊todo_write,一個部署只能掛載其中一個;必須顯式禁用扁平工具。 allowParallelInProgress是必填配置,無默認值。maxDepth默認 3,上限爲SCHEMA_DEPTH。- 計劃條只按深度縮進,不折疊;較寬的樹依賴計劃條自身滾動。
0.2.0的瀏覽器產物是 ESM、被 shell 拒絕,已 deprecate;使用0.2.1起的版本。- 本包 peer 範圍統一釘在
^0.1.0-rc.6。 @deepseek-ai/dsh-session聲明瞭未發佈的 peer@deepseek-ai/dsh-type-meta,因此autoInstallPeers開啓時安裝會失敗。- 該包會在當前
dsh進程內運行,安裝前應檢查源碼與許可證;許可證爲 MIT。
鏈接¶
- 社區目錄頁:
https://www.skillhub.cn/plugins/Chinesezjc/dsh-tool-todo-tree - GitHub:
https://github.com/Chinesezjc/dsh-tool-todo-tree