前言¶
在 DeepSeek Harness(DSH)裏用 Agent 做編碼或改倉庫時,常見做法是讓主模型直接調工具、讀寫文件。另一種路徑是:主代理只負責理解需求、拆任務和彙報,真正改代碼、跑命令交給專用子代理——例如本機的 Claude Code。
dsh-claude-code-delegate(維護者 lidaqi001,SkillHub 目錄,GitHub)是分類爲「工作流」的 Agent preset 插件:新建會話時選 Claude Code 委託,主代理只做調度,每個實際任務通過 subagent_claude_code 交給 Claude Code 子代理執行,再把結果彙報給你。
數據流可以概括如下:
你 → 主代理(調度器) → subagent_claude_code → Claude Code(真正幹活) → 主代理彙報 → 你
下面介紹它解決什麼問題、裝了什麼、以及如何安裝與驗證。
這是什麼¶
插件全名 dsh-claude-code-delegate(包版本見倉庫 package.json,當前資料爲 1.2.0)。官方簡介:DeepSeek Harness agent preset,會把每個任務委派給 Claude Code 子代理,主側只調度與彙報。
許可證 MIT;DSH 引擎要求 >=0.2.1 <0.3.0-0。依賴 @deepseek-ai/dsh-subagent-claude-code,dsh plugin add 時會一併安裝,無需再單獨啓用全局 Claude Code bundle(手動啓用也不衝突:本插件使用專用 provider 名稱)。
核心功能¶
preset 裏的工具¶
preset 只向 Agent 註冊兩個工具:
| 工具 | 作用 |
|---|---|
subagent_claude_code |
唯一執行入口,走本插件註冊的專用 provider |
ask_user_question |
需求有關鍵歧義時先問用戶 |
profile 級全局工具(如 working_directory、MCP、插件管理)對 preset 中的 Agent 仍可見;當前主要靠 persona 約束主代理不去用它們。若需要硬隔離,需另做 Agent 級的 ctx.tools.restrict() 類插件,且在 preset 作用域調用 restrict() 會連 preset 自注冊工具一起隱藏,gate 須按 Agent 作用域實現。
主代理角色¶
系統提示詞(complete: true)把主代理定義爲調度器:判斷是否該動手、寫自包含任務說明、一次只派一件事、等待完成、彙報結果,並區分「子代理報告完成」與「已驗證」。純寒暄或對結果的簡短追問可直接回答,其餘一律委派。同時掛了 compaction 組,長會話會壓縮上下文。
Claude Code 子代理是一次性外部子代理:看不到會話歷史、不能追加消息、結束後不能恢復,因此任務說明必須自包含;persona 已要求主代理按此書寫。
如何掛進 Cordis¶
cordis.patch.yml 插入兩行:
- Host 行
subagent-claude-code-delegate:專用 Claude Code provider(providerName: claude-code-delegate,默認permissionMode: auto),不註冊全局工具。 - preset 行
preset-claude-code:聲明 presetclaude-code;preset 內的subagent_claude_code與全局同名工具按 Agent 作用域遮蔽全局項,從而落到專用 provider。
安裝與啓用¶
前置條件¶
- 本機 Claude Code 已完成登錄;認證與原生設置以 Claude 的
settings.json/~/.claude.json爲準,本插件不會代登錄或改寫這些文件。 - DSH 版本滿足包的
engines.dsh。 - 依賴子包會隨
dsh plugin add安裝,本插件 patch 自注冊專用 provider。
安裝命令¶
CLI(將 <profile> 換成你的 profile 名):
dsh plugin --profile <profile> add dsh-claude-code-delegate
或在 Web/Desktop 的 插件 頁面安裝(plugin_manager 的 install_bundle,target 爲 dsh-claude-code-delegate)。
安裝後新建會話,在模式列表中選擇 Claude Code 委託。
配置¶
在本機 profile 的 cordis.patch.yml 裏按行 id 覆蓋,不必改插件包內文件:
- id: subagent-claude-code-delegate
name: '@deepseek-ai/dsh-subagent-claude-code'
config:
providerName: claude-code-delegate # 改了必須同步下面 preset 裏的 provider
permissionMode: auto # dontAsk | acceptEdits | auto | plan | bypassPermissions
# model: '<claude-model-id>' # 固定 Claude Code 使用的模型,省略則用 Claude 原生設置
permissionMode 含義簡述:
| 值 | 行爲 |
|---|---|
dontAsk |
不彈提示,未預授權操作直接拒絕(最保守) |
acceptEdits |
自動接受文件編輯,其餘權限拒絕 |
auto |
由 Claude Code 原生分類器逐項裁決(默認;不是沙箱,仍可能讀寫與執行命令) |
plan |
只出計劃,不執行 |
bypassPermissions |
跳過所有權限檢查,風險最高 |
修改後重新應用配置層(重啓應用,或 profile 啓用 HMR 時熱重載);preset 變更隻影響之後新建的會話。
典型用法與驗證¶
三層檢查¶
任意一層不對就停在該層排查:
- 行激活:
plugin_manager→list_plugins,確認subagent-claude-code-delegate與preset-claude-code均爲enabled: true、fiberPhase: active。 - preset 已註冊:
cordis_inspect_query→Config.listConfigs(name 過濾@deepseek-ai/dsh-agent-preset),應能看到preset-claude-code。 - 真實委派:新建會話選「Claude Code 委託」,派一個無害任務(例如在臨時文件寫一行再讀回),確認存在
subagent_claude_code、子代理有返回且主代理完成彙報。
常見故障¶
| 現象 | 可能原因 | 處理 |
|---|---|---|
| 模式列表無「Claude Code 委託」 | 插件未啓用或 preset 行掛載失敗 | 重做第 1、2 步 |
主代理稱無 subagent_claude_code |
provider 包未解析或 Host 行未激活 | list_plugins 查 subagent-claude-code-delegate |
| 委派失敗,診斷指向 query-start | Claude Code 未登錄 / SDK 缺失 / 平臺不支持 | 終端執行 claude 確認可登錄 |
| 能讀不能寫、跑不了命令 | permissionMode 過保守 |
改爲 auto 或接受限制 |
適用場景與注意¶
適合誰:你已經在 DSH 裏用 DeepSeek 等主模型對話,但希望編碼與倉庫操作統一交給本機 Claude Code,由主代理只做任務分解與結果彙總;且能接受子代理單次、無歷史的一次性調用模型。
安全與權限:插件隨當前 DSH 進程權限運行;子代理實際能力受 Claude Code 與本機 permissionMode 約束。安裝前建議瀏覽倉庫源碼與 MIT 許可證。bypassPermissions 不建議日常使用。
卸載:
dsh plugin --profile <profile> remove dsh-claude-code-delegate
或使用 plugin_manager 的 remove_bundle。
官方包版本變化後,建議先派無害任務做一次冒煙驗證。開發側可用 npm test 做靜態 smoke test。
結尾¶
dsh-claude-code-delegate 把 DSH 會話收成「調度 + Claude Code 執行」兩層:主代理少碰工具,實活交給 subagent_claude_code。安裝用官方 bundle 名 dsh-claude-code-delegate,選模式 Claude Code 委託 即可試用。
- 目錄頁:https://www.skillhub.cn/plugins/lidaqi001/dsh-claude-code-delegate
- 倉庫:https://github.com/lidaqi001/dsh-claude-code-delegate
SkillHub 爲社區插件目錄,與 DeepSeek / 幻方無官方從屬關係;星標與版本以各站點頁面與 package.json 爲準。