实现总结:EventMesh A2A 协议 v2.0 (MCP 版)

核心成果

A2A 协议已成功重构为采用 MCP (Model Context Protocol) 架构,将 EventMesh 定位为现代化的 智能体协作总线 (Agent Collaboration Bus)

1. 核心协议重构 (EnhancedA2AProtocolAdaptor)

  • 混合引擎 (JSON-RPC & CloudEvents): 实现了智能解析引擎,支持:
    • MCP/JSON-RPC 2.0: 面向 LLM 和脚本的低门槛接入,自动封装 CloudEvent。
    • 原生 CloudEvents: 面向 EventMesh 原生应用的灵活接入,支持自定义元数据和透传。
    • 适配器根据 jsonrpc 字段自动分发处理逻辑。
  • 异步 RPC 映射: 建立了同步 RPC 语义与异步事件驱动架构 (EDA) 之间的桥梁。
    • 请求 (Requests) 映射为 *.req 事件,属性 mcptype=request
    • 响应 (Responses) 映射为 *.resp 事件,属性 mcptype=response
    • 关联 (Correlation) 通过将 JSON-RPC id 映射到 CloudEvent collaborationid 来处理。
  • 路由优化: 实现了“深度内容路由提取”:
    • params._agentId -> CloudEvent 扩展属性 targetagent (P2P)。
    • params._topic -> CloudEvent Subject (Pub/Sub)。

2. 原生 Pub/Sub 与流式支持

  • Pub/Sub: 通过将 _topic 映射到 CloudEvent Subject,支持 O(1) 广播复杂度。
  • 流式 (Streaming): 支持 message/sendStream 操作,映射为 .stream 事件类型,并通过 _seq -> seq 扩展属性保证顺序。

3. 标准化与兼容性

  • 数据模型: 定义了符合 JSON-RPC 2.0 规范的 JsonRpcRequestJsonRpcResponseJsonRpcError POJO 对象。
  • 方法定义: 引入了 McpMethods 常量,支持标准操作如 tools/callresources/read

4. 测试与质量

  • 单元测试: 在 EnhancedA2AProtocolAdaptorTest 中实现了对请求/响应循环、错误处理、通知和批处理的全面覆盖。
  • 集成演示: McpIntegrationDemoTest 模拟了 P2P RPC 闭环。
  • 模式测试: McpPatternsIntegrationTest 模拟了 Pub/Sub 和 Streaming 流程。

下一步计划

  1. 路由集成: 更新 EventMesh Runtime Router,利用新的 targetagenta2amethod 扩展属性实现高级路由规则。
  2. Schema 注册中心: 实现一个“注册中心智能体 (Registry Agent)”,允许智能体动态发布其 MCP 能力 (methods/list)。
  3. Sidecar 支持: 将 A2A 适配器逻辑暴露在 Sidecar 代理中,允许非 Java 智能体 (Python, Node.js) 通过简单的 HTTP/JSON 进行交互。