前言¶
在 DeepSeek Harness(DSH)裏做模型推理或複雜編碼任務時,常見做法是掛官方子代理包、固定 SDK 版本,或自己拼子進程。另一條路是直接把任務交給本機已安裝的 Claude Code 命令行:每次調用單獨起進程,按次選模型和 effort,不綁死 SDK 版本,由用戶自行 claude update 維護啓動器。
本文介紹社區插件 dsh-claude-delegate(維護者 lcf2212dev,分類:模型推理)。它以獨立 bundle 形式只暴露一個工具 claude_delegate,通過宿主機的 claude -p 啓動無人工值守的 Claude Code 會話,不依賴 @deepseek-ai/dsh-subagent-claude-code,也不依賴固定子代理實例或釘死的 SDK。
這是什麼¶
- 包名:
@dsh-burn-plugins/dsh-claude-delegate(版本 0.1.0,MIT) - 倉庫:lcf2212dev/dsh-claude-delegate
- 目錄頁:SkillHub 插件頁
插件解決的是:在 DSH 會話裏需要「另開一個 Claude Code 幹活」時,如何用最少依賴、可調模型與 effort 的方式委派任務,且臨時目錄與鑑權行爲可預期。
核心功能¶
單次調用 = 一個子進程¶
每次工具調用等價於在宿主機執行一次 Claude Code 打印模式,大致形態如下(實際參數由插件組裝):
claude -p <task> --model <opus|sonnet|haiku> --effort <low|medium|high|xhigh|max> \
--dangerously-skip-permissions --output-format json --no-session-persistence
要點(均來自 README):
- 默認放行權限:未設
readOnly時使用--dangerously-skip-permissions;readOnly: true時改爲--permission-mode plan(不編輯、不跑需審批的命令)。 model/effort可按調用覆蓋:未傳時用 profile 行配置裏的默認值。- 鑑權:默認
isolateCredentials: true,會去掉環境中的ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN、CLAUDE_CODE_OAUTH_TOKEN、CLAUDE_CODE_API_KEY,讓本機 OAuth 登錄優先生效;若要用 API Key,可設isolateCredentials: false並在env裏傳入。 - 獨立臨時目錄:設置
CLAUDE_CODE_TMPDIR(默認~/.cache/claude-delegate),減輕多用戶下/tmp/claude-$UID歸屬問題。 - 工作目錄:默認爲會話 workspace,也可在調用參數裏指定絕對路徑
cwd。 - 取消:可終止子進程樹(SIGTERM,約 3 秒後 SIGKILL)。
- 無內置超時:
timeoutMs爲 0 時不封頂;調用會阻塞直到子進程結束或被取消。
工具參數 claude_delegate¶
| 參數 | 說明 |
|---|---|
task |
必填;自給自足的任務描述,子會話看不到父對話 |
model |
opus | sonnet | haiku |
effort |
low | medium | high | xhigh | max(模型可能 clamp 不支持的檔位) |
cwd |
絕對路徑;省略則用會話 workspace |
readOnly |
默認 false;true 時只讀/規劃模式 |
明確不提供的功能¶
- 單次執行:無續聊、resume、流式或父上下文帶入。
- 父智能體需等待子進程結束(可在 UI 取消)。
- 若
claude update改了 CLI 旗標(如--effort、--no-session-persistence),需自行改插件源碼中的參數數組(README 指向index.js)。
安裝與啓用¶
官方 README 未提供 dsh plugin add github:... 一類命令;安裝方式爲在 profile 裏 link 本地包路徑 並加入 bundles。下面步驟照 README 原文。
- 在 profile 的
package.json(例如~/.dsh/profiles/desktop/package.json)中 link 包:
"@dsh-burn-plugins/dsh-claude-delegate": "link:/path/to/dsh-claude-delegate"
將 /path/to/dsh-claude-delegate 換成本地已有源碼目錄的實際路徑(非 git clone 步驟;你需自行取得代碼目錄)。
-
在
dsh.profile.bundles中加入@dsh-burn-plugins/dsh-claude-delegate。 -
在該 profile 下執行
pnpm install(會在node_modules/@local下創建 symlink)。 -
HMR 會重組 profile,下一次模型請求時工具纔會出現。
依賴:peer 需要 @deepseek-ai/dsh-tools(>=0.2.2-rc.1)與 @deepseek-ai/schemastery(>=3.19.0 <4)。要求:宿主機已安裝 claude 並已登錄(訂閱),或在關閉憑證隔離後通過 env 提供密鑰;不要再裝 @deepseek-ai 子代理包。
配置(profile 行 claude-delegate)¶
在 profile patch(如 ~/.dsh/profiles/desktop/cordis.patch.yml)中覆蓋行配置即可,無需改插件倉庫。注意:config 整塊替換行配置,未寫字段回落到默認。
| 字段 | 默認 | 含義 |
|---|---|---|
command |
claude |
Claude Code 啓動器;若 PATH 上有 wrapper 建議寫絕對路徑 |
model |
opus |
調用未傳 model 時的別名 |
effort |
high |
調用未傳 effort 時的檔位 |
tmpDir |
空則 ~/.cache/claude-delegate |
導出爲 CLAUDE_CODE_TMPDIR |
env |
{} |
疊在宿主環境之上的額外環境變量 |
timeoutMs |
0 |
聲明式單次上限;0 表示不限制 |
isolateCredentials |
true |
去掉環境裏的 Ambient 憑證以走訂閱登錄 |
示例:
- id: claude-delegate
name: "@dsh-burn-plugins/dsh-claude-delegate"
config:
command: /absolute/path/to/claude
model: sonnet
effort: medium
典型用法思路¶
DSH 模型在對話中調用 claude_delegate 時,傳入完整 task 字符串;需要省 token 或只讀摸底時設 readOnly: true;需要 Sonnet + 中等 effort 時在參數裏寫 model / effort,不必改全局配置。
子進程使用 JSON 輸出格式返回,父會話據此繼續編排。因無會話持久化與續聊,適合「一塊獨立子任務」(例如單獨目錄下的重構草案、只讀架構掃描),不適合替代同一會話裏多輪協作的 Claude Code 窗口。
適用場景與注意¶
適合:本機已用 Claude Code 訂閱/OAuth;希望在 DSH 裏按需把任務甩給 Claude,且每次可選 Opus/Sonnet/Haiku 與 effort;不想維護官方子代理 bundle 與 SDK 版本對齊。
注意:
- 插件以當前 DSH 進程的用戶與權限運行子進程;默認跳過權限確認,啓用前請閱讀倉庫源碼與 MIT 許可證,理解
--dangerously-skip-permissions的風險。 - SkillHub 等爲社區目錄,與 DeepSeek / 幻方無官方從屬關係;星標與傳播數據以站點爲準,安裝前自行覈對倉庫歸屬(lcf2212dev)。
- 阻塞式調用會佔用父智能體等待時間;長跑任務依賴 UI 取消或自行設置
timeoutMs(若配置生效語義以插件實現爲準)。 - 僅 link 安裝時,路徑與 patch 由你本地 profile 管理,團隊復現需共享同一套 profile 約定。
結尾¶
dsh-claude-delegate 把 DSH 裏的「委派給 Claude Code」收成 一個工具、一次進程、按次選模型與 effort,直連宿主 claude -p,避免釘死 SDK。若你的環境已經習慣本機 Claude Code 更新節奏,又要在 Harness 裏偶發 offload 子任務,可以按 README 的 link + bundles 方式接入。
- 目錄頁:https://www.skillhub.cn/plugins/lcf2212dev/dsh-claude-delegate
- GitHub:https://github.com/lcf2212dev/dsh-claude-delegate