引言

在构建智能代理系统时,如何高效地集成上下文信息并实现代理之间的协同?本文将围绕 A2A (Agent2Agent) 协议和 MCP (Model Context Protocol),带你快速上手 DeepSearch 和 AgentRAG 示例,并讲解如何自定义开发基于 A2A 和 MCP 的工具。


一、核心概念

1. 什么是 MCP?

Model Context Protocol (MCP) 是一个开放协议,旨在标准化应用程序向大型语言模型(LLM)提供上下文的方式。它类似于 AI 应用中的 USB-C 接口,为不同数据源和工具接入 LLM 提供统一标准。主要特点:

  • 标准化上下文提供:结构化定义如何将文件、数据库、API 等数据源和工具以统一格式接入模型。
  • 灵活架构:采用客户端-主机-服务器模式,支持多实例并发,适用单/多代理场景。
  • 安全隔离:在不同安全域内按需开放工具能力,防止数据泄露。

MCP 让 AI 应用更易扩展、更安全、更可维护。

2. 什么是 A2A?

Agent2Agent (A2A) 是 Google 提出的代理互操作协议,支持不同 AI 代理之间的多模态通信能力发现安全隔离。核心特性:

  • 多模态通信:支持文本、结构化表格、文件、图片等多种数据形式。
  • 能力发现与协商:通过 Agent Card(JSON 格式)发布和查询代理能力。
  • 安全隔离:代理无需共享内部逻辑,只需开放交互接口。

A2A 适合构建复杂的多代理系统,实现跨平台、跨厂商协同。

3. 优缺点分析

特性 优点 缺点
灵活性 相比固定工作流(如 Dify、Coze),A2A+MCP 更加灵活,可随需扩展工具。 对普通用户而言,自定义 MCP 和 Agent 实现门槛较高。
多模态 支持文本、表格、图片等多种数据形式交互。 当代理数据量巨大,工作流会变复杂,可能需要强化学习或微调。
安全性 代理间安全隔离,不暴露内部实现,保障 IP 和隐私。 需额外配置安全策略,增加运维成本。

二、快速上手示例

下面以项目中提供的 DeepSearchAgentRAG 两个示例为基础,演示如何使用 A2A + MCP 搭建单/多代理系统。

1. 准备工作

  1. 克隆示例仓库:
 git clone https://github.com/johnson7788/A2AServer.git 
  1. 安装依赖库:
cd A2AServer/backend/A2AServer && pip install .   

2. 单代理:AgentRAG

  1. 启动 AgentRAG 服务:
cd backend/AgentRAGpython main.py --port 10005 

\2. 在 mcp_config.json 中,你已看到集成了多个 MCP 工具:

{  "mcpServers": {    "RAGTool": {      "command": "uv",      "args": [        "run",        "--with",        "fastmcp",        "fastmcp",        "run",        "mcpserver/rag_tool.py"      ]    }    }  }} 

\3. 启动前端:

 cd frontend/single_agent  npm run dev

\4. 打开浏览器,输入 http://localhost:5173(默认端口,请查看你启动的端口),添加 Agent 地址 http://localhost:10005,开始问答。

在这里插入图片描述

在这里插入图片描述

### 3. 多代理:DeepSearch + AgentRAG

  1. 启动 DeepSearch 服务:
cd backend/DeepSearchpython main.py --port 10004 

\2. 启动 AgentRAG 服务(同上)。

cd backend/AgentRAGpython main.py --port 10005 

\3. 启动 HostAgent 协调器:

 cd backend/hostAgentAPI pip install -r requirements.txt python api.py 

\4. 启动多代理前端:

cd frontend/multiagent_frontnpm run dev 

\5. 在浏览器中打开前端,添加两个代理地址,输入问题即可体验代理协作流程。

\6. 多Agent的调用流程图。

在这里插入图片描述

多Agent UI:

  1. 主页(方便学习和管理Agent,可以查看Agent的交互流程)

图片

2.添加Agent

图片

添加Agent完成的效果

在这里插入图片描述

添加Agent时的效果

\3. 对话,对话时自动委派Agent到对应功能的agent上

图片

问题和Agent的委派流程

\4. 最终的答案效果(中间过程可以隐藏,也可以流式的输出)


三、自定义开发 A2A + MCP 工具

如果你需要在现有框架下创建新的代理或工具,下面是完整指南:

1. 复制模板目录

cp -r backend/DeepSearch backend/MyCustomAgent

目录结构:

MyCustomAgent├── .env                # 存储模型 API Key├── main.py             # A2A 服务器启动脚本├── mcp_config.json     # MCP 工具配置├── mcpserver/          # 自定义 MCP 工具目录│   └── my_tool.py      # 自定义脚本└── prompt.txt          # Agent 提示文件

如何创建新的 Agent, A2AServer

本教程将指导你如何在现有 AgentRAG 系统中创建一个新的智能 Agent,包括 prompt 编写、MCP 配置和 A2A Server 启动步骤。

第一步:创建1个项目的目录AgentRAG

mkdir AgentRAG

✏️ 第二步:定义 Agent 的 Prompt

编辑或创建 prompt.txt 文件,内容描述 Agent 的角色与工作流程

你是一名擅长复杂问题解答的智能助手。你可以调用检索工具来获取参考内容,并基于检索到的高质量信息回答用户的问题。请遵循以下步骤完成任务:理解用户提出的问题,并根据需要进行分解或重构;使用检索工具查找相关资料,可以进行多次检索,直到找到充分且相关的参考内容;结合检索结果,用自己的语言给出准确、清晰、可靠的答案;如找不到明确答案,也应诚实说明并给出你的分析或建议。

第三步: 创建 mcpserver 目录(如果需要自定义MCP工具,你也可以使用其它已有的MCP工具)

mkdir -p mcpservertouch mcpserver/rag_tool.py

第四步:定义 MCP 工具

# @Desc  : eg: RAG检索工具import timefrom fastmcp import FastMCPmcp = FastMCP("RAG检索工具")@mcp.tool()def RAGsearch(query: str) -> str:    """    根据关键词对企业知识库进行搜索    :param query: 搜索的词语和句子    :return:    """    # 模拟搜索结果, 真实开发,需要替换成自己的向量检索结果    rag_result = """LNG 是 液化天然气 (Liquefied Natural Gas) 的英文缩写。简单来说,它就是经过冷却至零下约 162 摄氏度 (-260 华氏度) 的液态天然气。你可以把它想象成把气体“浓缩”成液体,这样做有几个重要的好处:体积大大缩小: 液化后的天然气体积只有气态时的约 1/600,这使得储存和运输更加高效和经济。便于长距离运输: 由于体积小,LNG 可以通过专门的 LNG 运输船跨洋运输到没有天然气管道连接的地方。更纯净: 在液化过程中,天然气中的杂质,如二氧化碳、硫化物和水等会被去除,使得 LNG 燃烧时更加清洁,减少污染物排放。"""    return rag_resultif __name__ == '__main__':    result = RAGsearch(query="LNG")    print(result)

第五步, 配置 MCP 工具

测试下工具,然后在配置到 mcp_config.json 中,测试命令: uv run --with fastmcp fastmcp run mcpserver/rag_tool.py 在 mcp_config.json 中,确保工具名称使用 驼峰命名:

 {  "mcpServers": {    "RAGTool": {      "command": "uv",      "args": [        "run",        "--with",        "fastmcp",        "fastmcp",        "run",        "mcpserver/rag_tool.py"      ]    }  }}

第六步:配置你的LLM,创建.env文件

#如果使用deepseek模型,python main.py --provider deepseek --model deepseek-chatDEEPSEEK_API_KEY=sk-xxxx#如果使用openai模型, python main.py --provider openai --model gpt-4oOPENAI_API_KEY=xxx

最后,启动你的Agent

python main.py --port 10006

在前端中使用

  • 在单/多代理前端中,添加地址 http://localhost:10006,即可访问新代理。

结语

本文介绍了使用 A2A 和 MCP 快速构建 DeepSearch、AgentRAG 示例,以及如何自定义开发新的工具。希望能帮助你在 AI 代理开发上事半功倍,欢迎在评论区交流与讨论!
读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
在这里插入图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
在这里插入图片描述

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐