附12:MCP 与 A2A 协议 —— LLM 工具标准化的未来
本节目标:理解 MCP 协议的核心架构、掌握 MCP 与 Function Calling 的本质区别、了解 A2A 协议、建立工具标准化全局视野。
第12课你实现了 MCP 协议集成。这一节把 MCP 和 A2A 的底层逻辑讲透。
1. 为什么需要标准化?
code
没有标准:
N 个 AI 应用 × M 个工具 = N×M 个适配器
有标准:
N 个 AI 应用 + M 个 MCP Server = N+M 个实现
类比:没有标准 = 每个网站用不同协议(FTP、Gopher...)。有标准 = HTTP 统一了 Web。
2. MCP = LLM 的 USB 接口
由 Anthropic 2024 年底提出并开源。
核心架构
Code
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ MCP Host │ 1:N │ MCP Client │ 1:1 │ MCP Server │
│ (AI 应用) │───→ │ (协议客户端) │───→ │ (工具/数据) │
│ Claude/Cursor│ │ │ │ GitHub/DB │
└──────────────┘ └──────────────┘ └──────────────┘
- Host:发起请求的 AI 应用
- Client:协议层,负责与 Server 通信
- Server:暴露工具和数据的服务
MCP Server 三大能力
| 能力 | 说明 | 示例 |
|---|---|---|
| Tools | LLM 可调用的函数 | search_issues(), create_file() |
| Resources | LLM 可读取的数据 | 文件内容、数据库记录 |
| Prompts | 预定义的 Prompt 模板 | 代码审查模板、总结模板 |
通信方式
- stdio(本地):标准输入输出,适合本地工具
- HTTP + SSE(远程):适合远程服务
- 协议格式:JSON-RPC 2.0
3. MCP vs Function Calling
code
Function Calling(LLM 层面的能力):
- 定义"LLM 怎么声明和调用函数"
- OpenAI 有自己的格式,Anthropic 有自己的,Google 有自己的
- 解决了"LLM 怎么调"
MCP(应用层面的协议):
- 定义"AI 应用如何发现、连接、管理外部工具"
- 包含工具发现、权限、生命周期管理
- 解决了"应用怎么连"
- Function Calling 是 MCP 的底层能力之一
类比:Function Calling = 插头形状,MCP = USB 协议(包含插头形状 + 数据传输 + 设备发现 + 电源管理)。
4. A2A = Agent 的局域网
由 Google 2025 年初提出。
核心概念
| 概念 | 说明 |
|---|---|
| Agent Card(名片) | 每个 Agent 发布 JSON 文件,描述自己的能力、技能、认证方式 |
| Task(任务) | 核心交互单元,状态:submitted → working → completed/failed |
| Message(消息) | Agent 之间的通信载体 |
| Artifact(产物) | 任务的输出结果 |
MCP vs A2A
| 维度 | MCP | A2A |
|---|---|---|
| 解决什么 | LLM ↔ 工具/数据 | Agent ↔ Agent |
| 类比 | USB 接口 | 局域网协议 |
| 发起者 | Anthropic | |
| 关系 | 互补,不竞争 | 互补,不竞争 |
实际系统中的协作
Code
Agent A(用 MCP 连接数据库查数据)
→ 用 A2A 把分析任务委托给 Agent B
→ Agent B(用 MCP 连接可视化工具生成图表)
→ Agent B(用 A2A 把结果返回给 Agent A)
5. 项目中的应用方向
Code
// 当前:LangChain4j @Tool 直接绑定
@Tool("检索古籍")
public String searchClassics(String query) { ... }
// 未来:封装为 MCP Server
// → 任何支持 MCP 的 AI 应用都能直接连接使用
// → Claude Desktop、Cursor、自研 UI 都可用
// → 从"紧耦合单体 Agent"演进为"松耦合可插拔服务"
核心要点
- MCP = LLM 的 USB 接口,统一了 N×M 的适配问题
- MCP Server 提供 Tools、Resources、Prompts 三大能力
- Function Calling 是 LLM 层面的,MCP 是应用层面的——层级不同
- A2A 是 Agent 间协作协议,与 MCP 互补——一个纵向连工具,一个横向连 Agent
- MCP 已成行业标准,各大厂均支持
上篇附课到此结束。接下来进入下篇:RAG 方法论深度与底层原理(课14-21)。