近期,关注AI行业动向的朋友们或许会注意到一个明显的趋势:基础模型训练领域正日益形成寡头垄断局面,而AI应用创新的前景依然广阔,令人兴奋的新型AI应用层出不穷。一个完整的AI应用系统通常包含三个主要角色:用户、AI Agent和外部工具,而AI交互系统的核心之一便是如何解决这三者之间的有效沟通问题。
本文将介绍Agent框架中的三个主流协议,包括MCP协议——用于解决AI Agent与外部工具之间的交互问题;A2A协议——专注于解决不同Agent之间的通信问题;AG-UI协议——旨在规范AI Agent与前端应用的交互。随着AI应用的飞速发展,AI相关的标准和协议逐渐进入公众视野,本文将重点探讨这些协议的背景、实现方式以及实际应用。
MCP,全称Model Context Protocol(模型上下文协议),是由Claude的母公司Anthropic在2024年11月开源发布的。MCP开源项目的Star数自今年3月以来急剧增长,显示了其快速发展的趋势。3月27日,OpenAI宣布在Agent SDK中支持MCP协议,4月4日,谷歌也在Gemini的官方API文档中加入了MCP使用示例,三大海外AI巨头纷纷拥抱这一协议。
MCP协议的出现与Function Calling的使用密切相关。2023年6月,OpenAI首次在GPT-4-0613和GPT-3.5-turbo-0613模型中引入了Function Calling功能,赋予AI Agent执行特定任务的能力。借助这一功能,模型能够根据上下文理解并执行一些特定的操作,如查询天气、检索知识库信息、执行数学计算等。随后,谷歌和Anthropic也陆续为自己的模型提供了Function Calling能力。然而,不同厂商在Function Calling的接口、格式和细节上存在一定差异,导致开发者在集成不同模型时面临巨大的适配工作量。因此,MCP协议作为一个通用标准应运而生,旨在为模型提供一种规范化的方式来管理和利用上下文,并为外部工具、服务和数据提供统一的交互协议。可以将MCP视作一个简化外部设备适配的“USB-C接口”,AI模型通过它能够轻松连接各种数据源和工具。
需要指出的是,虽然MCP协议支持的模型通常都需要具备Function Calling能力,但Function Calling并非实现MCP的唯一方式。只要模型能理解并生成结构化的调用协议(如JSON-RPC、gRPC或RESTful API等),也能够实现MCP的功能。Function Calling是当前最主流且推荐的实现MCP的方式。
开发者可以通过三个简单步骤快速体验MCP服务:
1. 配置好所需工具。
2. 在Cursor中选择Agent模式。
3. 通过自然语言进行本地文件操作。对于与文件系统相关的查询,Agent会自动调用MCP Server工具,如create_directory、write_file、search_files等。
目前,有大量的MCP Server服务可供使用,诸如Git、Playwright、Times等热门工具。此外,国内各大互联网公司也推出了自己的MCP Server,例如支付宝、高德地图、阿里云无影AgentBay、12306等。例如,在无影AgentBay中,用户只需申请API Key并按照官网指导配置MCP Server,即可通过自然语言操作云电脑,支持Linux、Windows、Android及浏览器等多种镜像环境。
随着MCP生态的快速扩展,多个MCP集散地,如mcp.so和smithery.ai,已经发布了数千个MCP Server。MCP协议使得外部工具的接入变得“即插即用”,大大减少了开发者的重复劳动,AI应用开发者可以选择使用开源的MCP Server,或根据需要自定义自己的MCP Server。
2025年3月,MCP的热潮尚未消退,谷歌紧随其后推出了MCP的补充协议——A2A(Agent2Agent协议)。尽管A2A与MCP都通过标准化和开放的方式解决了AI系统中不同模块之间的集成和互动问题,但二者的目标和作用有所不同。MCP侧重于解决AI Agent与外部工具或数据的集成问题,而A2A则旨在促进不同独立Agent之间的通信与协作,帮助不同生态系统中的Agent进行有效的沟通。
举个例子,在我的微信朋友圈中有一位“黄牛总代”,他们通过与各领域“黄牛”合作,利用专用手段满足用户需求。例如,抢演唱会门票、预约医院热门号、代排灵隐寺月饼等。各个领域的“黄牛”便是Agent,而MCP则是连接这些Agent与其工具(如抢票脚本)的协议;而A2A协议则是“黄牛总代Agent”与其他“黄牛Agent”之间的合作协议,例如“我要一张周杰伦演唱会的票”。基于A2A协议,Agent间可以进行双向通信,不断调整计划,最终实现用户的需求。
A2A协议是一个开放协议,主要解决Agent间在用户和企业交互中的通信难题。其核心包含三个要素:User(用户,负责认证与授权),Client Agent(任务发起者)和Server Agent(任务执行者)。Client和Server之间的通信是基于任务粒度进行的,每个Agent既可以是Client,也可以是Server。A2A的工作流程如下:
值得注意的是,多Agent系统(MAS,Multi-Agent System)是Agent系统未来发展的趋势,它能够更好地处理复杂问题、分布式任务和模拟社会系统。在MAS系统中,每个Agent专注于单一领域,工具数量较少,但团队协作需要推理支持,当前成功率约为50%。例如,在股票分析团队中,一个Agent专注于数据分析,另一个Agent提供股票操作建议。然而,2025年多Agent系统仍处于不成熟阶段,业内对于单Agent与多Agent的选择仍有较大争议,MAS系统设计复杂,行为难以预测与控制,因此,A2A协议的普及速度远不及MCP。
2025年5月,AG-UI(Agent-User Interaction Protocol,智能体用户交互协议)由CopilotKit团队发起并开源,旨在解决AI Agent与前端应用之间的交互标准化问题。它通过一个轻量级、事件驱动的协议,提供了AI Agent与用户界面的实时双向通信功能。AG-UI协议的出现,主要是为了规范智能体与前端应用之间的交互,确保流式处理、状态管理、工具集成、错误处理和可扩展性。
目前,AG-UI协议已推出Python和TypeScript SDK,并且我亲自测试过其在服务端和客户端交互中的应用。以Python为例,使用ag-ui-protocol包中的相关功能即可生成AG-UI协议事件,而无需手动编写JSON。通过AG-UI协议,开发者能够快速实现前后端应用的交互。
综上所述,这三个协议共同构成了Agent系统框架的基础设施:MCP协议让Agent拥有“手脚”,A2A协议赋予Agent“协作伙伴”,而AG-UI协议则提供了“入口”,帮助Agent实现实际应用。这些协议不仅促进了Agent系统从单Agent到多Agent的进化,也大大提升了底层能力和上层用户体验,为AI应用的创新和跨界合作提供了无限可能。