blob: de1e784cc551915ac149f417843b103c45af829b [file] [view]
# 实现总结: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 进行交互。