使用说明

项目简介

本模板是一个基于 Python FastAPI 框架构建的 Agent2Agent (A2A) 协议服务器的初始框架。它旨在帮助开发者快速搭建符合 A2A 协议规范的智能体服务后端,并可以作为构建 MCP 服务器的基础。虽然模板本身不直接实现所有 MCP 的核心功能,但它提供了服务器端的基本结构和协议处理能力,为开发者提供了便捷的开发起点。开发者可以基于此模板扩展资源管理、工具注册、Prompt 模板等 MCP 核心功能,以构建完整的 MCP 服务器。

主要功能点

  • A2A 协议兼容: 基于 FastAPI 框架,实现了 A2A 协议的基本框架,可以处理 A2A 协议的 HTTP 请求。
  • 会话管理: 具备基础的会话管理能力,可以维护客户端的会话状态。
  • 响应处理: 结构化的响应处理,符合 A2A 协议的要求。
  • FastAPI 框架: 使用流行的 FastAPI 框架,易于开发和扩展,并自带 OpenAPI 文档。
  • 模板化: 作为一个模板项目,方便开发者快速开始构建自己的 Agent 服务后端。

注意: 本模板 并非开箱即用的 MCP 服务器,而是一个 构建 A2A 服务器的起点。开发者需要根据自身需求,基于此模板扩展实现 MCP 服务器所需的资源管理、工具注册、Prompt 模板等核心功能。

安装步骤

  1. 环境准备: 确保已安装 Python 3.8+ 和 pip。
  2. 克隆仓库: 将 'Awesome-Agent2Agent' 仓库克隆到本地。
  3. 进入模板目录: 导航到 'agent_api_template/python/fastapi_a2a_template' 目录。
  4. 安装依赖: 在模板目录下运行命令安装项目依赖:
    pip install -r requirements.txt

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令和参数才能连接。对于本模板,服务器配置信息(JSON 格式)如下:

{
  "server name": "FastAPIA2AAgentServer",
  "command": "uvicorn",
  "args": [
    "app:app",
    "--reload",
    "--host",
    "0.0.0.0",
    "--port",
    "8000"
  ],
  "description": "FastAPI A2A Agent 服务模板服务器,使用 uvicorn 启动,监听 8000 端口。"
}

参数注释:

  • server name: 服务器名称,可以自定义。
  • command: 启动服务器的命令,这里使用 'uvicorn' (FastAPI 推荐的 ASGI 服务器)。
  • args: 启动命令的参数列表:
    • 'app:app': 指定 FastAPI 应用实例的位置 ('app.py' 文件中的 'app' 变量)。
    • '--reload': 开启热重载模式,方便开发调试,修改代码后服务器自动重启。生产环境建议移除
    • '--host 0.0.0.0': 监听所有网络接口,允许从外部访问服务器。
    • '--port 8000': 指定服务器监听端口为 8000。
  • description: 服务器描述信息,可以自定义。

注意: '--reload' 参数仅用于开发环境,生产环境请移除,并考虑使用更稳定的 ASGI 服务器配置。实际部署时,可能需要根据具体环境调整端口和 host 设置。

基本使用方法

  1. 启动服务器: 在 'agent_api_template/python/fastapi_a2a_template' 目录下,运行以下命令启动服务器:
    uvicorn app:app --reload --host 0.0.0.0 --port 8000
    服务器成功启动后,会显示类似 "Uvicorn running on http://0.0.0.0:8000" 的信息。
  2. 访问 API 文档: 打开浏览器,访问 'http://localhost:8000/docs' 或 'http://0.0.0.0:8000/docs',即可查看由 FastAPI 自动生成的 OpenAPI 文档,了解可用的 API 接口。
  3. 开发 Agent 功能: 开发者需要根据自身需求,修改 'app.py' 和 'router' 目录下的代码,实现具体的 Agent 功能,例如资源管理、工具调用、Prompt 模板等。
  4. 连接 MCP 客户端: 配置 MCP 客户端,使用上述提供的服务器配置信息,即可连接到基于此模板构建的 Agent 服务。

后续开发: 开发者可以参考 A2A 协议文档和 FastAPI 官方文档,继续完善和扩展模板的功能,例如:

  • 实现具体的 A2A 协议接口。
  • 添加资源管理功能,例如文件读取、数据库访问等。
  • 集成工具调用能力,允许 Agent 调用外部 API 或服务。
  • 设计和实现 Prompt 模板,支持定制化的 LLM 交互模式。
  • 完善会话管理和安全机制。

信息

分类

开发者工具