dsh-subagent-claude-live: Claude Code 流式子代理

DeepSeek Harness (DSH) 內置了一個單次 Claude Code 提供者(@deepseek-ai/dsh-subagent-claude-code)。它功能可用,但存在三個明顯限制:每行配置只能綁定一個模型,模型列表固定在配置文件中,且子代理運行時對父級不可見,父級只能看到最終結果。dsh-subagent-claude-live 插件解決了這三個問題,將 Claude Code 變成 DSH 內部一個真實的、可流式傳輸的子代理。

核心功能

該插件通過兩個註冊的工具提供功能:claude_code 和 claude_models。

claude_code
用於委託一個獨立的任務。與內置提供者不同,它支持在調用時指定模型和努力程度。該工具創建一個基於會話的子代理,其軌跡(思考、文本、工具調用)會實時流式傳輸到 UI。

claude_models
用於獲取 Claude Code CLI 支持的實時模型列表。它會調用 CLI 的 supportedModels() 方法,並允許通過 refresh=true 參數繞過緩存(默認緩存時間爲 10 分鐘)。

安裝與啓用

使用官方安裝命令添加插件:

dsh plugin --profile web add dsh-subagent-claude-live
dsh plugin --profile headless add dsh-subagent-claude-live   # 可選

安裝後需要重啓 Harness。前置要求包括:
* DSH 版本 >= 0.1.1-rc.1。
* 系統路徑上有一個正常工作的 claude CLI(claude --version)。如果未安裝,可將配置中的 executable 設爲 'bundled',使用 SDK 依賴安裝的打包載荷(約 250 MB/配置)。

典型用法

1. 委託任務
調用 claude_code 工具。參數如下:
* description:任務短標籤,顯示在子代理列表中。
* task:完整的任務文本。
* model:預設名稱、CLI 別名(如 opus, sonnet)或完整 ID。
* effort:low · medium · high · xhigh · max。
* permission_mode:覆蓋配置模式(默認爲 bypassPermissions)。
* run_in_background:設爲 true 時立即返回任務 ID,子代理在側邊欄持續流式傳輸。

2. 獲取模型列表
調用 claude_models:

claude_models

如需刷新緩存:

claude_models refresh=true

3. 配置別名
在 cordis.patch.yml 中定義別名,將模型和努力程度固定在工具名上:

- id: subagent-claude-live
  config:
    aliases:
      subagent_claude_fable: { model: fable }
      review_with_opus: { model: opus, effort: high }

配置說明

默認配置位於插件包的 cordis.patch.yml 中,可通過目標 subagent-claude-live 進行覆蓋。

  • 默認權限模式:默認爲 bypassPermissions。因爲在代碼任務中,如果子代理在第一個權限提示處停止,任務即被視爲失敗(沒有人工介入)。如需不同行爲,可設置 permissionMode 或 allowPermissionModeOverride: false。
  • 可執行文件:executable 默認爲空字符串,表示使用 PATH 上的 claude;設爲 'bundled' 則使用 SDK 載荷;也可指定絕對路徑。
  • 環境變量:憑證相關的環境變量會在生成子進程前被清理,API 密鑰需通過 env 參數傳入。

適用場景與注意

該插件適合需要實時監控 Claude Code 執行過程、頻繁切換模型或需要靈活控制權限模式的場景。它將子代理表現爲一個有可見軌跡的會話,而非一個只返回結果的黑盒。

已知限制:
1. 每次運行會生成一個全新的 CLI 進程,不支持恢復子會話歷史。
2. 不提供 outputSchema、工具過濾器、人設或深度強制執行,與所有外部提供者一致。
3. 依賴 @anthropic-ai/claude-agent-sdk。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜