定义

智能体通信协议是标准化智能体与外部工具、智能体之间、以及智能体网络之间的接口规范。三大主流协议分别是 MCPA2AANP,各自解决不同层面的通信问题。

协议选择

需求选择
智能体访问外部服务(文件、数据库、API)MCP
多个智能体相互协作A2A
构建大规模智能体生态系统ANP

MCP(Model Context Protocol)

由 Anthropic 提出,被描述为”智能体的 USB-C”——统一了智能体与外部工具的交互方式。无论使用哪个模型,只要支持 MCP 就能无缝访问相同的工具和资源。

三层架构

  1. Host(宿主层):用户直接交互的界面(如 Claude Desktop),管理对话流程
  2. Client(客户端层):Host 内置,负责与 MCP Server 建连、收发请求
  3. Server(服务器层):执行实际操作(如文件系统扫描)

架构优势在于关注点分离:Host 关注用户体验,Client 关注协议通信,Server 关注具体功能实现。

三大核心能力

能力类型说明
Tools主动的执行操作
Resources被动的提供数据
Prompts指导性的提供模板

工具选择工作流(5 步)

工具发现(list_tools()) → 上下文构建(工具列表转 LLM 格式) → 模型推理(分析是否需调用工具) → 工具执行(通过 MCP Server) → 结果整合(LLM 生成最终回答)

整个过程完全自动化——LLM 根据工具描述质量决定是否及如何使用工具。

MCP vs Function Calling

Function Calling 是 LLM 的内在能力,使模型理解何时调用函数并生成参数;MCP 是基础设施协议,在工程层面解决工具与模型如何连接的问题。MCP 可跨所有模型(OpenAI、Claude、Llama 等使用相同客户端),而 Function Calling 需为每个提供商定义不同格式。

五种传输方式

Memory(测试/原型)、Stdio(本地开发)、HTTP(生产/远程/微服务)、SSE(实时/流式)、StreamableHTTP(双向流式)。

关键特性是传输层无关性——协议不依赖于特定传输方式。

社区生态

Anthropic 官方维护的 MCP Servers 涵盖:Filesystem、GitHub、PostgreSQL、Slack、Puppeteer、Sentry、Sqlite 等。社区热门包括 Playwright、Perplexity、Obsidian、Jira 等。发布平台为 Smithery

A2A(Agent-to-Agent Protocol)

由 Google 提出。解决智能体之间的协作问题。采用点对点(P2P)架构(网状拓扑),避免传统中央协调器的单点故障、性能瓶颈和扩展困难。

核心概念

  • Task(任务):需要完成的特定工作,有标准化生命周期(创建→协商→代理→执行中→完成→失败)
  • Artifact(工件):任务执行过程中产生的输出

请求生命周期

代理发现 → 身份验证 → 发送消息 API → 发送消息流 API

ANP(Agent Network Protocol)

开源社区维护。解决大规模智能体网络中的服务发现、路由选择和动态扩展问题。

核心概念

Agent Description(能力描述)、Service Discovery(动态发现)、Routing(消息路由)、Load Balancing(负载均衡)

架构流程

  1. 服务发现与匹配:公开的发现服务,基于语义/功能描述查询,通过 .well-known/agent-descriptions 标准端点建立索引
  2. 基于 DID 的身份验证:去中心化身份机制,私钥签名 + 公钥验证
  3. 标准化服务执行:预定义标准接口和数据格式

核心机制是利用 DID 构建去中心化信任根基,借助标准化描述协议实现服务动态发现。

三层协议架构对比

维度MCPA2AANP
定位智能体与工具的桥梁智能体之间的对话系统智能体的”互联网”
适用规模单个智能体增强小规模团队协作大规模开放网络
核心问题如何访问工具如何与其他智能体对话如何发现和连接智能体

摘要-hello-agents 的实现中,三种协议统一抽象为 Tool 接口添加到 Agent,智能体层不关心底层协议细节。

关联连接