上面这段2分56秒的视频是一次虚构的用药安全演练。网关互操作性经过了测试;六个组织参与的突发事件则是一场确定性模拟。
上一次,我发现自己的智能体框架里,QUIC传输层实际上从未真正传输过任何东西。这一次,传输是真实的。五个进程能够互相发现、交换加密消息、强化独立结论,并让缺乏支持的信号自然衰减。
网络本身运转正常
但它仍然无法向另一个智能体介绍自己。没有标准方式去询问这个群体能做什么;内部信号过期后,没有可保留的任务可供检索;没有可互操作的进度流;没有取消契约;也没有其他框架能够理解的结果产物。
我构建了一个没有边境通道的社会。
谷歌的Agent2Agent协议为这个缺失的边界提供了名称。A2A于2025年4月发布,是一个开放协议,让不同厂商和框架构建的智能体能够互相发现、交换消息并协作,而无需共享各自的私有记忆、工具或内部计划。该项目于2025年6月移交至Linux基金会管理,因此“谷歌的A2A”在历史上是准确的,但已不再是完整的故事。
我需要的不是给SMESH换一个新大脑,而是在它前面放一份公共契约。
能工作的网络不等于可互操作的智能体
SMESH是我为LLM智能体之间的去中心化协调而设计的框架。它的机制借鉴自菌根网络,而非任务队列。
- 智能体向场中发射信号;
- 信号强度随时间衰减;
- 智能体根据本地亲和度认领工作;
- 独立共识会强化一项认领;
- 缺乏支持的认领会消失,无需中心进程拒绝;
- 信任会改变一个节点愿意转发的内容。
这解决的是内部协调问题。它回答的是:哪个专家应该接手这项工作?是否有另一个独立智能体看到了同样的事情?这项认领是在获得支持,还是仅仅在被重复?一个过期的任务能否在没有调度器清理的情况下自行消失?
A2A解决的是另一个问题。它问的是:外部智能体如何发现这个系统?它如何委托一个工作单元?它如何观察一个长时间运行的任务?它如何取消这个任务?最终能取回什么样的结果?
官方A2A规范描述了一个面向独立且可能不透明的智能体系统的互操作层。其当前v1模型将规范数据对象、抽象操作以及具体绑定(如JSON-RPC、gRPC和HTTP+JSON/REST)分离开来。
核心词汇很小:A2A v1定义了SendMessage、SendStreamingMessage、GetTask、ListTasks、CancelTask和SubscribeToTask等操作。绑定层决定这些操作在传输中如何呈现;规范的任务语义保持不变。
这个区分很重要。如果我试图让A2A成为群体内部协调机制,就会把两个不同层面的问题混在一起。内部协调依赖信号衰减和本地亲和度,而A2A提供的是跨越系统边界的固定契约。
边界之外需要公共语言
一个能自我协调的网络,并不自动具备对外沟通的能力。内部机制可以很优雅,但外部智能体看不到这些机制,也不需要理解它们。外部智能体需要的是一个稳定、可预测的接口:如何发起请求、如何查询状态、如何终止任务、如何取回结果。
A2A恰好提供了这样一层。它不要求暴露内部记忆或计划,也不关心对方用的是哪种框架。它只定义了一个最小集合的操作和数据结构,让互不认识的系统能够完成最基本的协作动作。
这正是我的网络此前缺失的部分。它内部可以达成共识、分配任务、让无效信号自然消失,但当另一个框架的智能体试图与它对话时,没有任何公共入口。没有发现机制,没有任务句柄,没有进度查询,没有取消方式。
加上A2A之后,这个网络第一次拥有了可以被外部理解的边界。它仍然保留自己的内部协调逻辑,但外部智能体不再需要知道这些逻辑,只需要按照协议发送消息、查询任务、订阅进度。
这次演练验证了网关互操作性,也验证了一个更基本的判断:一个能自我组织的系统,仍然需要一份公共契约,才能与外界握手。
热门跟贴