A2A v2:找到了 Agent 间协作的最佳方式
这是 OpenCrew 自诞生以来最重大的架构更新。Agent 之间不再只能单向派任务——现在可以在同一个 Slack 频道里像同事一样讨论、评审、迭代。
核心变化
之前(v0.2.x):所有 Agent 共享一个 Slack bot → bot 不能触发自己 → Agent 间只能靠 sessions_send 单向委派。
现在(v0.3.0):给至少一个关键 Agent 创建独立 Slack App → 拉进执行 Agent 的频道 → 频道内高维度对话 + 基于文件的实际协作 + 用户 review 最终产出。
左:架构——编排者(独立 App)进入执行 Agent 频道协作 | 右:实战——两个 Agent 在 #ops 协作排查问题(全程无人干预)新增功能
Discussion Mode(讨论模式)— Slack 已验证 NEW
- 选择性独立化:不需要每个 Agent 都有独立 App。选一个关键角色(如 CoS / Planner / QA)做独立 Slack App,拉进任意执行 Agent 的频道即可协作
- 两层防线:Config 硬约束(
requireMention: true+allowBots: true)+ Prompt 软约束(显式 @mention 检查 + NO_REPLY 纪律 + 轮次计数) - Harness Design 分工:借鉴 Anthropic Harness Design——编排者负责规划和质量把关(Planner + Evaluator),执行 Agent 负责干活(Generator)
- 协作模式:频道里是高维度对话(审计用)→ 实际工作基于 Markdown 文件 → 用户 review 最终产出
A2A 协议 v2(shared/A2A_PROTOCOL.md)
- Delegation(委派)+ Discussion(讨论)双模式共存,不互相替代
- 跨平台 Session Key 格式(Slack / Discord / Feishu topic)
- Discussion 终止协议(DISCUSSION_CLOSE)
- 显式 @mention 协议(Multi-Agent Thread 规则)
- 完整的已知限制和实战踩坑记录
Discussion Mode 配置指南(docs/A2A_SETUP_GUIDE.md)
- 完整 Slack App manifest(复制即用)
- 多账号配置模板(含
accounts.default必须声明的关键警告) - Binding 顺序、热重载、回滚方式
- 实战验证步骤
平台支持
| 能力 | Slack | Discord | 飞书 |
|---|---|---|---|
| Delegation(sessions_send) | ✅ | ✅ | ✅ |
| Discussion(跨 bot 对话) | ✅ 已验证 | ❌ OpenClaw 代码层 bug | ❌ 飞书平台限制 |
| Thread / Topic 隔离 | ✅ 原生 | ✅ 自动归档 | ✅ groupSessionScope (>= 2026.3.1) |
- Discord 受阻于 OpenClaw Issues #11199 + #45300。属于代码层 bug,非平台限制。
- 飞书 受阻于平台 API 设计:
im.message.receive_v1仅投递用户消息,bot 消息对其他 bot 不可见。
实战验证
- 端到端验证通过(2026-04-02):两个独立 bot 在同一 Slack 频道成功进行结构化讨论
- 使用 Claude Opus 4.6 模型,从未出现失控循环
- 发现并记录了
implicitMention绕过requireMention的机制及解决方案 - 发现并记录了
accounts.default必须显式声明(否则主 bot 断连的事故)
模型兼容性
Discussion 模式的协作纪律依赖 Prompt 规则,非系统级强制。Claude Opus 4.6 实测稳定。不同模型建议先在低风险频道测试。
设置指南
只需三步:
- 创建独立 Slack App(完整 manifest)
- 配置 OpenClaw 多账号(可让你的 Agent 协助完成)
- 把 bot 拉进目标频道(
/invite @Bot-Name)
详见 → Discussion Mode 配置指南
下一步
- Agent 蓝图仓库(开发中):描述需求 + 加频道 = 自动 onboarding 新 Agent
- 持续跟踪 Discord OpenClaw bug 修复进展
