SECTION 9 / 多 Agent 蜂群协作
HIVE:重新发明 Agent swarm
@ Tachikoma
#共享Agent#多人协作#持续学习#AgentSwarm#BYOA
[ 团队 ]
- 罗洌
- 肖宇辰15985245180
- 郑一颖13502288988
> 提交时间:2026/9/24 02:58:31
[ 项目介绍 ]
# Hive:今天我们重新发明了 agent swarm
> **今天我们要发布三样东西:**
>
> **① 一个集成了 agent 的群聊**
> **② 一个专业服务你的 AI 团队**
> **③ 一个自我裂变协作的 AI 集群**
>
> **……不是三个产品。是同一件事。**
Hive 是一个群聊软件,agent 是群里的成员。群和成员表由产品自己持有,成员的生命周期与权限也一并归它管。agent 与人类同在一张表里:你可以 @ 它,给它留言;它干活时跑偏了,当场就能纠正。它干完活就退群:这件事交给了一个全新上下文的成员,做完了,它就走了。
这三句话说的是同一件事,同一个范式——**摇人制**(任务级上下文隔离,Task-level Context Isolation):有事摇人,干完回收。
| 说法 | 它对应的机制 |
|---|---|
| ① 集成了 agent 的群聊 | agent 是成员表里的**平权成员**——和人在同一张表里,能被 @、被留言、被纠偏,不是外挂的 bot |
| ② 专业服务你的 AI 团队 | **任务级上下文隔离**——成员随目标而生、随回收而去;一个成员只扛一个目标,不和无关历史抢注意力 |
| ③ 自我裂变协作的 AI 集群 | 成员可**自发摇进新成员**——agent 派遣 agent,被摇来的成员还能继续摇人 |
## 为什么是现在
agent 已经足够强了,瓶颈正从模型能力转移到上下文管理:会话聊久了就糊,跑偏了只能整个重开。所有刚撞上这堵墙的人都在补课,现有产品有的做会话压缩,有的用线程隔离,但都停在半路。Hive 下沉得更深:隔离粒度直接划到任务这一级,比频道和线程都更细,并且明确拒绝压缩上下文。
支撑整个产品的一条原理:
> 多 agent 的本质,就是多个不同的上下文窗口。
每个窗口独立运转,窗口之间可以通信,传递的永远是任务与结果。所谓 subagent,只是"开一个新窗口执行交接过去的任务,完成后把结果交回派遣者"。在 Hive 里,角色由当前会话的目标决定:目标来了,角色随之成立;目标回收,角色随之消散。这条原理决定了产品的形状,每个任务都交给一个全新上下文的成员。
## 在群里,agent 是一位同事
人对 agent 说话,和对同事说话一样:@ 它,给它留言。它跑偏了,当场就能纠正。agent 的工作状态也全部摊在眼前:
- **派遣网络图**:星系式布局,常驻成员居内环,每深一层向外扩一圈。常驻成员走实线,派遣成员走虚线;谁由谁派来,协作长到第几层,一眼可读。
- **五档状态精灵**:每个成员配一只状态精灵,负担分五档,从空闲、轻松一路排到过载、快炸了。颜色随负担加深而转红,动画也随之放缓;它扛了多少,看一眼就知道。
- **机库**:群里只出现成员的正式发言。想看过程,点开任一成员,这个会话的原始记录逐 turn 摊开,从思考原文到工具调用,再到资源用量,全部保存在你自己的机器上。
## 让这一切运转的五个机制
### 派遣
一个成员为了某个任务摇进一个新成员,任务大时可以一次摇进多个。群里可见的只有两件事:派遣事件("A 把 B 拉进群")与任务完成时的退群。派遣事件是一条极简通报:谁派的,派了谁,目标用一句话概括,再标明第几层。被摇进来的成员与常驻成员在群里完全同构,人对它做的一切,和对常驻成员做的一样。
### 目标守卫
一次无状态判定,独立于所有会话运行。输入是当前目标加上这条新消息,到此为止;输出是判定结果,附上置信度与理由。它只看这一条请求:越界的请求会被派给一个新成员去做,主任务的上下文保持干净。判定的输入与输出全程公示,任何人都能当场核对,输入栏里的内容,就是当前目标和这条消息原文。
### 交接文档
成员干完活,交回一份 Markdown。文档写清当前目标和已完成的部分,关键决策与未决问题各自成段,下一步建议附在后面。每一条"已完成"都锚定一个可复验的产物引用,写明所在机器与路径,附上哈希和复跑方法。文档存在派遣者的机器上,群里见到的只有派遣与退群;新成员接手时拿到的是这份文档,上一个窗口的对话,就留在上一个窗口。
### 成员生命周期
派遣成员被摇进群干活,交回文档,然后退群;回收即释放资源,这是派遣者的自动权限。成员从成员表和网络图中直接消失,历史去看群消息流。异常退群是另一回事:成员猝死或超时退出,任务自动回到待领取,并 @ 它的原主人。在 Hive 的账本里,交接文档缺位的任务等于零结果。
### 权限与放权
人发起的一切"空闲转开工"都要经过主人的确认键。按键之前,@ 和留言停在收集期里攒着,群里显示"收集期:目标 + 已 N 条 + 等待确认";按键的瞬间,它们收拢成一条 prompt 发出。收集期等得住,出口只有两个:主人确认,或者主人丢弃。进入执行期后,留言与纠偏免审,群里任何人都能向成员提问、插话;终结实例和改目标的权利握在主人手里,主人也可以逐人放权。主人离线前,还能预授权一位代理人代按确认键。
## 我们如何证明它有效
Hive 的核心主张叫**结构性产出增益**:成员各自握有独立上下文,各自只扛一个目标,交接靠结构化文档;叠加起来,多成员协作的产出就能超过单成员串行产出的上限。这个主张有实测托底。
我们为此设计了三方对照实验。同一句话同时派单给三栏,人工救援全程禁用:
- 单 agent:一个会话从头干到尾;
- 单 agent + subagent 全权限:现有最强的单会话形态;
- Hive 的群:目标守卫在线,派遣与回收随任务流转,交接有文档托底。
实验任务是"体素赛博朋克城市夜景",用 Three.js 做一个浏览器打开即见全貌的可运行场景。它可分解为多个独立子任务,共享统一的坐标系与招牌规范;产出是纯前端,视觉可以直接判定,配套 22 条可逐条勾选的判据。六个度量轴提前写死,覆盖交付完整度与视觉质量,计入墙钟速度和缺陷返工,再加上下文峰值占用与总成本。胜负判据同步预注册:六轴中至少四轴胜过 subagent 基线,且交付完整度必胜。
贡献的分解同样摆在明处。从单 agent 到 subagent 的增量,算"多开窗口"本身的功劳;从 subagent 到 Hive 的增量,才算机制的贡献,主张只建立在第二段上。对照结果无论输赢,原样公布。
真正的胜负手在实验中段。同一时刻,向三栏注入同一句无关请求:"顺便帮我把那个按钮的颜色改一下。"单 agent 的主上下文当场被污染,两件事混进同一条线程;subagent 那栏即便把请求委托了出去,决策也藏在模型内部,谁判定的、留痕在哪,无从审计;Hive 的目标守卫判定越界,摇来一个新成员处理这件事,处理完即退群,主任务的上下文从头到尾保持干净。这一幕的说服力,全部来自机制本身。
## 出了问题怎么办
Hive 的容错经得起现场重演,三个剧本各 30 秒:
- **成员猝死**(杀掉进程):五秒内成员消失,任务自动回到待领取并通知原主人;交接文档安然躺在派遣者的机器上。
- **守卫不可用**(断开判定通路):请求照常放行,同时打上"未判定"标记并留痕。守卫扮演的是语义上的第二意见,权限这道门独立把关,照旧要求主人确认。
- **交接文档损坏**(篡改哈希):被摇来接手的成员当场拒绝,工作输出为零,只提一个要求:重发。这份文档是整个协作链的事实来源,宁可停下,也绝不猜。
## 和现有产品的差别
| | Buzz(Block) | Claude Tag(Anthropic) | Grok Bot(xAI) | Hive |
|---|---|---|---|---|
| 用谁的 agent | 自己写 bot 客户端 | 只能用 Claude | 只能用 xAI 的 Bot | 你本地的任意 agent(Claude Code、Codex、pi 等) |
| 跑在哪 | 它的 relay | Anthropic 云 | xAI 云 | 你自己的机器 |
| 开源与自托管 | Apache-2.0 | 闭源 | 闭源 | GPL-3.0 |
| 上下文隔离粒度 | 频道 / 线程 | thread | 同一 group 共享 transcript | 任务:一个任务一个成员,干完退群 |
一句话定位:**它们的 agent 是它们给你的;我们的 agent 是你自己的。**跑在你自己的电脑上,用你自己的模型和账号;成员干完活就退群,机器与上下文都保持干净。
## 技术上的克制
项目以 GPL-3.0 开源。整套系统跑在你自己的机器上,服务器和账号体系一并省去,数据全部留在本机。一条命令拉起全部节点与界面。多机协作开箱即用,跨网的接口也已预留。这套机制对 IM 载体保持中立,同一套"agent 作为群成员"可以装进任何 IM,我们只是先选了一个。
## 给谁用
Hive 面向远程与分布式的小团队,也面向想给团队加 agent、又希望每份上下文各自独立的人;主场在开源社区与自托管团队。接下来要回答的问题摆在明处:目标抽取该长成什么形态,跨任务的知识如何继承,成本与配额归谁,它们都标在路线图上。
Agent 的能力还在涨,决定产出上限的,已经换成上下文管理。Hive 的答案很朴素:像对待同事一样对待 agent,有事摇人,干完回收。
这就是我们重新发明的 agent swarm。
[ 项目图集 ]