前言¶
DeepSeek Harness 的默認 subagent / subagent_fork 工具強制子代理繼承父級預設。本插件替換了這一行爲,提供了一個自定義的子代理提供者,該提供者的異步子設置調用 agentPresets.mount(childCtx, <preset>),使子代理完全採用目標預設的完整配置:身份、提示部分、技能目錄和工具。
簡介¶
這是一個全局 DeepSeek Harness 插件,允許從任何會話調度一次性的子代理,完全掛載在任何代理預設上。它支持按調用模型/提供者覆蓋,並提供模型可用性預檢。
核心功能¶
- 後臺默認運行,並行分派:調用立即返回任務 ID;對話可繼續執行其他工作或並行調度更多子代理;中止對話不會取消子代理(需使用
job_kill停止)。 - 完全預設掛載:子代理運行在目標預設的完整配置下,而非身份的簡單複製。
- 按調用模型/提供者覆蓋:通過
model/provider參數將子代理的 LLM 調用路由到與當前會話不同的模型。 - 模型可用性預檢:無效模型會快速失敗,並返回提供者的候選列表,而非模糊的子代理失敗。
- 官方子代理生態系統:支持一次性的生命週期事件、UI 行和軌跡。
- 冪等的提供者註冊:多個預設可以掛載同一行;宿主機平面提供者註冊表不會重複。
- 外部引擎支持:除了默認的
dsh內核,還支持codex、claude、codebuddy。
安裝與啓用¶
該插件是純 ESM 包,通過掛載包目錄安裝。
- 掛載包目錄
插件靜態導入@deepseek-ai/*包,這些包通過 Node ESM 從包位置解析。需要在插件目錄中創建指向 Harness 安裝的node_modules符號鏈接。
Windows (BAT):
mklink /J "<plugin-dir>\node_modules" "<harness>\resources\host\node_modules"
POSIX (Linux/macOS):
ln -s "<harness>/resources/host/node_modules" "<plugin-dir>/node_modules"
- 添加到配置文件
將包添加到配置文件的dsh.profile.bundles列表中(例如<dshHome>/profiles/web/package.json)。
{
"dependencies": { "dsh-routed-subagent": "link:<plugin-dir>" },
"dsh": { "profile": { "bundles": ["...", "dsh-routed-subagent"] } }
}
cordis.patch.yml 文件在包內,註冊插件;當包列在 bundles 中時,該層會自動應用。
典型用法¶
subagent_routed 是主工具。
後臺一次性運行(默認):
subagent_routed(prompt="Use the dev engineer standard to review this repository", preset="dev", description="dev review")
分叉(繼承當前會話的已完成回合):
subagent_routed(prompt="Continue the review", preset="dev-reviewer", description="follow-up", fork=true)
可繼續(持久化子代理 ID,稍後恢復):
subagent_routed(preset="dev", prompt="Audit this repo", description="audit", continuable=true)
參數行爲:
- preset 無效/無法解析:報錯,並附帶可用預設 ID 列表。
- model / provider:按調用模型/提供者覆蓋(快速失敗時會列出候選)。
- max_tokens:子代理 LLM 調用的輸出/Token 限制。
- tool_filter:在預設工具之上進行拒絕掩碼({ deny: string[] })。
- fork + continuable:支持(可繼續的分叉會播種父級已完成的回合)。
注意事項¶
- 倉庫:僅限 GitHub,未發佈到 npm。
- 兼容性:目標 DeepSeek Harness rc.7+(該插件依賴的異步子設置是較新的 Harness 行爲)。
- Codex 引擎:需要登錄 (
codex login) 和approval_policy: never。 - CodeBuddy 引擎:需要安裝,且默認模型爲
hy3(可通過config.codebuddyModel/$CODEBUDDY_MODEL覆蓋)。 - Claude 引擎:
continuable功能取決於官方 Anthropic API。如果 Claude CLI 配置了自定義後端(例如指向第三方/本地端點的AnthropicBaseURL),sessionId + persistSession可能會掛起或不可用。可靠的恢復需要將AnthropicBaseURL指向官方 API。
結語¶
該插件爲 DeepSeek Harness 提供了靈活的子代理調度能力,允許在保持 DSH 插件化架構的同時,通過外部引擎(如 codex、claude、codebuddy)擴展子代理能力。