项目简介
该框架提供了一个构建符合Google Agent-to-Agent (A2A) 协议的智能体后端解决方案。它通过集成Model Context Protocol (MCP),使得智能体能够方便地访问外部数据源和功能(工具)。该项目旨在帮助开发者构建可互操作的单智能体和多智能体系统,提供了完整的后端(Python)和前端(Node.js)示例,是一个功能丰富且可用于生产环境的框架。
主要功能点
- 与Google A2A协议完全兼容: 严格遵循官方A2A规范构建。
- 通过MCP协议调用外部工具和服务: 智能体后端作为MCP客户端,能无缝集成和调用各种外部工具(如搜索、RAG等)。
- 支持单智能体和多智能体协作模式: 支持构建独立的智能体,也能通过协调Agent实现多智能体协作完成复杂任务。
- 提供后端服务器和前端界面(示例): 包含开箱即用的后端服务和用于单/多智能体交互的前端界面示例。
- 灵活集成多种大型语言模型 (LLM): 支持配置和使用多种主流LLM,包括OpenAI、DeepSeek、Anthropic、Ollama等。
安装步骤
-
安装前置依赖:
- 确保您的系统已安装 Python 3.10 或更高版本。
- 确保您的系统已安装 Node.js 16 或更高版本。
- 确保您已安装 Python 包管理器 pip 和 Node.js 包管理器 npm。
-
克隆仓库:
git clone https://github.com/johnson7788/A2AServer.git -
安装后端依赖:
cd A2AServer/backend/A2AServer pip install . -
安装前端依赖 (如果需要运行前端示例):
- 单智能体前端:
cd ../../frontend/single_agent npm install - 多智能体前端:
cd ../../frontend/multiagent_front npm install
- 单智能体前端:
MCP工具配置示例 (供Agent作为MCP客户端时参考)
本框架中的智能体后端通过读取MCP配置文件(如 'mcp_config.json')来发现和连接外部的MCP工具服务器。以下是MCP配置文件中用于定义工具服务器的示例格式:
{ "mcpServers": { "SearchToolServer": { // 工具服务器的内部名称,Agent会使用此前缀区分工具 "command": ["python", "mcpserver/search_tool.py"], // 启动该工具服务器进程的命令 "args": [], // 传递给启动命令的参数 "env": {} // 启动进程所需的环境变量(如API Key),通常从.env加载 }, "RAGToolServer": { "command": ["python", "mcpserver/rag_tool.py"], "args": [], "env": {} } // ... 可以配置其他 MCP 工具服务器 }, "models": [ // ... LLM 模型配置 ] }
注意:此配置定义了Agent(作为MCP客户端)如何连接并启动其所依赖的外部MCP工具服务器。用户自己的MCP客户端通常只需配置Agent服务器本身的URL(例如 'http://localhost:10004'),并通过Agent调用这些工具。
基本使用方法
-
启动一个示例Agent服务器: 选择一个示例Agent(如 'DeepSearch' 或 'AgentRAG'),进入其目录并运行主脚本:
# 启动DeepSearch Agent (默认端口 10004) cd A2AServer/backend/DeepSearch python main.py --port 10004或
# 启动AgentRAG Agent (默认端口 10005) cd A2AServer/backend/AgentRAG python main.py --port 10005确保Agent所依赖的MCP工具(如 'search_tool.py' 或 'rag_tool.py')已根据Agent目录下的'mcp_config.json'配置并能正常启动。
-
与Agent服务器交互:
- 使用提供的Python客户端:
打开一个新的终端,进入'backend'目录,并运行客户端脚本,指定Agent的URL:
您可以输入文本与Agent进行问答交互。cd A2AServer/backend python client.py --agent http://localhost:10004 - 使用前端界面示例:
如果安装了前端依赖,进入相应的'frontend'目录,启动开发服务器:
在浏览器中打开提示的URL,添加Agent地址(如 'localhost:10004'),即可通过图形界面与Agent交互。# 例如启动单智能体前端 cd A2AServer/frontend/single_agent npm run dev
- 使用提供的Python客户端:
打开一个新的终端,进入'backend'目录,并运行客户端脚本,指定Agent的URL:
信息
分类
AI与计算