dsh-agent-teams-meta
English | 简体中文
 
> 按任务自由组建团队。随时组合专项成员,为每个成员分配独立模型路由,让并行协作持续到结果交付。
dsh-agent-teams-meta 是 DeepSeek Harness(DSH)的独立多 Agent 团队协作插件。它让一个队长 AI 可以组织多个并行成员,每个成员都有自己的模型路由、私有信箱、明确任务和独立的用量记录。
它解决什么问题
有些工作天然适合拆分:排查问题、审查改动、对比多种方案,或从不同角度检查一次发布。dsh-agent-teams-meta 让队长把这些独立工作交给专门的成员,持续跟踪进度,并在同一个地方汇总结果。
它面向真实工作流,而不是模拟聊天群。成员是可持续执行的 DSH 子 Agent,会按分配的 provider/model 路由运行,并能在多轮执行之间保留自己的任务上下文和信箱。
核心能力
- 并行成员与真实模型路由:为成员设置名称、角色和已配置的 provider/model。同一团队的不同成员可以运行在不同模型上。
- 持久化任务协作:任务支持负责人和依赖关系。成员只能认领自己且依赖已满足的工作;所有状态变化都会校验并保存。
- 私有持久信箱:队长与成员之间可以互发直达消息,不会把无关信息塞进其他会话。每个参与者只能看到自己的信箱。
- 运行中切换模型:随时为成员切换路由。新路由在下一次模型请求生效;已经开始的请求保留原来的 provider/model 归属。
- 错误直达队长:成员请求失败时,原始错误文本会作为普通的下一轮消息投递给队长,不会变成难以判断的附件或笼统状态。
- 已配置模型目录:插件会把 DSH 当前真正配置好的 provider 和模型生成到工作区目录,方便 Agent 在创建成员前查找可用路由。
- 创建时预检:未知 provider、未配置的 provider,以及不在可枚举模型目录中的 model,会在创建成员时直接拒绝。
- 按路由统计用量:每次请求的 token 用量都会归属到请求开始时实际使用的路由,即使成员之后切换了模型也不会混淆。
- DSH Web 可视化:侧边栏中的只读抽屉会展示团队进度、成员、任务、路由和团队阶段,同时所有变更仍由 Agent 工具完成。
工具一览
所有操作都通过 teams_meta_* 前缀的 Agent 工具完成:
| 工具 | 用途 |
|---|---|
teams_meta_create | 创建团队,带标题和目的 |
teams_meta_add_member | 添加成员,带角色和已配置的 provider/model |
teams_meta_remove_member | 停用成员并取消其未完成的工作 |
teams_meta_create_task | 定义任务,可指定负责人和依赖 |
teams_meta_claim_task | 认领符合条件的任务(只能认领自己,且依赖已完成) |
teams_meta_update_task | 推进任务状态并记录结果 |
teams_meta_send_message | 向成员或队长发送持久直达消息 |
teams_meta_route_switch | 为成员切换 provider/model,下一次请求生效 |
teams_meta_status | 查看成员、任务、路由、自己的信箱和用量 |
teams_meta_close | 工作结束后归档团队(也可强制取消) |
teams_meta_guide | 随时获取完整协作规范 |
Agent 会自动收到协作规范,也可以随时用 teams_meta_guide 再次获取。
一个典型流程
队长创建团队,加入一个专项成员,分配明确任务,再发送工作上下文:
teams_meta_create(title="Release audit", purpose="Review the release before publishing")
teams_meta_add_member(name="Reviewer", role="Find regressions", provider="deepseek-official", model="deepseek-v4-flash")
teams_meta_create_task(title="Review routing", owner="Reviewer")
teams_meta_send_message(to="Reviewer", body="Claim the routing task and report material findings.")之后成员会认领符合条件的任务,通过信箱报告进度,并提交最终结果。队长可以随时查看团队状态、把成员切换到另一条已配置路由,或在工作结束后关闭团队。
工作方式
每个成员会话都有一个稳定的标记路由:
agent-teams-meta-route/<team-id>/<member-key>在 DSH 的公开请求边界上,插件会在请求准备前把该标记解析为成员当前真实的 provider/model。这样 DSH 的请求头、遥测和用量统计仍然使用真实路由,同时路由切换具有明确、可预测的请求边界语义。
插件的全部数据都保存在工作区,与 DSH 会话存储完全分离:
.dsh-agent-teams-meta/
routes.json # 当前标记到真实路由的绑定
requests.jsonl # 追加式路由用量账本
model-catalog.md # 自动生成的已配置 provider/model 目录
teams/<team-id>/ # 团队快照和成员信箱团队快照通过原子替换写入,并会重试短暂的 Windows 文件锁。信箱和用量账本只追加写入。状态目录不会保存 prompt、模型回复、凭据或接口地址。
运行环境
- Node.js
^22.19.0或>=24 - 使用 Web profile(
dsh web)的 DeepSeek Harness,且至少配置了一个 LLM provider/model
安装
插件是标准 npm 包,可以用 DSH 插件命令,也可以在 profile 里直接用 pnpm 安装。
方式一:DSH 插件命令
dsh plugin --profile web add dsh-agent-teams-meta方式二:pnpm 安装
# 在 DSH Web profile 目录下执行(例如 ~/.dsh/profiles/web)
pnpm add dsh-agent-teams-meta然后在 profile 的 cordis.patch.yml 中挂载:
- insert:
- id: agent-teams-meta
name: 'dsh-agent-teams-meta'
config:
stateDir: .dsh-agent-teams-meta
markerProvider: agent-teams-meta-route安装或升级 host 侧插件后,需要重启 DSH。
方式三:从源码构建
先克隆仓库、安装依赖并构建:
git clone https://github.com/YshuY/dsh-agent-teams-meta.git
cd dsh-agent-teams-meta
pnpm install
pnpm build然后将构建产物链接进 DSH Web profile:
# 在 DSH Web profile 目录下执行
pnpm add link:E:/path/to/dsh-agent-teams-metalink: 安装会共享源码目录,每次重新构建后,下一次重启 DSH 即生效。
本地开发(link 安装)
开发调试时使用与上面相同的 link 流程:修改源码 → pnpm build → 重启 DSH 加载变更。
可选配置
插件开箱即用。如需自定义状态目录或路由标记,可通过 cordis.patch.yml 挂载:
- insert:
- id: agent-teams-meta
name: 'dsh-agent-teams-meta'
config:
stateDir: .dsh-agent-teams-meta
markerProvider: agent-teams-meta-route两个键都可选,以上即为默认值。
常见问题
成员可以用不同的模型吗? 可以。每个成员在添加时都有独立的 provider/model 路由,队长也可以随时把成员切换到任意已配置路由。
数据存在哪里? 全部在工作区的 .dsh-agent-teams-meta/ 下。团队快照原子替换,信箱和用量账本只追加。不保存 prompt、模型回复、凭据或接口地址。
Web 面板
DSH Web 侧边栏中的只读抽屉会展示当前团队快照:任务进度、成员、路由和阶段。所有变更仍然通过 teams_meta_* 工具完成。

开发
pnpm install
pnpm verifypnpm verify 会执行类型检查、生产构建、单元测试,以及持久成员路由的集成验证。
深入了解
仓库内还包含几份按主题整理的技术说明:
- [架构设计](docs/architecture.md)
- [运行与操作](docs/operations.md)
- [验证说明](docs/verification.md)
许可证
MIT