项目简介: AgentToAgent 是一个基于 FastMCP Python 框架的示例仓库,展示了如何快速构建符合 Model Context Protocol (MCP) 标准的服务器。它旨在帮助开发者创建能够向大型语言模型 (LLMs) 提供结构化上下文信息、执行工具和管理任务的应用后端。该仓库包含了核心的MCP服务器框架实现以及多个示例代理,演示了服务器如何暴露工具和处理任务请求。
主要功能点:
- 实现了MCP协议的JSON-RPC接口,处理来自LLM客户端的任务请求(如发送任务、获取任务状态、取消任务等)。
- 支持任务生命周期管理和状态更新。
- 通过 SSE (Server-Sent Events) 支持任务执行过程中的流式输出,允许客户端实时接收状态更新和中间结果。
- 允许服务器通过'.well-known/agent.json'路径声明自身的能力(Agent Card),包括支持的输入/输出模式、技能(工具)等,便于客户端发现和理解服务器功能。
- 提供了可重用的TaskManager基类和InMemoryTaskManager实现,简化了任务状态和数据的管理。
- 集成了示例代理(如报销代理、行程代理、检索代理),展示了如何将具体的代理逻辑封装为MCP服务器暴露的能力,使LLM能够通过调用这些代理来执行复杂任务。
安装步骤:
- 确保您的系统已安装 Python 3.8 或更高版本。
- 使用 Git 克隆 AgentToAgent 仓库到您的本地机器。
- 通过命令行进入克隆的仓库目录。
- 安装项目所需的依赖库。通常您可以通过运行 'pip install -r requirements.txt' 命令来安装。如果仓库根目录没有 'requirements.txt' 文件,请根据示例代理(如 'google_adk'、'retrieve_agent'、'trip_agent')目录中的代码,手动安装其导入的依赖库,例如 'fastmcp' (可能需要从其GitHub仓库安装), 'starlette', 'uvicorn', 'pydantic', 'httpx-sse', 'httpx', 'python-dotenv', 'click', 'google-generativeai' 等。
- 根据您希望运行的示例代理,配置相应的环境变量。例如,运行依赖 Google Generative AI API 的代理可能需要设置 'GOOGLE_API_KEY' 或与 Google Cloud Vertex AI 相关的配置。具体请参考示例代理目录下的 '.env' 文件或相关文档。
服务器配置 (供MCP客户端使用): MCP客户端连接到此服务器时,需要提供服务器的启动信息。这些信息通常以 JSON 格式配置,包含服务器的名称、启动命令及其参数。以下是一个基于此仓库示例代理的配置结构描述:
- 'server name': 一个字符串,用于标识服务器的友好名称,例如 "报销代理服务器"。
- 'command': 一个字符串数组,表示启动服务器的命令行及其参数。第一个元素通常是可执行程序(如 'python'),后续元素是传递给它的参数。例如,'["python", "-m", "google_adk.main"]'。这里的 'google_adk.main' 是指仓库中某个示例代理的启动模块。
- 'args': 一个字符串数组,包含传递给 'command' 的额外命令行参数。这些参数通常用于配置服务器的网络地址和端口,例如 '["--host", "localhost", "--port", "10002"]'。客户端将连接到此地址和端口进行通信。
例如,要配置连接到运行在本地 '10002' 端口的报销代理服务器,客户端的配置中 'command' 可能设置为 '["python", "-m", "google_adk.main"]','args' 可能设置为 '["--port", "10002"]' (如果 host 默认为 localhost)。具体的启动命令和参数请参考您计划运行的示例代理目录下的 'main.py' 文件。
基本使用方法:
- 首先,在终端中启动您选择的示例 MCP 服务器。例如,要启动报销代理服务器,您可以运行 'python -m google_adk.main --port 10002'。服务器将在指定的地址和端口监听请求。
- 然后,使用一个支持 Model Context Protocol (MCP) 的客户端应用程序(例如支持MCP集成的LLM客户端、Agent Development Kit 或其他兼容工具)。
- 在客户端中配置新的MCP服务器连接,输入服务器的启动信息,包括启动命令和参数,以便客户端可以在需要时启动服务器。
- 一旦客户端连接成功,它将能够发现此服务器暴露的能力(通过获取 '.well-known/agent.json'),例如报销代理提供的处理报销请求的技能。
- 最后,通过客户端与服务器进行交互,例如向报销代理发送一个报销请求,服务器将处理该请求并通过MCP协议返回结果或流式更新。
信息
分类
AI与计算