| # 实现总结: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 规范的 `JsonRpcRequest`、`JsonRpcResponse`、`JsonRpcError` POJO 对象。 |
| - **方法定义**: 引入了 `McpMethods` 常量,支持标准操作如 `tools/call`、`resources/read`。 |
| |
| ### 4. 测试与质量 |
| - **单元测试**: 在 `EnhancedA2AProtocolAdaptorTest` 中实现了对请求/响应循环、错误处理、通知和批处理的全面覆盖。 |
| - **集成演示**: `McpIntegrationDemoTest` 模拟了 P2P RPC 闭环。 |
| - **模式测试**: `McpPatternsIntegrationTest` 模拟了 Pub/Sub 和 Streaming 流程。 |
| |
| ## 下一步计划 |
| |
| 1. **路由集成**: 更新 EventMesh Runtime Router,利用新的 `targetagent` 和 `a2amethod` 扩展属性实现高级路由规则。 |
| 2. **Schema 注册中心**: 实现一个“注册中心智能体 (Registry Agent)”,允许智能体动态发布其 MCP 能力 (`methods/list`)。 |
| 3. **Sidecar 支持**: 将 A2A 适配器逻辑暴露在 Sidecar 代理中,允许非 Java 智能体 (Python, Node.js) 通过简单的 HTTP/JSON 进行交互。 |