前言¶
在 DeepSeek Harness (DSH) 的開發中,子代理委派是提升任務複雜度的常見手段。默認情況下,這種委派往往涉及對模型 ID 的透傳,這可能導致非預期的 Provider 選擇或推理強度失控。dsh-routed-subagent 插件旨在解決這一問題,它要求每個委派調用必須顯式選擇一個通過 model 參數配置的模型策略,以及一個通過 reasoning_effort 參數配置的精確推理努力。該插件強制執行白名單路由,拒絕任意 Provider 或 Model 的透傳。
功能¶
該插件主要提供以下能力:
- 白名單模型與推理路由:允許調用者基於本地策略動態選擇模型和推理強度。
- 調用驗證:在創建子代理前,插件會根據本地策略和
ctx.llm.resolveCallConfig()驗證model與reasoning_effort的組合。 - 執行模式支持:支持前臺和後臺執行,通過
run_in_background參數控制。 - 深度與權限控制:支持配置最大委派深度 (
maxDepth) 和模型策略,未跟蹤的代理在深度大於零時將不接收模型權限。 - 配置界面:提供完整的路由器配置設置卡片。
安裝與啓用¶
安裝插件需要指定目標 Profile。
dsh plugin --profile <your-profile> add github:leonardoxr/dsh-routed-subagent#v0.3.0
也可以使用本地打包文件進行安裝:
dsh plugin --profile <your-profile> add C:/path/to/dsh-routed-subagent-0.3.0.tgz
安裝後,插件會註冊爲 routed_subagent 工具。
配置方法¶
配置通過 Profile Patch 的 routed-subagent 行進行。啓用委派功能需要同時配置 rootModels 和 models。未配置完整策略時,插件僅暴露設置卡片,不註冊委派工具。
- id: routed-subagent
config:
toolName: routed_subagent
maxDepth: 2
rootModels: [codex-mini, codex-sol]
models:
codex-mini:
provider: openai-codex
model: gpt-5.4-mini
reasoningEfforts: [low, medium]
maxTokens: 16384
description: 'Mechanical edits, lookups, and summarization.'
codex-sol:
provider: openai-codex
model: gpt-5.6-sol
reasoningEfforts: [medium, high, xhigh]
maxTokens: 65536
description: 'Architecture, multi-step reasoning, and hard debugging.'
spawnableModels: [codex-mini]
在應用界面中,可以通過 Settings → Plugins → Routed subagent 來編輯路由器配置。所有的更改在點擊 Save changes 前都會暫存;成功保存後,工具會熱重載,並使之前設置的遞歸權限失效。點擊 Reset to composition 可清除所有路由器覆蓋。
工具契約¶
註冊的 routed_subagent 工具接受以下參數:
| 字段 | 必填 | 說明 |
|---|---|---|
description |
是 | 短顯示標籤 |
prompt |
是 | 完整的獨立子任務提示詞 |
model |
是 | 當前調用者上下文中允許的配置模型策略 ID |
reasoning_effort |
是 | 該策略允許的精確努力 ID |
run_in_background |
否 | 通過 Harness Jobs 服務運行 |
前臺和後臺執行都會回顯有效的 { id, provider, model, reasoningEffort } 選擇,用於審計。
配置參考¶
配置項及其默認值與含義如下:
| 鍵 | 默認值 | 說明 |
|---|---|---|
toolName |
routed_subagent |
註冊的工具名稱 |
enableRunInBackground |
true |
暴露 run_in_background 參數 |
maxDepth |
1 |
正整數絕對委派深度上限 |
rootModels |
必填 | 頂層代理可用的非空策略 ID 列表 |
models |
必填 | 非空的配置模型白名單 |
models.*.provider |
必填 | 已註冊的 LLM 提供商路由 |
models.*.model |
必填 | 提供商擁有的精確模型 ID |
models.*.reasoningEfforts |
必填 | 非空的精確努力 ID 白名單 |
models.*.maxTokens |
— | 正數輸出 Token 上限 |
models.*.description |
— | 顯示給調用者的短路由權衡說明 |
models.*.spawnableModels |
[] |
此模型上的子代理允許調用的策略 ID |
配置是嚴格的:未知字段、重複 ID、空白名單、不安全的數值以及未知引用都會導致加載或保存失敗。
注意事項與安全¶
- 嚴格配置:不滿足上述嚴格校驗規則時,插件將無法正常加載或保存。
- 權限與遞歸:深度大於零的未跟蹤代理不會獲得模型權限;子代理僅能調用其選定策略
spawnableModels中列出的模型。 - DNS-rebinding 防禦:Harness 的
/api信任圍欄旨在防禦 DNS-rebinding,而非提供身份認證。任何能訪問服務器的人都可以發起其代理可用的任務。請勿將昂貴路由配置在models中,除非你願意承擔該成本。 - 版本差異:README 文檔提及
v0.3.0,而package.json顯示版本爲0.3.1。安裝時請參考官方提供的安裝命令。
結語¶
dsh-routed-subagent 爲 DeepSeek Harness 提供了細粒度的子代理控制能力,通過強制白名單路由和推理努力校驗,確保了任務執行的確定性。該插件遵循 MIT 許可證,維護者 leonardoxr。