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。

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

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

小夜