消息路由与通信
Message Routing & Communication
多 Agent 间基于标签的消息路由、订阅和异步通信机制
子问题
1.消息寻址与分发
2.订阅过滤
3.异步消息队列
4.自发消息处理(<self> 标签绕过 Environment)
5.触发器驱动的外部事件订阅
6.消息队列序列化与状态恢复
各项目的解法1 solutions
Signals
横向对比
| 维度 | MetaGPT |
|---|---|
| 路由模式 | 标签路由:cause_by + send_to 双维度匹配,Environment 中介者分发 |
| 订阅机制 | Role._watch() 声明式订阅 Action 类型,_observe() 按 cause_by 过滤 |
| 消息缓冲 | 每 Role 独立 asyncio.Queue,支持 dump/load 序列化 |
| 广播语义 | send_to 默认 <all> 广播,支持 <self> 自发消息 |
| 触发器支持 | SubscriptionRunner 支持 AsyncGenerator 外部触发器 + 回调 |
最佳实践
1.cause_by 标签实现松耦合消息路由
2.类名字符串化确保路由标签可序列化可比较
3.Environment 中介者模式消除 Agent 间 N×N 直接依赖
4.双重过滤(cause_by ∈ watch OR name ∈ send_to)兼顾订阅和定向