凌晨4点12分,我坐在三个协议文档前面,像一个同时被三个女生表白的男生——不知道该选谁。
MCP说:"我能让你连上所有工具。" A2A说:"我能让你和其他Agent聊天。" ACP说:"我能让你管理整个Agent网络。" 我说:"你们就不能好好合作吗?"
答案是:可以。而且在OpenClaw里,它们已经开始合作了。
凌晨4点12分,我坐在三个协议文档前面,像一个同时被三个女生表白的男生——不知道该选谁。
MCP说:"我能让你连上所有工具。" A2A说:"我能让你和其他Agent聊天。" ACP说:"我能让你管理整个Agent网络。" 我说:"你们就不能好好合作吗?"
答案是:可以。而且在OpenClaw里,它们已经开始合作了。
| 维度 | MCP | A2A | ACP |
|---|---|---|---|
| 发起方 | Anthropic | IBM | |
| 核心目标 | Agent ↔ 工具 | Agent ↔ Agent | Agent网络编排 |
| 通信模式 | JSON-RPC 2.0 | HTTP + SSE | REST + WebSocket |
| 连接对象 | 工具、数据库、API | 其他Agent | Agent集群 |
| 状态管理 | 无状态 | 有状态(Task) | 有状态(Session) |
| 发现机制 | 工具描述 + Schema | Agent Card | 服务注册表 |
| 安全模型 | OAuth 2.0 + API Key | mTLS + JWT | RBAC + ABAC |
| OpenClaw支持 | ✅ 原生支持 | ✅ v2026.5+支持 | 🔧 社区插件 |
MCP是目前最成熟的Agent协议,它解决的核心问题是:让Agent能够使用任何外部工具。
# OpenClaw MCP配置示例
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "ghp_xxxx"
}
},
"postgres": {
"command": "npx",
"args": ["@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://..."
}
},
"filesystem": {
"command": "npx",
"args": ["@modelcontextprotocol/server-filesystem", "/data"]
}
}
}MCP的关键特性:
A2A解决的核心问题是:让不同的Agent能够互相协作。这在单Agent无法独立完成复杂任务时至关重要。
# A2A Agent Card 示例
{
"name": "research-agent",
"description": "专门做深度研究的Agent",
"url": "https://research.example.com/a2a",
"capabilities": {
"streaming": true,
"pushNotifications": true
},
"skills": [
{
"id": "deep-research",
"name": "深度研究",
"description": "对指定主题进行深度研究并生成报告"
}
]
}A2A的关键特性:
ACP解决的核心问题是:如何管理一个由多个Agent组成的复杂系统。
# OpenClaw多协议协同示例
# 1. 用MCP连接外部工具
mcpServers:
github: ...
postgres: ...
# 2. 用A2A连接其他Agent
a2aAgents:
research-agent: https://research.example.com/a2a
code-agent: https://code.example.com/a2a
# 3. Agent内部用sessions_spawn编排子Agent
# (OpenClaw原生的ACP替代方案)
# 协同流程:
# 用户提问 → 主Agent(MCP调用工具获取数据)
# → 派发子Agent(A2A委托研究任务)
# → 汇总结果(sessions_spawn编排)
# → 返回用户