前言¶
在 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 通過樹形結構管理和上下文摺疊機制,解決了長任務執行中上下文膨脹的問題。它將“過程”與“結果”分離,讓後續步驟始終能聚焦在當前需要完成的節點上。