前言¶
在 DSH(DeepSeek Harness)的插件化生態中,處理複雜任務時,單一 Agent 往往難以兼顧探索、編輯、驗證和測試。如果隨意開放文件系統工具,上下文佔用會迅速膨脹,且模型調度容易陷入混亂。dsh-solo-agent 是一個解決這一問題的插件,它向用戶 agent-presets 注入 solo preset,通過嚴格的權限控制和閉環調度機制,優化上下文佔用和模型調度。
插件定位¶
- 名稱:dsh-solo-agent
- 作者:TheHeartFickle
- 類別:模型推理
- 許可證:MIT
這是一個 DSH 插件,核心功能是向用戶的 agent-presets 注入 solo preset。它通過隔離主 Agent 與子 Agent 的工具權限,實現閉環調度,從而在不犧牲任務複雜度的前提下控制上下文大小。
核心設計¶
Solo 主 Agent 的編排者角色¶
Solo 主 Agent 是純編排者,不包含文件系統(shell/fs)和內容編輯工具。在模型可見目錄中,它被隱藏了 bash、pwsh、read、write、edit、glob、grep 和 str_replace_editor 等工具。
Solo 主 Agent 僅保留必要的工具:ask_user_question、todo_write、skill 以及 4 個前臺 subagent 工具。文件系統和 shell 工具由 solo-bootstrap.mjs 在 preset 層掛載,僅供子代理使用。
閉環調度機制¶
插件實現了閉環調度流程,通過不同的子代理分工協作:
subagent_explore:負責只讀研究,初始化一次,產出目標測試用例、測試命令和根因分析。- 迭代循環(最多 5 輪):
subagent_editor:聚焦代碼編輯,不自測。subagent_general:負責執行測試並返回原始輸出。- 決策:Solo 主 Agent 僅依據
subagent_general返回的原始測試輸出進行決策。
- 對抗性驗證:當發生大改動或高風險操作且測試通過後,啓動
subagent_verify進行對抗性驗證,返回 PASS/FAIL/PARTIAL。
子代理 minimal 錨定¶
插件借鑑了 anchored-standard 的機制,實現了子代理的 minimal 錨定。該機制只對 delegationDepth > 0 的子代理生效。這意味着 Solo 主 Agent 本身不受錨定限制,保證了全局調度的靈活性。
壓縮功能¶
插件默認啓用一組壓縮功能以優化上下文:
* dsh-compaction-basic
* dsh-compaction-tool-result-pruner
* dsh-command-compact
角色分工¶
插件在 lib/roles.js 中維護了角色註冊表。以下是各角色的職責與工具可見性:
| 角色 | 職責 | 可見工具 | Skill |
|---|---|---|---|
subagent_explore |
只讀研究,產出 target tests / test command / root-cause | read, read_image, glob, grep, bash, web_search, web_fetch | 無 |
subagent_editor |
聚焦編輯,不自測 | read, write, edit, str_replace_editor, glob, grep, bash | 無 |
subagent_verify |
對抗性驗證,返回 PASS/FAIL/PARTIAL | read, read_image, glob, grep, bash, skill | 有 |
subagent_general |
雜活/測試執行,返回原始輸出 | read, write, edit, str_replace_editor, glob, grep, bash, web_search, web_fetch, skill | 有 |
項目結構與典型用法¶
插件通過 dsh.plugin.json 中的配置將 solo preset 注入到系統中。其內部結構包含以下關鍵文件:
dsh.plugin.json:插件清單,定義contributes.presets = ["solo"]。lib/index.js:負責寫入或更新~/.dsh/.agent-presets/solo。templates/solo-bootstrap.mjs:負責子代理 minimal 錨定邏輯以及主 Agent 的目錄過濾。templates/compaction-epoch.mjs:用於壓縮後重新錨定的 epoch 跟蹤。
開發者可以通過以下命令進行測試和打包:
npm test
npm run package:registry
適用場景與注意¶
- 適用場景:需要高度結構化工作流、對上下文大小敏感、且任務需要明確分工(探索-編輯-測試-驗證)的場景。
- 注意:
- Solo 主 Agent 不受錨定影響,這是其全局調度的關鍵。
- 壓縮功能依賴外部插件(如
dsh-compaction-basic等),需確保這些依賴已安裝。
總結¶
dsh-solo-agent 提供了一套嚴謹的 Agent 分工與調度方案,通過限制主 Agent 的工具權限和引入閉環驗證機制,有效解決了上下文佔用和模型調度問題。對於需要精細控制智能體行爲的高級用戶,這是一個值得嘗試的 DSH 插件。