dsh-agent-team-auto-orchestrator:为 DSH 团队工具补上常驻编排与硬门

前言

在 DeepSeek Harness(DSH)里启用官方实验团队包 @deepseek-ai/dsh-experimental-agent-team-profile 之后,spawn_teammate、team_task_*、wait_agent、send_message 等工具会挂进会话,但包内并不注入团队编排相关的 system prompt(维护者在 README 中写明对其 lib/index.js 检索 systemPrompt 为零命中)。模型往往仍按单线程方式自己读文件、跑命令,团队能力形同闲置。

dsh-agent-team-auto-orchestrator 是 loyalchiiina 维护的纯宿主插件(无客户端 UI),通过常驻 system-prompt 段和工具层 pre-execute 硬门,把「先判可拆性、并行派活、任务板闭环、主线程只拆合」压进每个预设、每个会话的默认行为。下面按机制、配置与排查说明其用法。

这是什么

  • 名称:dsh-agent-team-auto-orchestrator(npm / 插件 id 同名)
  • 分类:工作流(SkillHub 目录标注)
  • 当前版本:1.0.1(package.json;SkillHub 页面同步为 v1.0.1)
  • 许可证:MIT
  • 维护者:loyalchiiina
  • 定位:在官方团队包只提供工具面的前提下,补「下命令」——每轮注入团队编排铁律,并在选定业务域内强制「先派活再动手」。

与按需加载的技能(如 agent-team-routing-law)或单个预设的 persona 不同,本插件通过 ctx.systemPrompt.section({ name, order: 250, text }) 在插件挂载后对所有预设、所有会话常驻生效,与 dsh-todo-float-ball、dsh-artifact-linker、dsh-skill-guard 等同套官方接口。

核心功能

常驻注入的编排规则

README 记载注入全文约 1881~1990 字符(v0.3.4 实测),核心要点包括:

  1. 每轮先判任务可拆性(看独立性,不看难度)。
  2. 可拆则并行:默认 2~3 路,独立块 4~6 路,上限 8(含 lead)。
  3. 预设路由表外置在 <DSH_HOME>/team-orchestrator.local.json 的 presetRoutes(示例见仓库 docs/local-config.md);未配置时不猜测预设 id,走 spawn_teammate 自建成员。按域用自定义预设须 subagent(agent_preset=...);spawn_teammate 的 schema 无 agent_preset 参数。
  4. 子任务多于 2 个须用 team_task_* 建板,write_scopes 仅接受工作区相对路径;建后 claim(不能靠 owner 参数改执行人)→ reassign → 完成后 complete,避免 pending 无主堆积。
  5. 主线程只做:拆任务、派活、收结果、合并验收。
  6. 团队未开时降级为 subagent 并行,并提示用户「说开团队」。
  7. 动手前必须先出现 subagent / subagent_fork / spawn_teammate;只建任务板不算开团队(v0.3.0 收紧)。
  8. v0.3.2 起增加成员复用:每轮先看花名册,inactive 成员不占释放名额(maxMembers 为累计创建数),新活优先 send_message 唤醒。

工具层硬门(v0.2.0 起)

软提示可被忽略;硬门在工具分发前检查本轮是否已「真开团队」。

四层逻辑(摘自 README):

层 作用
0 域识别 缓存用户消息,关键词划分 fluent / plugin / dsh / preset
1 工具分类 入域则除豁免工具外全部须先开团队(含 read/glob/grep);未入域主要拦动手类工具
2 状态判定 本轮出现 subagent / subagent_fork / spawn_teammate 即视为已开;team_task_create 不计入
3 防死循环 同一 turn 最多拦 gateMaxStrikes 次(默认 4),随后 fail-open 放行

Fluent 域按全流程计:几何、网格、求解、后处理、排错等步骤,以及读日志、查 case 等读操作,入域后均须先派活。设计原则包括全路径 try/catch 失败则放行、不要求固定并行路数(单步也须派给 1 个子代理或 1 个成员)、不按工具调用序号而按本轮是否出现团队工具判定。

本机配置(v0.3.2 双轨)

业务相关的预设路由、域关键词、profileName 放在插件目录外的 <DSH_HOME>/team-orchestrator.local.json,发布包不含本机内容。文件缺失或解析失败时回退默认;修改文件后硬门相关逻辑可在下次工具调用时通过 mtime 热重载,但注入文本中的 presetRoutes 若要立即反映须重启 DSH。

插件内开关

cordis.patch.yml 中可配置:

- insert:
    - id: dsh-agent-team-auto-orchestrator
      name: dsh-agent-team-auto-orchestrator
      config:
        injectLaw: true
        enforceTeamGate: true
        gateMaxStrikes: 4
        gateDomains:
          - fluent
          - plugin
          - dsh
          - preset
  • injectLaw: false:不注入 prompt,仅保留状态路由。
  • enforceTeamGate: false:关闭硬门,仅软约束。

安装与启用

环境要求

package.json 声明:

  • dsh: >=0.1.7-rc.1
  • node: ^22.19.0 || >=24.0.0

团队能力依赖官方团队包工具面;编排插件在其之上叠加提示与硬门,使用前请确认 profile 中已挂载 @deepseek-ai/dsh-experimental-agent-team-profile(README 问题描述中的前提)。

获取插件

SkillHub 社区目录将本插件标为「可安装」,归类工作流,来源 GitHub。目录页安装指引为向 DSH 发送:

请安装 DSH 插件 loyalchiiina/dsh-agent-team-auto-orchestrator。

(页面文案在「先读取…」处截断,完整步骤以你在 DSH 内的插件安装流程为准。)仓库地址:https://github.com/loyalchiiina/dsh-agent-team-auto-orchestrator

安装或修改 cordis.patch.yml / team-orchestrator.local.json 后,须完全退出 DSH 再启动;README 写明宿主为 Node 进程无热重载,Ctrl+R 不重载宿主。

可选本机路由表

若需要按业务域把子任务路由到你自己的预设 id,在 <DSH_HOME>/team-orchestrator.local.json 填写 presetRoutes,格式见仓库 docs/local-config.md。

典型用法

1. 确认插件与团队包已挂载

桌面端可在本机回环访问状态路由(端口见启动日志或 ~/.dsh/desktop-preferences.json):

GET http://127.0.0.1:<port>/dsh-team-orchestrator/status

返回包含插件版本、injectLaw、prompt 段信息、teamMounted、orchestratorMounted 等。非 loopback 访问返回 403。

2. 在插件 / DSH / 预设相关会话中工作

用户消息命中 gateDomains 中某域后,Lead 在未调用 subagent、subagent_fork 或 spawn_teammate 前,动手类工具乃至 read 可能被硬门拒绝;拒绝理由会提示「只建任务板不算开团队」及「本 turn 第 N / 4 次拦截」。应先派活(不可拆任务也派 1 路),再执行具体工具。

3. 多子任务走任务板闭环

超过 2 个子任务时,按注入规则建 team_task_*,划分不重叠的 write_scopes,Lead claim 后 reassign 给持久团队成员,子任务完成后 complete。子代理 id 不能直接 reassign 为 owner,需在任务描述中注明实际执行者。

4. 调硬门强度

若只希望保留文案、不想要拦截,将 enforceTeamGate 设为 false。若希望减弱同轮反复拦截,可调整 gateMaxStrikes(默认 4)。

适用场景与注意

适合谁:已在 DSH 中启用 agent-team 工具、希望 Lead 默认并行派活而不是单线程包办的使用者;尤其是 Fluent、插件开发、DSH 配置、预设编写等长链路任务。

权限与安全:插件以当前 DSH 宿主进程权限运行,硬门会拦截部分工具调用;安装前请阅读仓库源码与 MIT 许可证。README 声明零写入、零 spawn、零联网、零遥测(编排行为除外),唯一副作用是每条会话 system prompt 增加约 750 字(README「边界」一节)。

上限与边界:spawn_teammate 不能指定预设;团队成员上限以 profile 与实际报错 Team member limit N reached 为准(README 记载本机 profile 覆盖 maxMembers: 8,官方默认口径可为 16)。硬门可能导致单步任务在同 turn 内被拦至多 4 次,依赖 fail-open 与配额避免死锁;子代理会话在无团队工具时会自动放行(canOpenTeam)。

SkillHub 为社区目录站点,与 DeepSeek / 幻方无官方从属关系;GitHub 上该仓库公开星标数为 2(写作时线索与目录一致)。

结尾

dsh-agent-team-auto-orchestrator 把官方团队包从「工具在线」推进到「默认编排」:常驻铁律覆盖全部预设,硬门在关键域强制先派活,本机路由与域规则外置 JSON,状态路由便于自查挂载情况。若你正在 DSH 里摸索多智能体协作,可从目录页或 GitHub 安装后在实际会话中对照 status 端点与任务板行为做验证。

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

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

小夜