← 返回列表
⚠ 装前注意
DeepSeek Harness 的群组协作。该插件将一个聊天会话变成一个房间。
基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/11 · 已提供中文文档
DeepSeek Harness 的群组协作:将一个会话变成一个房间,其中包含一个主持人和多个成员智能体,它们可以互相发消息并共享任务列表。
综合分
28.8
GitHub 分
28.8
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add polohot/dsh-adrian-agents-group-work未发布到 npm registry,仅可从源码安装,改用 GitHub 源安装
信任档位:已验证本站已于 0 天前真实安装成功
- 是什么
- dsh 原生插件 · chat
- 装得上吗
- 本站已真实安装成功(非静态推断)
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 活跃:最近一次提交在 15 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
🟢实装验证通过· 2026/9/25
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/21(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-adrian-agents-group-work(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
未发布到 npm registry,仅可从源码安装
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/24 11:38:42
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成dsh-adrian-agents-group-work
DeepSeek Harness 的群组协作。该插件将一个聊天会话变成一个房间。
一个房间包含一个主持人和若干成员 agent。主持人是主会话 agent。
每个成员是一个可继续的子会话,拥有自己的会话。成员之间互相发送
消息并共享一个任务列表。
该插件是独立的。它不需要其他插件。
它的功能
主持人打开一个房间并指定成员。插件将每个成员生成为一个
可继续的子会话。每个成员获得五个房间工具。主持人获得相同的五个
外加另外四个。
DSH 仅在父级与其直接子级之间传递消息。两个成员是
兄弟关系,因此插件为他们传递邮件。插件首先写入邮箱文件。然后它
通过主持人唤醒接收者。消息正文携带真实的
发送者,例如 [builder] hello。
磁盘即真相。每个读取者都读取文件。
要求
- DeepSeek Harness 0.1.2-rc.1 或更高版本。
- 一个 web profile。
- 宿主服务 tools、commands、subagents、systemPrompt、agents 和
sessions。该插件声明了全部六个。
安装
dsh plugin --profile add github:/dsh-adrian-agents-group-work
然后重启该 profile。
该包声明了 dsh.bundle.patch,因此安装会将其添加到 profile 的
bundle 列表中。确认该名称出现在 profile 的 package.json 中的 bundles 里。
移除
一条命令和一次重启:
dsh plugin --profile remove dsh-adrian-agents-group-work
然后重启该 profile。房间记录会保留在磁盘上。当你
想要删除它们时,手动删除:
rm -rf "${DSH_HOME:-$HOME/.dsh}/agents-group-work"
使用
自然语言
写一条普通消息。插件会向每个根会话的提示词中添加一个简短部分,
因此主持人知道该能力存在。
Spawn 3 agents to build the site. One builder, one critic.
斜杠命令
/agents-group-work Spawn 2 agents to build the site. One builder, one critic.
/agents-group-work Spawn 3 agents to discuss the pricing question until consensus.
处理程序将该简报作为主持人指令注入并返回。它不会生成
成员,也不会等待。
当成员失败时
成员可能因其模型请求失败而停止,例如当提供商
拒绝该内容时。在这种情况下主持人会看到沉默,因此插件会向
主持人邮箱写入一条通知,指明该成员和提供商消息。十分钟内的第三次失败
也会唤醒主持人,因为那是一个卡住的成员,而不是一次
错误请求。然后主持人遵循房间规则:提醒该成员一次,然后替换它。
简报可以携带任务、成员数量、成员名称、每个成员的模型或 effort、
停止条件和输出路径。简报未提及的任何内容都由主持人决定。主持人最多问一个问题,
且仅在任务本身不明确时。
主持人做什么
1. 阅读简报。推导出任务、成员和停止条件。
2. 调用 room_open。
3. 观察房间。
4. 提醒沉默的成员。
5. 判断停止条件。
6. 调用 room_close。
7. 发布一行状态和结果。
工具
成员工具
每个成员都会获得这五个工具。主席也会获得它们。
| 工具 | 用途 |
|---|---|
| room_send | 发送一条消息。to 接受 ""、"" 或 "chair" |
| room_members | 读取成员名单及每个成员的状态 |
| room_task_create | 向共享列表添加一个任务 |
| room_task_list | 读取共享列表 |
| room_task_update | 认领一个任务或将其标记为完成 |
主席工具
主席还会获得以下四个工具。
| 工具 | 用途 |
|---|---|
| room_open | 写入成员名单并生成成员 |
| room_pause | 暂停向成员投递新工作 |
| room_resume | 释放被暂停的工作 |
| room_close | 关闭成员并归档房间 |
| room_debug | 从磁盘读取房间状态并检查不变量 |
room_open 和 room_debug 注册在每个根会话的作用域中。
另外八个在房间打开时注册。没有任何工具会进入全局
注册表,因此不是主席的会话永远不会看到房间工具。
成员是被委派的子级。它永远不会收到 room_open,因此房间不能嵌套。
消息语法
room_send 接受 { to, message }。
| to | 含义 |
|---|---|
| "" | 一个成员 |
| "" | 所有其他成员。每个邮箱一行 |
| "chair" | 主席 |
如果 message 解析为带有 type 字段的 JSON,它就会成为协议消息。这
四种类型是 plan_approval_request、plan_approval_response、shutdown_request
和 shutdown_response。其结构与 Claude Code 匹配。
插件会自动以 approve: true 回应计划审批请求。写入的真正
关卡仍然是沙箱和审批提示。
房间规则
插件会将这七条规则写入每个成员的提示中。
1. 纯聊天文本对其他成员不可见。请调用 room_send。
2. room_send 接受成员名称、"" 或 "chair"。
3. 投递是基于轮次的。成员不会轮询收件箱。
4. 主席是唯一在轮次中途接收消息的一方。
5. 在发送第一条消息之前先读取 room_members。
6. 在开始任务之前先认领它。
7. 朝着停止条件推进。主席决定它何时成立。
磁盘上的状态
${DSH_HOME:-$HOME/.dsh}/agents-group-work/
├── rooms//
│ ├── config.json # the roster
│ └── inboxes/.json # one mailbox per member, and one for the chair
├── tasks// # the shared task list, one file per task
└── archive// # a closed room, moved here whole
- roomId 是 session-。
- 来自 room_open 的房间标签是 config.json 中的一个字段。
- 路径根来自 dshHomePath("agents-group-work"),因此配置的
$DSH_HOME 会移动它。
- 每次写入都会先写入一个临时文件,然后再重命名。重命名是原子操作。
- 每个房间有一个进程内锁,用于串行化变更。
- 成员名称是一个安全的路径段。其模式为 [A-Za-z0-9][A-Za-z0-9_-]{0,31}。
名称 chair 是保留名称。插件会在生成任何内容之前拒绝重复或不安全的名称。
- 一条消息只有在写入其邮箱成功后,才算作已发送。
- config.json 包含 messageTotals。插件在每次写入时更新它,因此
读取者可以将其与邮箱条目的计数进行比较。
一个会话一次最多只能持有一个活动房间。关闭后,该会话的下一个房间会占用
archive/-2,然后是 -3,依此类推。更早的记录会保留下来。
配置
该行接受四个可选字段。
| 字段 | 默认值 | 含义 |
|---|---|---|
| progressLines | true | 为每个忙碌成员推送一条简短进度行 |
| progressIntervalMs | 30000 | 进度检查之间的间隔 |
| shutdownWaitMs | 20000 | room_close 等待成员稳定下来的时长 |
| verbose | false | 将每次邮箱写入、任务变更和进度行打印到服务器控制台 |
一条进度行会指出该成员最后完成的工具调用,例如
bear: web_search。插件会在内存中记录每次已完成的调用,因此一行不会产生
模型调用,也不会创建会话。一行报告长时间空闲,例如
bull: bash, idle 124s,会告诉主席该成员可能卡住了。将
progressLines: false 设置为关闭该功能。
服务器控制台默认保持安静。它会打印启动行、房间打开和
关闭、暂停或恢复,以及每次失败。设置 verbose: true 可添加
每个会话的武装行、每次邮箱写入、每次任务变更和每条进度行。
插件会在 harness 创建的每个根会话中武装主席能力,包括
启动时恢复的会话。该工作是静默的。之后再武装不起作用:请求
会在可能触发它的消息之前组装,因此会话的第一个请求
必须已经携带房间工具。
平台限制
向用户明确说明这些限制。
1. 成员之间不能直接互相发消息。DSH 仅在父级与其直接子级之间
传递消息。插件负责携带邮件,并通过主席唤醒接收者。正文携带真实发送者。
2. 对于成员的每次唤醒,主席都是记录中的发送者。成员的记录
显示主席为发送者,真实发送者在正文中。
3. 没有只读计划阶段。计划是房间规则,不是锁。
4. 没有 HTTP 路由,也没有 GUI 面板。内置的子代理目录就是视图。
5. 进入空闲的成员会离开活动注册表。一条消息会冷恢复它。插件
在每次创建时重新连接其房间工具,因此这些工具会恢复。
6. 被委派的子级运行时,审批策略固定为 never。插件从不
需要审批,因为其工具是普通的模型工具。
已验证行为
该插件已在实时测试环境中得到验证。运行产生了以下事实。
- 一次 room_open 生成了 3 个具名成员。config.json 列出了全部三个成员及其
实时 agent id。(SPEC 测试 1)
- 成员之间交换了消息。inboxes/.json 包含 8 条带有 to: "*" 的条目,每条
都复制到了其他成员的邮箱中。(SPEC 测试 2)
- 每个邮箱条目都带有一个 id、一个发送者和一个接收者。没有格式错误的条目,也
没有超出广播自身复制范围之外的重复 id。(SPEC 测试 3)
- 一个带有停止条件 until consensus 的房间最终让全部三个成员达成一个有序列表,
并且记录中保存了提案、共识和备注。
(SPEC 测试 4)
- 一个带有停止条件 until a majority vote 的房间以 2 比 1 结束。主席
报告了分歧,并未将其称为共识。(SPEC 测试 5)
- 指定了输出路径的简报生成了该文件。未指定输出路径的简报
未生成任何文件。(SPEC 测试 6)
- config.json 报告了 26 条消息,邮箱中也包含 26 个条目。(SPEC 测试 7)
- room_pause 然后 room_resume 恰好释放了一条被暂存的消息,保留了此前每一条
条目,并保留了所有任务。(SPEC 测试 8)
另外两项检查也通过了:
- 在房间打开期间重新加载插件会从磁盘重建该房间。一个冷恢复的成员
回答了 ROOM TOOLS OK。
- 一个不安全的成员名和一个重复的成员名都在任何子进程生成之前被拒绝。
设计说明
- 该插件不发送“已确定”通知。当可继续的子进程确定时,DSH 会向父进程发送一条通知,
因此平台已经提供了该功能。
- 该插件不持有结束策略。主席读取停止条件并对其进行判断。
- 该插件从不轮询。投递是基于轮次的。
许可证
MIT。参见 LICENSE。