微信扫码
添加专属顾问
我要投稿
探索AI进化的新里程碑,揭秘MCP+A2A协议如何重塑智能体生态。核心内容: 1. AI智能体的爆发式增长及统一目标概述 2. MCP协议的起源、架构与核心优势 3. 实际构建MCP Server的步骤与应用示例
点击上方 蓝字 关注「云上小鲸」
一、MCP协议
01
什么是MCP?
MCP Hosts: 使用LLMs核心的程序,需要访问外部数据或工具(如Cursor)
MCP Clients: 与 MCP 服务器保持1 : 1的连接
MCP Servers: 轻量级程序,通过 MCP 暴露特定的功能,连接到本地或远程数据源
本地数据源: 由 MCP 服务器安全访问的文件、数据库或服务
远程服务: 由 MCP 服务器访问的互联网基 API 或服务
MCP通过开源和标准化,简化了AI模型与数据、工具和服务交互的方式,其优势如下:
简化开发: 写一次,多次集成,无需为每个集成重写自定义代码
灵活性: 切换 AI 模型或工具时无需复杂重新配置
实时响应: MCP 连接保持活动状态,实现实时上下文更新和交互
安全性与合规性: 内置访问控制和标准化的安全实践
可扩展性: 随着 AI 生态系统增长,轻松添加新功能——只需连接另一个 MCP 服务器
MCP协议通过定义 Resources(静态资源)、Prompts(提示词模板)和 Tools(可执行工具)三大核心能力,让开发者能够以模块化方式为 LLM 扩展文件系统访问、API 集成甚至物联网控制等交互能力。
02
构建MCP Server
下面MCP Server示例展示:如何使用社区Go SDK(mark3labs/mcp-go)快速构建自己的 MCP Server。
主要实现当前时间的查询,支持任意时区:
package main
import (
"context"
"fmt"
"time"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
)
func main() {
// Create MCP server
s := server.NewMCPServer(
"Demo ?",
"1.0.0",
)
// Add tool
tool := mcp.NewTool(
"current time",
mcp.WithDescription("Get current time with timezone, Asia/Shanghai is default"),
mcp.WithString(
"timezone",
mcp.Required(),
mcp.Description("current time timezone"),
),
)
// Add tool handler
s.AddTool(tool, currentTimeHandler)
// Start the stdio server
if err := server.ServeStdio(s); err != nil {
fmt.Printf("Server error: %v\n", err)
}
}
func currentTimeHandler(ctx context.Context, request mcp.CallToolRequest)(*mcp.CallToolResult, error) {
timezone, ok := request.Params.Arguments["timezone"].(string)
if !ok {
return mcp.NewToolResultError("timezone must be a string"), nil
}
loc, err := time.LoadLocation(timezone)
if err != nil {
return mcp.NewToolResultError(fmt.Sprintf("parse timezone with error: %v", err)), nil
}
return mcp.NewToolResultText(fmt.Sprintf(`current time is %s`, time.Now().In(loc))), nil
}
然后,将代码编译成二进制文件:
03
配置和应用MCP Server
下面,我在Trae工具上安装了Cline插件,配置好自己的DeepSeek API和key,再把编译好的MCP Server配置到Cline中:
配置OK后,在Cline上创建新任务,输入任务请求:请告诉我当前的北京时间?
这时,会提示已经连接到time-mcp-server,可以查询时间,问你是否同意?
然后,点击Act切换模式,就能通过你的time-mcp-server服务器查询时间,并返回:
通过这个示例可以看出,使用MCP SDK开发一个 MCP 服务非常便捷,且该服务能够轻松集成到任何支持 MCP 协议的客户端程序中,这大大降低了服务与应用程序之间的集成难度。
二、Agent2Agent协议
01
Agent2Agent协议是什么?
Agent2Agent协议(A2A)是一种开放协议,它为智能体提供了一种相互协作的标准方式,而不受底层框架或供应商的影响。由Google于2025年4月8日推出,旨在解决不同AI智能体之间的互操作性问题,得到了50多个技术合作伙伴的支持和贡献,包括Atlassian、Langchain、MongoDB、PayPal、Salesforce等。
项目地址:https://github.com/google/A2A
A2A通过标准化通信格式、身份认证和任务协调机制,使得来自不同厂商或框架的智能体(如客服Agent与日程管理Agent)能够无缝协作。例如,用户可通过A2A协议让一个智能体将任务(如“安排会议”)委托给另一个智能体,并实时追踪进度。
A2A协议有三个核心参与者:
User
Client
Remote Agent(Server)
User存在于协议中,主要的作用是用于 认证&授权 。Client 代表用户向不透明智能体请求操作的实体(服务、智能体、应用程序),即任务的发起者。Remote Agent 指的是任务的执行者。
Client 和 Server 之间的通信,可以理解为就是一个个简单的请求和结果的响应,只不过这个请求是一个个的任务。一个 Agent(智能体) 既可以是 Client 也可以是 Server。
02
A2A的设计原则
设计人员建议应用程序将 A2A 智能体建模为 MCP 资源(由其 AgentCard 表示)。这样,框架就可以使用 A2A 与用户、远程智能体以及其他智能体进行通信。
设计原则:
拥抱代理能力:A2A 致力于使智能体能够以自然、非结构化的模式进行协作,即使它们不共享内存、工具和上下文。我们正在实现真正的多智能体场景,而不将智能体局限于单一的“工具”。
基于现有标准:该协议建立在现有的流行标准之上,包括 HTTP、SSE、JSON-RPC,这意味着它更容易与企业日常使用的现有技术栈集成。
默认安全:A2A 旨在支持企业级身份验证和授权,在启动时与 OpenAPI 的身份验证方案相同。
支持长时间运行的任务:在设计 A2A 时就考虑了灵活性,并支持各种场景,使其能够出色地完成各种任务,从快速任务到深度研究,这些任务可能需要数小时甚至数天的时间(如果人工参与)。在此过程中,A2A 可以为用户提供实时反馈、通知和状态更新。
与模态无关:智能体世界不仅限于文本,这就是我们设计 A2A 来支持各种模态(包括音频和视频流)的原因。
03
A2A的工作原理
A2A 促进“客户端”智能体与“远程”智能体之间的通信。客户端智能体负责制定和传达任务,而远程智能体负责执行这些任务,以提供正确的信息或采取正确的行动。
核心功能:
能力发现: 智能体可以使用 JSON 格式的“智能体卡片”来宣传其能力,从而允许客户端代理识别能够执行任务的最佳智能体并利用 A2A 与远程智能体进行通信。
任务和状态管理: 客户端与远程智能体之间的通信以任务完成为导向,智能体负责执行最终用户的请求。此“任务”对象由协议定义,并具有生命周期。它可以立即完成,或者对于长时间运行的任务,每个智能体可以进行通信,彼此保持同步,了解任务的最新完成状态。
协作: 智能体可以互相发送消息来传达上下文、回复、工件或用户指令。
用户体验协商: 每条消息包含“Parts”,即完整形成的内容片段,例如生成的图像。每个Part都有指定的内容类型,允许客户端和远程智能体协商所需的正确格式,并明确包含对用户 UI 功能(例如:iframe、视频、Web 表单等)的协商。
04
实际案例:候选人招聘
通过 A2A 协作,招聘软件工程师的过程可以显著简化。在 Agentspace 这样的统一界面中,用户(例如:招聘经理)可以委托其智能体寻找符合职位列表、工作地点和技能要求的候选人。然后,智能体会与其他专业智能体互动,以寻找潜在候选人。
用户收到这些建议后,可以指示其智能体安排进一步的面试,从而简化候选人寻找流程。面试流程完成后,可以联系另一位智能体协助进行背景调查。这只是 AI 智能体如何跨系统协作以寻找合格候选人的一个例子。
05
未来憧憬
A2A 有望开启智能体互操作的新时代,促进创新,并创建更强大、更灵活的智能体系统。我们相信,该协议将为未来铺平道路,使智能体能够无缝协作,解决复杂问题,改善我们的生活。
开启 超级AI智能体 时代
三、MCP与A2A协议的关系
01
通俗解释
假设有一家汽车修理店,该店雇佣了一些自主操作的工人,他们使用专用工具(例如千斤顶、万用表和套筒扳手)来诊断和维修车辆故障。这些工人经常需要诊断和修复他们从未见过的问题,维修过程可能需要与客户进行深入交流、进行研究,并与零件供应商合作。
将汽修店员工建模为 AI 智能体:
MCP 是将这些智能体与其结构化工具(比如:千斤顶)连接起来的协议。
A2A 是另一种协议,允许这些智能体(比如:用户、其他供应商与汽修店员工)之间进行沟通协作。
https://modelcontextprotocol.io/introduction
https://www.claudemcp.com/zh/blog/mcp-vs-api
https://mp.weixin.qq.com/s/uTsr06MnJ9t3sGDzLD99_g
https://mp.weixin.qq.com/s/gmgo_glOzbvdFwePP1yQ9g
https://mp.weixin.qq.com/s/HG0G10wXiYjv0F1NXESi1Q
https://github.com/google/A2A
https://google.github.io/A2A/#/documentation
https://google.github.io/A2A/#/topics/a2a_and_mcp
https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/
往
期
精
彩
Manus和MGX,实现:一个人即一个软件团队,实操效果太炸裂" data-itemshowtype="0" target="_blank" linktype="text" data-linktype="2">MetaGPT打造的OpenManus和MGX,实现:一个人即一个软件团队,实操效果太炸裂
如果觉得文章不错,欢迎关注「云上小鲸」,随手点赞、在看、转发三连。如果想第一时间收到推送,也可以给我加个星标⭐,谢谢。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-05-11
DB-GPT V0.7.1 版本更新:支持多模态模型、支持 Qwen3 系列,GLM4 系列模型 、支持Oracle数据库等
2025-05-11
使用MCP实现QGIS自动工作流
2025-05-11
从0.1到∞:MCP协议的技术谦卑与生态野望
2025-05-11
OpenAI Agent负责人Josh Tobin构建有效 AI 智能体的策略
2025-05-11
阿里通义成了AI的“黄埔军校”?
2025-05-11
AI Agent:四大核心能力详解与技术演进
2025-05-10
初识 MCP Server
2025-05-10
利用Cherry Studio+硅基流动免费搭建一个强大的本地AI知识库!
2024-08-13
2024-06-13
2024-08-21
2024-09-23
2024-07-31
2024-05-28
2024-08-04
2024-04-26
2024-07-09
2024-09-17
2025-05-11
2025-05-09
2025-05-08
2025-05-07
2025-04-30
2025-04-29
2025-04-29
2025-04-29