前言¶
在 DeepSeek Harness(DSH)里做多 agent 协作时,常见两类问题:一是 Agent Teams 往往挂在 profile 上,每个会话都会带上 Team 工具与 subagent 等委派面,模型容易在多种路径里选错;二是「Lead 只决策、不写代码」若只靠提示词,Lead 仍可调用 write / edit,分工容易退化成单 agent 包办。
下面介绍社区插件 dsh-team-mode(维护者 running-grass,分类:工作流)。它提供一个名为 team 的 agent preset:在模式选择器里单独启用「团队模式」时,Lead 负责决策、派发与验收,具体读写与改动交给短生命周期 worker;Lead 的 write / edit 则在执行层被 guard 拒绝,而不是仅靠 persona 劝阻。
这是什么¶
dsh-team-mode 是 DSH 插件,核心交付物是一个 team agent preset。装上并在新建任务时选中「团队模式」后:
- 委派面只保留
workflow(临时任务) 与spawn_teammate(需累积上下文的长期队友) 两条路,不出现匿名的subagent/subagent_fork。 - Lead 仍可使用
read/glob/grep/bash做只读与验收;write/edit在执行层被拒绝。 - worker 由 Lead 通过
agent()等机制派发,模型可在调用时显式指定provider/model。
插件当前版本 0.1.0,许可证 MIT,运行时入口为 lead-boundary.js,通过 cordis.patch.yml 向 DSH bundle 注入 preset 配置。
目录页:SkillHub - dsh-team-mode
源码:GitHub - running-grass/dsh-team-mode
核心功能¶
可选模式,而不是强绑整个 profile¶
Team 相关能力被收进一个可选 preset,只有选中「团队模式」的会话才走这套 persona 与委派规则,避免与其它模式下的工具面混在一起。
执行层边界(lead-boundary.js)¶
插件在每个 Lead 的 Agent 上下文上注册 tools.guard(),在工具真正执行前按工具名拒绝 Lead 的 write / edit。README 说明:在 DSH 0.2.1-alpha.1 上实测,tools.restrict() 无法可靠遮住 agent 继承来的工具,因此选用 guard。
边界同时满足两个条件才会生效,避免误伤其它模式:
- 当前运行的是
teampreset(读agentPresets.composedPreset)。 - Team roster 报告该 agent 是 Lead。
两个派发通道¶
| 场景 | 通道 | 说明 |
|---|---|---|
| 临时任务:调研、改一处、跑测试、批量扫描 | workflow 的 agent() |
全新 worker,不进 roster,跑完即走 |
| 需要跨多次派发累积上下文 | spawn_teammate |
占用 roster 名额;名字占用后不释放,一次性任务不宜使用 |
内置角色(写入 worker prompt)¶
Lead 在派发时把角色名写进 worker 的 prompt 即可:
| 角色 | 用途 |
|---|---|
scout |
只读侦察:定位文件、回答结构问题 |
explorer |
带判断的调查:比对方案、定位根因、评估改动风险 |
builder |
在给定文件范围与验收方式下执行改动 |
verifier |
对抗性复核,须尝试证伪 |
sweeper |
机械式批量:重命名、模式审计、多文件汇总 |
安装与启用¶
官方安装命令(README 原文):
dsh plugin --profile web add github:running-grass/dsh-team-mode
安装后需重启 DSH(插件变更需重启进程才能加载新的 JS 模块)。随后在新建任务时,从模式选择器选择「团队模式」。
前置依赖:该模式组合 DSH 的 Agent Teams 实验能力。profile 需已包含 @deepseek-ai/dsh-experimental-agent-team-profile(或至少 agent-team 与 tool-agent-team 两个包),否则 Team 工具派发的任务可能一直等待 agentTeams 服务。
等价的手工方式是在 $DSH_HOME/profiles/web/cordis.patch.yml 中加入 README 所示的 preset-team 片段(需从现有 patch 复制完整 plugins 列表)。Node 引擎要求 >=20。
典型用法思路¶
README 未给出固定的一键示例脚本,可复现的流程是:
- 按上文命令安装并重启 DSH,确认 profile 已具备 Agent Teams 实验包。
- 新建任务,模式选「团队模式」。
- Lead 根据任务性质选择
workflow的agent()或spawn_teammate,并在 worker prompt 中指定上表中的角色名(如scout查位置、builder改代码、verifier复核)。 - 需要控制成本时,在
agent()里为 worker 显式传入provider/model,Lead 侧可用更高能力模型做决策与验收。
Lead 最终仍应通过 read / grep / bash(在策略允许范围内)自行验收 worker 产出。
适用场景与注意¶
适合:希望在 DSH 里用多 agent 分工、又希望 Lead 与 worker 职责清晰、且不想把整个 web profile 永久绑在 Team 工具面上的开发者。
已知限制(来自 README):
- Lead 仍能看到被禁工具的 schema;guard 只拦执行。低成本模型可能先误调
write/edit再看到拒绝信息。 bash不是硬边界:write/edit被拒后,Lead 仍可能通过 shell 重定向写文件;persona 禁止,机制未完全封死。- preset 的 plugins 列表派生自某版 DSH 内置
standardpreset,上游改版后需手动对齐cordis.patch.yml并跑npm test。 - 依赖
@deepseek-ai/dsh-experimental-*,契约不承诺稳定。
安全与信任:插件以当前 DSH 进程权限运行;安装前请阅读 GitHub 仓库 源码与 MIT 许可证。SkillHub 等为社区目录站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-team-mode 把 Agent Teams 收成可选的「团队模式」,并用执行层 guard 落实「Lead 不写代码」,同时保留 workflow 与 spawn_teammate 两条清晰委派路径与五类内置角色。若你正在 DSH 上编排多 agent 工作流,可从目录页或 GitHub 查看详情并按 README 安装试用。