前言¶
DeepSeek Harness (DSH) 採用插件化架構,允許開發者擴展其核心能力。在處理複雜任務時,主對話容易因爲頻繁讀取文件、執行命令或搜索網頁而被過程數據淹沒,導致上下文膨脹或注意力分散。dsh-multitask 插件旨在解決這一問題,它引入一種“減震器”模式,將主對話轉變爲協調者,將具體的執行工作下放給子代理。
核心功能¶
該插件通過嚴格的上下文隔離,區分了主對話(協調者)和子代理(執行者)的職責。
1. 協調者(主對話)職責¶
主對話在啓動後僅保留受限的工具集:
* 只讀檢查:read、grep、glob、file_info
* 任務委派:subagent、subagent_fork、subagent_ptc、subagent_minimal
* 代理控制:send_message、interrupt_agent、list_agents
* 結果檢索:job_list、job_output、job_kill
* 工作流編排:workflow
* 交互與自我管理:ask_user_question、todo_write、create_goal 等
協調者的核心工作是理解需求、生成任務簡報、驗證結果並彙總報告。它無法直接寫入文件或運行命令,從而避免上下文被過程數據污染。
2. 子代理(執行者)職責¶
子代理擁有完整的工具集,負責處理所有流程數據,包括文件內容、命令輸出、構建日誌、搜索結果等。它們只返回最終結論,不將中間數據返回給主對話。
3. 四種子代理類型¶
協調者根據任務需求,可以選擇四種不同的子代理:
| 類型 | 工具面 | 適用場景 |
|---|---|---|
subagent |
完整工具 | 通用默認類型,用於寫代碼、跑測試、編輯文件 |
subagent_fork |
完整工具 + 對話歷史 | 需要基於現有對話上下文進行審查或繼續 |
subagent_ptc |
PTC 壓縮(僅 run_code) |
程序化批量處理(如過濾、聚合大數據),防止中間值進入上下文 |
subagent_minimal |
只讀工具 | 調查、快速問答、事實覈查 |
安裝與啓用¶
從發佈包安裝¶
安裝時必須指定 --profile 選項,該選項對應 DSH 的配置文件名稱(如 desktop 或 web)。
dsh plugin --profile <profile> add dsh-multitask
安裝完成後,DSH 會自動將插件加入配置的 dsh.profile.bundles 列表,並在啓動時加載。
從源碼安裝¶
若需直接運行源碼進行調試:
- 在
cordis.patch.yml中添加以下配置,使用絕對路徑:
- insert:
- id: multitask
name: 'file:///absolute/path/to/dsh-multitask/lib/index.js?v=6'
- 路徑中的空格和
%需進行 URL 編碼(如 PowerShell 中可使用New-Object System.Uri生成)。 - 注意:
?v=N是緩存鍵,僅在file://模式下有效。
注意:從源碼安裝時,若使用桌面應用,需完全退出應用後再操作,否則會因文件鎖定導致安裝失敗。
典型用法¶
- 創建會話:在創建新會話時,在模式選擇器中選中 “Multitask 減震器模式”。
- 提交需求:直接提出你的需求。
- 任務分發:協調者會將需求拆解爲獨立的任務簡報。
- 並行執行:簡報會並行分發給子代理執行,協調者繼續監控或處理其他邏輯,直到所有子代理完成。
配置說明¶
安裝後,DSH 的設置頁面會出現相應的配置項。
Multitask 頁面¶
- 模型選擇:
multitask.subagentModels[]- 爲四種子代理類型指定默認模型,可選擇“統一使用協調者模型”或“分別指定”。 - 並行限制:
subagent.maxActiveSubagents- 限制同時運行的最大子代理數量。
General 頁面¶
- 遞歸深度:
subagent.maxDepth- 設置子代理遞歸調用的最大深度(全局生效)。 - 並行限制:
subagent.maxActiveSubagents- 與 Multitask 頁面共用同一配置項。
注意事項¶
- 模式選擇時機:該模式必須在會話開始前選擇。一旦會話開始,工具集和提示詞即凍結,無法中途切換。
- 層級限制:委託是單向的一層深度(協調者 → 子代理),子代理無法進一步委託其他子代理。
- 工具白名單:協調者的工具集基於白名單,任何未列出的工具(如
write、edit、pwsh、web_search)默認不可見。
總結¶
dsh-multitask 通過將規劃與執行分離,利用子代理處理噪音數據,爲主對話保留了高價值信息。這對於需要同時處理多個文件、構建項目或進行復雜搜索的開發場景尤爲實用。該插件零依賴,不修改 DSH 源碼,可安全集成到現有的插件生態中。