前言¶
在本地部署大模型時,受限於顯存或硬件條件,單次對話的上下文窗口往往較短,難以直接處理長文檔或複雜的長任務。DeepSeek Harness (DSH) 提供了插件化的擴展能力。dsh-plugin-task-runner 是其中的一個工作流插件,它實現了“任務拆解模式”,通過主代理拆解任務、子代理並行執行並綜合結果的機制,繞過本地模型的上下文限制。
它是什麼¶
這是 DeepSeek Harness 的“任務拆解模式” agent preset。由 weixshaw 維護,歸屬於工作流類別。它的核心價值在於將一個大任務拆解爲獨立子任務,由子代理在全新短上下文中並行執行,主代理僅負責彙總結果。
核心功能¶
- 任務拆解與並行執行:主代理將大任務拆解,子代理在隔離的上下文中並行幹活。
- 上下文隔離:子代理擁有全新的短上下文,完全隔離父會話上下文,避免信息泄露或干擾。
- 參數自定義:支持併發數、worker 模型、fallback 模型、超時等參數自定義。
- 外部記憶:支持將長期狀態結構化落盤到工作區
.task-runner/目錄。 - 預算控制:支持配置 worker 上下文預算和返回結果帶寬預算,防止主上下文膨脹。
安裝與啓用¶
使用 DSH 的命令行工具安裝:
dsh plugin --profile web add dsh-plugin-task-runner
安裝後,重啓 web(或刷新頁面),在模式選擇器裏選擇“任務拆解模式”即可啓用。插件安裝時會自動將 preset 拷貝到 ~/.dsh/.agent-presets/task-runner/ 目錄。
配置¶
配置文件位於 ~/.dsh/.agent-presets/task-runner/config.json,也可以在項目根目錄放置 task-runner.config.json 進行項目級覆蓋。以下是核心配置項:
{
"maxConcurrentWorkers": 1,
"worker": {
"provider": "omlx",
"model": "root4k/Huihui-Qwen3.8-27B-abliterated-oQ4e-mtp"
},
"fallback": {
"provider": "deepseek-official",
"model": "deepseek-v4-flash"
},
"maxWorkerContextTokens": 40000,
"maxReplanRounds": 2,
"workerTimeoutMinutes": 30,
"maxWorkerResultTokens": 2000
}
maxConcurrentWorkers:同時運行的子代理數上限,內存小的機器建議設爲 1。worker:默認的本地模型配置,用於執行子任務。fallback:子任務超出本地能力時的雲端兜底模型。maxWorkerContextTokens:本地 worker 的上下文預算。maxWorkerResultTokens:每個 worker 返回給主代理的小結帶寬上限,防止主上下文隨 worker 數量線性膨脹。
依賴與前置條件¶
本插件依賴 dsh-plugin-subagent-director 插件。如果沒有安裝該依賴,worker 無法路由到本地模型,只能使用雲端模型。
同時,需要在 DSH 的 settings.yaml 中配置本地模型的端點(如通過 omlx 部署的 OpenAI 兼容接口),以便 worker 調用。
外部記憶¶
插件會在工作區生成 .task-runner/ 目錄,用於存儲長期狀態:
* state.json:當前階段、目標、待辦及決策。
* tasks.json:任務清單(ID、狀態、worker、小結路徑)。
* findings/:按主題分類的關鍵發現。
* artifacts/:worker 的完整輸出。
* summary.md:任務結束時的交接摘要。
注意事項¶
- 配置生效時機:配置修改後,需在下一個會話開始時纔會生效。
- 全本地模式:勾選“全本地模式”開關後,仍需在模型選擇器中手動切換到本地模型,主代理纔會真正使用本地模型。
- 會話重啓:某些配置變更或依賴問題可能需要重啓應用或刷新頁面才能修復。
短結尾¶
dsh-plugin-task-runner 通過拆解與隔離機制,解決了本地大模型處理長上下文難題。配合外部記憶和靈活的配置,適合處理複雜、長鏈路的開發或分析任務。
倉庫地址:https://github.com/weixshaw/dsh-plugin-task-runner