Chapter 10 · Agent Communication Protocols

MCP、A2A、ANP,解决的是不同层级的“连接问题”

最重要的不是背协议细节,而是知道:MCP 管 Agent 与工具/资源的连接,A2A 管 Agent 与 Agent 的协作,ANP 更偏向大规模 Agent 网络的发现与路由。

MCPAgent ↔ Tool
能力接入标准
A2AAgent ↔ Agent
任务委派与协作
ANPAgent ↔ Network
发现与路由
原则Protocol ≠ Framework
互操作 ≠ 内部实现

1. 为什么有 Tool Calling 了,还需要协议?

如果每个 Agent 都自己为 GitHub、数据库、文件系统、浏览器写一套适配器,集成成本会迅速膨胀。

Without Standard Agent A Agent B GitHub Database Files With Standard Protocol Agent Protocol MCP / A2A Reusable Ecosystem
Protocol 的核心价值 = Interoperability + Reuse + Standardized Discovery

2. MCP:Agent ↔ Tool / Resource

可以把 MCP 理解成 Agent 工具生态里的“标准接口层”。

MCP = Integration Standard
Host / Agent App IDE / Chat App / Agent MCP Client 协议通信 MCP Server 暴露能力 GitHub Database Filesystem
核心:MCP Server 不一定有 LLM。它可以只是一个把文件、数据库、GitHub、浏览器能力标准化暴露出来的服务。

3. MCP 里常见的三类能力

🛠

Tools

让 Agent 做事情。

run_python() search_web() query_database()
📄

Resources

让 Agent 读取数据或上下文。

file://README.md repo://source db://schema
🧭

Prompts

暴露可复用任务模板。

review_code summarize_repo analyze_bug
Tools = 做什么  Resources = 看什么  Prompts = 怎么组织任务

4. Tool Calling ≠ MCP

这是这一章最容易混淆的地方。

概念解决的问题例子
Tool Calling模型决定调用哪个工具、参数是什么get_weather(city="青岛")
MCP这个工具从哪里来、如何发现、如何标准化接入通过 MCP Server 暴露 weather tool
LLM 选择工具 Tool Call name + arguments MCP Client 协议调用 Server 真实能力
Tool Calling = 决策机制  MCP = 接入协议

5. A2A:Agent ↔ Agent

当对方不是“一个函数”,而是一个有自己状态、工具、计划和运行周期的独立 Agent 时,就进入 Agent-to-Agent 协作。

Research Agent 发现任务 / 组织证据 A2A Task / Message / Artifact Code Agent 运行 / 调试 / 产出结果
区分:Code Agent 不是一个普通 Tool,因为它可能自己规划、调用多个工具、维护状态,并运行很久。

6. A2A 里三个很重要的抽象

🪪

Agent Card

描述 Agent 是谁、会什么、怎么连接。

name description skills endpoint auth
📌

Task

有生命周期的工作单元,不只是一次 RPC。

submitted working input-required completed
📦

Artifact

正式任务产出,例如报告、代码、数据文件。

report.md metrics.json figure.png

Message 与 Artifact 的区别

对象用途例子
Message沟通“我需要数据集路径”
Artifact正式交付result.csvreport.md

7. ANP:Agent ↔ Network

ANP 更偏向大规模 Agent 网络里的发现、路由、注册与信任问题。

Agent Network Discovery / Routing Agent A Agent B Agent C Agent D

要解决的问题

谁会做这个任务?怎么找到它?怎么路由?怎么处理 Agent 上下线?

当前学习优先级

知道定位即可。对实际项目而言,当前通常先学 MCP,再理解 A2A,ANP 最后。

8. 安全:LLM 想执行 ≠ 系统允许执行

协议把能力接进来之后,权限控制比“会不会调用”更重要。

LLM Wants delete_file() Permission 权限检查 Risk Check 危险动作? Execute / Ask User 允许 / 人工确认

低风险

read_file:通常可自动允许。

中风险

write_file:限制在工作目录内。

高风险

delete_repo / send_email:需要额外确认。

Least Privilege:只给 Agent 完成任务所需的最小权限

9. 一页总结

MCP = Agent ↔ Tool / Resource
A2A = Agent ↔ Agent
ANP = Agent ↔ Network
Tool Calling ≠ MCP
Framework ≠ Protocol
LLM wants action ≠ LLM has permission
Main Agent MCP Tool / Resource A2A Other Agent ANP Agent Network GitHub / Files / DB Code Agent / Research Agent Discovery / Routing
下一份:第 11 章——Agentic RL。重点做清楚 `Prompt → SFT → Reward → GRPO → Agent Policy`,以及“为什么有了 Tool / Memory 之后还要训练模型”。