agent-team-dsh
Verified@gxx-labs/agent-team-dsh · v0.1.9 · MIT · Web UI
DSH 插件:团队 —— 可保存复用的团队模板,成员可各自使用不同 Agent 预设(能力不同),在会话输入框选中后由队长调度协作并统一汇总。
Install
dsh plugin add @gxx-labs/agent-team-dsh Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Tags
Readme
@gxx-labs/agent-team-dsh
DSH 插件:团队。
把「一位队长 + 若干成员」的协作方式保存成可复用的团队模板,并让每个成员运行在你指定的 Agent 预设上 (因而真正具备不同的能力)。在会话里选中团队后,队长就能按模板调度成员协作,并统一汇总结果。
包名:@gxx-labs/agent-team-dsh
它解决什么问题
不用这个插件,你也能让队长带队友干活。插件唯一不可替代的价值是:
让每个成员真的运行在模板指定的预设上——minimal 成员只有终端工具、standard 成员能改文件、
cordis 成员能碰插件,而不是"看起来像不同角色、实际能力都一样"。
因此有两条硬规则:
- 不用角色提示词冒充不同预设。 预设(决定能力)与职责(决定角色)是两个独立字段,分别生效、 分别可见。
- 做不到就明确失败。 目标预设不存在或损坏、或队友名不在模板里,一律明确报错, 绝不静默退回队长的预设——那会交付一个"假异构"。
安装
推荐:在 DSH 的插件页里安装 @gxx-labs/agent-team-dsh。本包随包携带 bundle 声明,
装好后重启 DSH 即可,不需要手工改配置。
手动安装
npm i @gxx-labs/agent-team-dsh --prefix "$env:USERPROFILE\.dsh\profiles\desktop"
并把包名加进该 profile 的 package.json:dependencies 与 dsh.profile.bundles 各一处。
改完需要托盘完整重启 DSH(不是关窗口)。
同一个插件不要以两个包名并存(例如又装 npm 版、又留一份本地目录版):会形成两个活跃的 Loader 源,插件会直接失效。迁移时是替换,不是并存。
可选:把队友名额从默认 8 提高。默认值包含失败成员,且失败成员永久占位、无法删除或回收。
- id: agent-team
config:
maxMembers: 24
使用
打开左侧栏的**「团队」**页,点「新建团队」。填团队名称、队长预设,再逐个添加成员: 通信名(队长创建成员时用的名字,须与模板一致)、显示名、成员预设、职责。 新建与编辑都在弹出框里完成,保存立即生效;保存失败时表单保持打开并给出原因。
通信名只能用小写字母、数字与连字符(
lower-kebab-case,例如reviewer), 且不能是lead。这是原生团队服务的硬限制,不是本插件自定的规则。 输入框不做任何限制:中文、大写、空格都能照常输入(输入法组字不会被干扰)。 内容不合规时,输入框下方会实时显示红色提示说明原因。 点保存时若仍有成员不合规:不会保存、弹出框保持打开,并指明是第几位成员、哪里不对, 因此不会出现"填了中文、保存后弹窗关掉却没存下"的情况。 显示名可以用中文,只有通信名受限。在会话里选中团队:点输入框工具行的团队选择器,或输入
/team。正常打字派活。队长会按模板创建成员;成员名必须取模板里的通信名,否则会被明确拒绝并列出可用名字。
操作失败时会在顶部弹出提示(与「会话已归档」同款),内容就是具体原因, 例如"该会话已开始,且团队队长预设 X 与当前预设 Y 不同,无法绑定"。
绑定规则
- 会话尚未开始时可以绑定,并会把队长切到模板指定的预设。
- 会话已经开始时也可以绑定,前提是模板的队长预设与当前预设相同——此时不切换任何东西, 绑定只影响之后创建的成员。
- 一个会话对应一个团队实例;同一个模板可以在多个会话各起一个实例,各自的成员记忆、任务与消息互不共享。
数据与诊断
- 模板与绑定关系存在
~/.dsh/agent-team/(teams.json、instances.json), 写入是原子替换并带版本校验,损坏时会降级而不是崩溃。 - 排障入口:
GET http://127.0.0.1:19387/api/agent-team/diag——返回进程信息、 客户端半是否加载成功、以及插件自检诊断(正常情况下diagnostics为空数组)。
已知限制
- 停用或卸载本插件前,请先结束团队会话。 重绑钩子随插件卸载消失,成员下次恢复会回落到队长的预设,
而记录里仍写着目标预设——降级方向是权限变大。插件载入时会自检并尝试修复,
diagnostics可查。 - 队友名额包含失败成员,且永久占位:原生不提供删除、重命名或回收,失败的名字也不复用。
撞满后只能新建会话——请把
maxMembers配足。 - 成员无法发起审批:需要审批的操作会被自动拒绝,必须回到队长或你自己处理。
- 成员与队长共享同一个工作目录;写入范围只是提示而非锁,队长需要协调重叠写入并复核最终结果。
- 成员的
inactive只表示当前没有运行轮次,不代表任务完成。 - 向非驻留成员投递消息失败时,原生邮箱只会在宿主日志里留一条记录、对外表现为消息停在队列里。
本插件已把所有自身原因(监听器抛错、提示注入失败)记录到上面的
diagnostics,便于定位; 若diagnostics为空而消息仍停在队列,则成因在原生路径,重启 DSH 后重试。 - 成员的实际预设以成员自己会话里的
agent-preset/selected为准;成员会话头部的agentPreset是创建时的值,会误导。
开发
许可
MIT