您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   模型库  
会员   
   
DeepSeek大模型应用开发实践
6月12-13日 厦门
基于 UML 和EA进行分析设计
6月23-24日 北京+线上
人工智能、机器学习 TensorFlow+Keras
6月22-23日 北京
     
   
 
 订阅
MCP+A2A协议如何让AI从「大模型」进化到「超级分布式智能体」
 
作者:jaredzhou13
  167  次浏览      9 次
 2025-5-27
 
编辑推荐:
本文主要介绍了MCP+A2A协议如何让AI从「大模型」进化到「超级分布式智能体」相关内容。希望对你的学习有帮助。
本文来自于微信公众号云上小鲸 ,由火龙果软件Linda编辑,推荐。

目前,随着大模型变得越来越强大、越来越成熟,以大模型为核心的AI智能体也进入了爆发式增长阶段,加上Dify、Coze、n8n和魔搭社区等智能体创作平台的赋能,AI智能体正在逐渐成为流程化和自动化的核心驱动力。

而现在,大家的统一目标就是:让AI智能体变得更加强大,能够自主获取最新的数据,调用外部工具来完成任务,同时,AI智能体之间还能以一个团队的形式进行分工协作,更快、更好地完成更复杂的任务。

在这个背景下,MCP和A2A协议发布了!

它们成为了AI智能体时代的交互标准,共同构建出多AI智能体生态的核心框架。☆

一、MCP协议

01什么是MCP?

由Anthropic于2024年11月推出的开源协议,旨在标准化大型语言模型(LLM)与外部工具、数据源的交互方式。

MCP类似于“AI领域的USB接口”,允许模型通过统一的协议访问数据库、API、本地文件系统等资源,无需为每个工具单独开发接口。例如,开发者可配置MCP服务器,让AI直接查询数据库或发送邮件。

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协议

01Agent2Agent协议是什么?

Agent2Agent协议(A2A)是一种开放协议,它为智能体提供了一种相互协作的标准方式,而不受底层框架或供应商的影响。由Google于2025年4月8日推出,旨在解决不同AI智能体之间的互操作性问题,得到了50多个技术合作伙伴的支持和贡献,包括Atlassian、Langchain、MongoDB、PayPal、Salesforce等。

A2A通过标准化通信格式、身份认证和任务协调机制,使得来自不同厂商或框架的智能体(如客服Agent与日程管理Agent)能够无缝协作。例如,用户可通过A2A协议让一个智能体将任务(如“安排会议”)委托给另一个智能体,并实时追踪进度。

A2A协议有三个核心参与者:

User

Client

Remote Agent(Server)

User存在于协议中,主要的作用是用于 认证&授权 。Client 代表用户向不透明智能体请求操作的实体(服务、智能体、应用程序),即任务的发起者。Remote Agent 指的是任务的执行者。

Client 和 Server 之间的通信,可以理解为就是一个个简单的请求和结果的响应,只不过这个请求是一个个的任务。一个 Agent(智能体) 既可以是 Client 也可以是 Server。

02A2A的设计原则

设计人员建议应用程序将 A2A 智能体建模为 MCP 资源(由其 AgentCard 表示)。这样,框架就可以使用 A2A 与用户、远程智能体以及其他智能体进行通信。

设计原则:

拥抱代理能力:A2A 致力于使智能体能够以自然、非结构化的模式进行协作,即使它们不共享内存、工具和上下文。我们正在实现真正的多智能体场景,而不将智能体局限于单一的“工具”。

基于现有标准:该协议建立在现有的流行标准之上,包括 HTTP、SSE、JSON-RPC,这意味着它更容易与企业日常使用的现有技术栈集成。

默认安全:A2A 旨在支持企业级身份验证和授权,在启动时与 OpenAPI 的身份验证方案相同。

支持长时间运行的任务:在设计 A2A 时就考虑了灵活性,并支持各种场景,使其能够出色地完成各种任务,从快速任务到深度研究,这些任务可能需要数小时甚至数天的时间(如果人工参与)。在此过程中,A2A 可以为用户提供实时反馈、通知和状态更新。

与模态无关:智能体世界不仅限于文本,这就是我们设计 A2A 来支持各种模态(包括音频和视频流)的原因。

03A2A的工作原理

A2A 促进“客户端”智能体与“远程”智能体之间的通信。客户端智能体负责制定和传达任务,而远程智能体负责执行这些任务,以提供正确的信息或采取正确的行动。

核心功能:

能力发现: 智能体可以使用 JSON 格式的“智能体卡片”来宣传其能力,从而允许客户端代理识别能够执行任务的最佳智能体并利用 A2A 与远程智能体进行通信。

任务和状态管理: 客户端与远程智能体之间的通信以任务完成为导向,智能体负责执行最终用户的请求。此“任务”对象由协议定义,并具有生命周期。它可以立即完成,或者对于长时间运行的任务,每个智能体可以进行通信,彼此保持同步,了解任务的最新完成状态。

协作: 智能体可以互相发送消息来传达上下文、回复、工件或用户指令。

用户体验协商: 每条消息包含“Parts”,即完整形成的内容片段,例如生成的图像。每个Part都有指定的内容类型,允许客户端和远程智能体协商所需的正确格式,并明确包含对用户 UI 功能(例如:iframe、视频、Web 表单等)的协商。

04实际案例:候选人招聘

通过 A2A 协作,招聘软件工程师的过程可以显著简化。在 Agentspace 这样的统一界面中,用户(例如:招聘经理)可以委托其智能体寻找符合职位列表、工作地点和技能要求的候选人。然后,智能体会与其他专业智能体互动,以寻找潜在候选人。

用户收到这些建议后,可以指示其智能体安排进一步的面试,从而简化候选人寻找流程。面试流程完成后,可以联系另一位智能体协助进行背景调查。这只是 AI 智能体如何跨系统协作以寻找合格候选人的一个例子。

05未来憧憬

A2A 有望开启智能体互操作的新时代,促进创新,并创建更强大、更灵活的智能体系统。我们相信,该协议将为未来铺平道路,使智能体能够无缝协作,解决复杂问题,改善我们的生活。

三、MCP与A2A协议的关系

01通俗解释

假设有一家汽车修理店,该店雇佣了一些自主操作的工人,他们使用专用工具(例如千斤顶、万用表和套筒扳手)来诊断和维修车辆故障。这些工人经常需要诊断和修复他们从未见过的问题,维修过程可能需要与客户进行深入交流、进行研究,并与零件供应商合作。

将汽修店员工建模为 AI 智能体:

MCP 是将这些智能体与其结构化工具(比如:千斤顶)连接起来的协议。

A2A 是另一种协议,允许这些智能体(比如:用户、其他供应商与汽修店员工)之间进行沟通协作。

A2A与MCP分别代表了AI智能体生态的“横向协作”与“纵向扩展”。

MCP解决的是“如何让AI智能体使用工具”,而A2A解决的是“如何让多个AI智能体协作完成任务”。

这两者的结合将推动AI智能体从孤立的功能模块进化为动态协作的专业团队,为复杂的任务(如自动化供应链、跨学科研究)提供技术基础,极大限度地释放AI智能体的潜力。

 

 
   
167 次浏览       9
相关文章

基于图卷积网络的图深度学习
自动驾驶中的3D目标检测
工业机器人控制系统架构介绍
项目实战:如何构建知识图谱
 
相关文档

5G人工智能物联网的典型应用
深度学习在自动驾驶中的应用
图神经网络在交叉学科领域的应用研究
无人机系统原理
相关课程

人工智能、机器学习&TensorFlow
机器人软件开发技术
人工智能,机器学习和深度学习
图像处理算法方法与实践

最新活动计划
DeepSeek大模型应用开发 6-12[厦门]
人工智能.机器学习TensorFlow 6-22[北京]
基于 UML 和EA进行分析设计 6-23[北京]
嵌入式软件架构-高级实践 7-9[北京]
用户体验、易用性测试与评估 7-25[西安]
图数据库与知识图谱 8-23[北京]
 
 
最新文章
AIGC技术与应用全解析
详解知识图谱的构建全流程
大模型升级与设计之道
自动驾驶和辅助驾驶系统
ROS机器人操作系统底层原理
最新课程
人工智能,机器学习和深度学习
人工智能与机器学习应用实战
人工智能-图像处理和识别
人工智能、机器学习& TensorFlow+Keras框架实践
人工智能+Python+大数据
成功案例
某综合性科研机构 人工智能与机器学习
某银行 人工智能+Python+大数据
北京 人工智能、机器学习& TensorFlow
某领先数字地图提供商 Python数据分析
中国移动 人工智能、机器学习和深度学习