Message Bus Pattern
概述
消息总线(Message Bus)是随着智能体数量增加、交互模式变得复杂时采用的多智能体模式。引入共享通信层,智能体在该层中发布和订阅事件。新智能体具备新功能时可开始接收相关任务,而无需重新配置现有连接。
关键内容
工作原理
两个原语: 1. 发布(Publish):智能体发布事件到总线 2. 订阅(Subscribe):智能体订阅其关注的主题 3. 路由:路由器传递匹配的消息
特点: - 智能体通过共享通信层交互 - 新智能体可轻松加入生态系统 - 无需重新配置现有连接
适用场景
事件驱动型管道: - 工作流由事件而非预设序列生成 - 智能体生态系统可能会不断扩展 - 团队可独立开发和部署智能体
具体应用: - 安全运营自动化系统(警报→分类→调查→响应) - 数据处理管道 - 通知系统 - 监控和告警系统
实际案例
安全运营自动化系统: - 警报来源:多个来源传来警报 - 分类代理:按严重程度和类型对每个警报进行分类 - 路由: - 高严重程度的网络警报 → 网络调查代理 - 凭证相关警报 → 身份分析代理 - 调查代理:可能发布补充请求 - 上下文收集代理:完成补充请求 - 响应协调代理:确定相应的应对措施
优势
- 支持复杂的多智能体协调
- 新智能体可轻松加入生态系统
- 团队可独立开发和部署智能体
- 适应不断扩展的智能体数量
局限性
问题追踪困难: - 事件驱动型通信的灵活性让问题追踪更困难 - 级联事件需要细致的日志记录和关联分析 - 调试比顺序式决策更难
路由准确性: - 路由器对事件进行错误分类或丢弃会导致系统无声失效 - 基于大模型的路由器具备语义灵活性,但也会带来自身的故障模式 - 系统除了不崩溃外什么都处理不了
无声失效: - 系统失效时不会崩溃 - 需要监控和告警机制 - 日志记录至关重要
与 Orchestrator-Subagent 的对比
| 维度 | Orchestrator-Subagent | Message Bus | |------|----------------------|-------------| | 工作流结构 | 预设序列 | 由事件生成 | | 路由 | 协调者决定 | 路由器基于主题 | | 扩展性 | 协调者成为瓶颈 | 可轻松添加新智能体 | | 调试 | 顺序决策易追踪 | 级联事件难追踪 |
设计建议
日志记录: - 细致的日志记录所有事件 - 关联分析工具 - 监控和告警机制
路由准确性: - 测试路由器的分类准确性 - 设置误分类检测和告警 - 考虑基于规则和基于模型的混合路由
监控: - 跟踪事件流转 - 检测无声失效 - 设置完成超时和重试机制
来源
- raw/articles/ai-engineering/claude-blog/Multi-agent coordination patterns_ Five approaches and when to use them.md — Cara Phillips 撰写
相关
- Multi-Agent-Coordination-Patterns — 五种模式之一(part_of)
- Shared-State-Pattern — 替代模式(compares_to)
- Orchestrator-Subagent-Pattern — 对比模式(compares_to)