← 返回列表
未验证
将 Claude Code 作为 DeepSeek Harnessdsh内部的真正的流式 subagent。
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/6 · 已提供中文文档
将 Claude Code 作为真正的、流式 DeepSeek Harness 子代理:会话支持的子进程、每次调用的模型/努力程度选择、来自 CLI 的实时模型列表
综合分
28.4
GitHub 分
28.4
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Plaaasma/dsh-subagent-claude-live该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
信任档位:已验证本站已于 0 天前真实安装成功
- 是什么
- dsh 原生插件 · chat
- 装得上吗
- 本站已真实安装成功(非静态推断)
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 活跃:最近一次提交在 20 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
🟢实装验证通过· 2026/9/26
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/21(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-subagent@deepseek-ai/dsh-subprocess@deepseek-ai/dsh-timeout@deepseek-ai/dsh-tools@deepseek-ai/schemastery用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成dsh-subagent-claude-live
将 Claude Code 作为 DeepSeek Harness(dsh)内部的真正的流式 subagent。
该 harness 自带一个一次性的 Claude Code provider(@deepseek-ai/dsh-subagent-claude-code)。它能用,但每个 provider 行都被固定到某一个模型,模型列表就是你在配置里写下的那些,而且子进程在运行期间是不可见的——父进程只能看到最终答案。本插件做了那个插件做不到的三件事:
| | @deepseek-ai/dsh-subagent-claude-code | 本插件 |
|---|---|---|
| 模型选择 | 每个模型一个 provider 行 + 一个工具,在配置时固定 | 每次调用都带一个 model 参数:预设名、CLI 别名,或 CLI 提供的任意完整 id |
| 模型发现 | 无 | claude_models 会询问已安装的 CLI 当前提供哪些模型,所以明天发布的模型明天就能用 |
| Effort / 权限模式 | 每行固定 | 每次调用可指定(effort、permission_mode) |
| 可见性 | 只有最终答案;侧边栏 job 面板显示“Failed to read output” | 子进程是一个由 session 支撑的 subagent:它会出现在 subagent 目录中,其轨迹——思考、文本、工具调用、工具结果——会实时流式输出,就像派生出的进程内子进程一样 |
| Claude Code 二进制文件 | SDK 捆绑的 payload(每个 profile 254 MB,固定到插件的 SDK 版本) | 默认使用你自己 PATH 上的 claude,因此 CLI 自动更新会自然生效 |
安装
dsh plugin --profile web add dsh-subagent-claude-live
dsh plugin --profile headless add dsh-subagent-claude-live # 可选
之后重启 harness。要求:
- 在 PATH 上有一个可正常使用且已认证的 Claude Code CLI(claude --version)。原生设置、hooks 和登录状态会像自带 provider 一样,从你正常的 ~/.claude 读取。如果没有,请设置 executable: bundled,以运行 Agent SDK 依赖随本插件一起安装的 Claude Code payload(每个 profile 约 250 MB)。
- dsh >= 0.1.1-rc.1。
模型看到的内容
两个工具,注册在 host 平面上,因此每个 agent 组合都能看到它们:
claude_code —— 委托一个自包含的任务。
| 参数 | 含义 |
|---|---|
| description | 简短标签,显示在 subagent 列表中 |
| task | 完整任务文本;Claude Code 看不到父对话 |
| model | 预设名、CLI 别名(opus、sonnet、haiku、fable),或完整 id(claude-fable-5-1)。省略则使用配置的默认值 |
| effort | low · medium · high · xhigh · max,在支持它的模型上可用 |
| permission_mode | bypassPermissions · acceptEdits · auto · dontAsk · plan —— 覆盖配置的模式(可禁用) |
| run_in_background | true 会立即返回一个 job id;子进程继续在侧边栏流式输出,transcript 可通过 job_output 读取,job_kill 可取消 |
claude_models —— 实时模型列表(来自 Claude Agent SDK 的 supportedModels(),缓存十分钟;refresh=true 可绕过缓存)加上已配置的预设和默认值。
流式传输的工作原理
start() 会创建一个真实的 dsh 子会话(origin: subagent、parentSession、delegationDepth、一个 subagent/descriptor),并以 includePartialMessages 驱动官方 Claude Agent SDK。每个顶层 SDK 消息都会按照 agent 循环本应写入的方式写入该会话:turn/start → 每条 assistant 消息对应一个 step(其 tool/call 及其 tool/result 保留在该 step 内,这是会话日志不变量所要求的)→ assistant/chunk token 增量 → assistant/message → turn/end。Web UI 会实时渲染它;完成后,会话会被刷写到持久化存储并离开实时存储,因此目录随后以冷数据方式提供它——与进程内一次性子会话的生命周期相同。
Claude 自身的内部子代理(带有 parent_tool_use_id 的消息)不会被镜像;它们的结果通过父级 Task 工具结果到达。
CLI 进程本身通过 SDK 的自定义 spawn 钩子经由 dsh-subprocess 启动,因此它继承 harness 经过凭据清理的环境,并随运行一起被拆除至整棵树静默。
配置
默认值来自 bundle 层(cordis.patch.yml)。通过在你的 profile 的 cordis.patch.yml 中定位 subagent-claude-live 来覆盖——配置覆盖会替换整个对象,因此请重新声明你要保留的键。
- id: subagent-claude-live
config:
providerName: claude # name on ctx.subagents
toolName: claude_code
modelsToolName: claude_models
defaultModel: fable # preset, alias, full id, or '' for the CLI's own default
presets: # friendly name -> what the CLI accepts
fable-5.1: claude-fable-5-1
fable: fable
opus: opus
sonnet: sonnet
haiku: haiku
permissionMode: bypassPermissions
allowPermissionModeOverride: true
executable: '' # '' = claude on PATH / ~/.local/bin; 'bundled' = SDK payload; or a path
env: {} # layered over the scrubbed parent environment (e.g. ANTHROPIC_BASE_URL)
disposeGraceMs: 3000
modelsCacheMs: 600000
maxTurns: 0 # 0 = CLI default
aliases: {} # extra tool names with the model pinned, see below
别名
aliases 会注册额外的委托工具,并固定模型(以及可选的 effort),且没有 model 参数:
aliases:
subagent_claude_fable: { model: fable }
review_with_opus: { model: opus, effort: high, description: 'Code review by Opus.' }
这存在的唯一原因:如果一个会话的历史记录中包含对某个已不存在的工具名称的调用,它会乐于再次发起该调用,而一个兼容 OpenAI 的服务栈会在 harness 看到之前就丢弃对未声明函数的调用——这一轮结束时什么也没说,也没有任何错误到达模型。如果你要替换随附的按模型区分的 subagent_claude_* 工具,请为那些还记得它们的会话设置别名。
bypassPermissions 是默认值,因为一个委派的编码任务如果在第一个权限提示处停下,就是一个失败的任务——子进程那边没有人类来回应它。这意味着子进程会在父会话的工作目录中无检查地编辑和执行。如果这不是你想要的,请设置 permissionMode: dontAsk(拒绝任何未在你的 Claude 设置中预先授权的内容)或 plan(只读,返回一个计划),并设置 allowPermissionModeOverride: false 以阻止模型在每次调用时提升它。
限制
- 每次运行一个全新的 CLI 进程;无法恢复子对话。
- 没有 outputSchema、工具过滤、角色设定或深度强制——像所有进程外提供程序一样,这个提供程序不声明任何启动时能力。
- 凭据形状的环境变量在启动前会被清除;要传给子进程的 API 密钥放在 env 中。
许可证
MIT