dsh-routed-subagent:全局 DeepSeek Harness 插件

前言

DeepSeek Harness 的默认 subagent / subagent_fork 工具强制子代理继承父级预设。本插件替换了这一行为,提供了一个自定义的子代理提供者,该提供者的异步子设置调用 agentPresets.mount(childCtx, <preset>),使子代理完全采用目标预设的完整配置:身份、提示部分、技能目录和工具。

简介

这是一个全局 DeepSeek Harness 插件,允许从任何会话调度一次性的子代理,完全挂载在任何代理预设上。它支持按调用模型/提供者覆盖,并提供模型可用性预检。

核心功能

  • 后台默认运行,并行分派:调用立即返回任务 ID;对话可继续执行其他工作或并行调度更多子代理;中止对话不会取消子代理(需使用 job_kill 停止)。
  • 完全预设挂载:子代理运行在目标预设的完整配置下,而非身份的简单复制。
  • 按调用模型/提供者覆盖:通过 model / provider 参数将子代理的 LLM 调用路由到与当前会话不同的模型。
  • 模型可用性预检:无效模型会快速失败,并返回提供者的候选列表,而非模糊的子代理失败。
  • 官方子代理生态系统:支持一次性的生命周期事件、UI 行和轨迹。
  • 幂等的提供者注册:多个预设可以挂载同一行;宿主机平面提供者注册表不会重复。
  • 外部引擎支持:除了默认的 dsh 内核,还支持 codex、claude、codebuddy。

安装与启用

该插件是纯 ESM 包,通过挂载包目录安装。

  1. 挂载包目录
    插件静态导入 @deepseek-ai/* 包,这些包通过 Node ESM 从包位置解析。需要在插件目录中创建指向 Harness 安装的 node_modules 符号链接。

Windows (BAT):

   mklink /J "<plugin-dir>\node_modules" "<harness>\resources\host\node_modules"

POSIX (Linux/macOS):

   ln -s "<harness>/resources/host/node_modules" "<plugin-dir>/node_modules"
  1. 添加到配置文件
    将包添加到配置文件的 dsh.profile.bundles 列表中(例如 <dshHome>/profiles/web/package.json)。
   {
     "dependencies": { "dsh-routed-subagent": "link:<plugin-dir>" },
     "dsh": { "profile": { "bundles": ["...", "dsh-routed-subagent"] } }
   }

cordis.patch.yml 文件在包内,注册插件;当包列在 bundles 中时,该层会自动应用。

典型用法

subagent_routed 是主工具。

后台一次性运行(默认):

subagent_routed(prompt="Use the dev engineer standard to review this repository", preset="dev", description="dev review")

分叉(继承当前会话的已完成回合):

subagent_routed(prompt="Continue the review", preset="dev-reviewer", description="follow-up", fork=true)

可继续(持久化子代理 ID,稍后恢复):

subagent_routed(preset="dev", prompt="Audit this repo", description="audit", continuable=true)

参数行为:
- preset 无效/无法解析:报错,并附带可用预设 ID 列表。
- model / provider:按调用模型/提供者覆盖(快速失败时会列出候选)。
- max_tokens:子代理 LLM 调用的输出/Token 限制。
- tool_filter:在预设工具之上进行拒绝掩码({ deny: string[] })。
- fork + continuable:支持(可继续的分叉会播种父级已完成的回合)。

注意事项

  • 仓库:仅限 GitHub,未发布到 npm。
  • 兼容性:目标 DeepSeek Harness rc.7+(该插件依赖的异步子设置是较新的 Harness 行为)。
  • Codex 引擎:需要登录 (codex login) 和 approval_policy: never。
  • CodeBuddy 引擎:需要安装,且默认模型为 hy3(可通过 config.codebuddyModel / $CODEBUDDY_MODEL 覆盖)。
  • Claude 引擎:continuable 功能取决于官方 Anthropic API。如果 Claude CLI 配置了自定义后端(例如指向第三方/本地端点的 AnthropicBaseURL),sessionId + persistSession 可能会挂起或不可用。可靠的恢复需要将 AnthropicBaseURL 指向官方 API。

结语

该插件为 DeepSeek Harness 提供了灵活的子代理调度能力,允许在保持 DSH 插件化架构的同时,通过外部引擎(如 codex、claude、codebuddy)扩展子代理能力。

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

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

小夜