项目简介

AutoA2A是一个命令行工具,可以帮助开发者快速生成将现有AI代理(如基于CrewAI, LangGraph, Llama Index, OpenAI Agents SDK, Pydantic AI等主流框架构建的代理)包装成符合Google A2A协议的服务器所需的样板代码。这些生成的服务器可以作为特定类型的MCP服务器,专注于提供代理/工具执行能力,并与支持A2A协议的LLM客户端进行交互。

主要功能点

  • 代码生成: 根据指定的主流AI代理框架,一键生成服务器所需的 'agent.py', 'taskmanager.py', 'run_a2a.py' 等基础文件。
  • 协议封装: 自动化处理A2A协议的通信细节,使开发者能够专注于核心代理逻辑的实现。
  • 任务管理: 提供任务生命周期管理、请求验证、输入映射等功能。
  • 流式支持: 支持代理输出的流式传输,提供更实时的用户体验。
  • 推送通知: 支持通过Webhook接收任务状态更新的推送通知。
  • 框架兼容: 提供多种常见AI代理框架的适配模板,简化集成过程。

安装步骤

  1. 确保你的系统已安装 Python 3.12 或更高版本。
  2. 克隆仓库:
    git clone https://github.com/NapthaAI/autoa2a
  3. 进入仓库目录:
    cd autoa2a
  4. 安装 AutoA2A 工具:
    pip install -e .
    或者使用 'uv' (推荐,如果已安装):
    uv venv
    source .venv/bin/activate
    uv sync

服务器配置 (供MCP客户端参考)

AutoA2A生成的服务器是独立的进程。MCP客户端需要知道如何启动并连接到这个服务器。以下是MCP客户端可能需要配置的服务器启动信息示例 (具体格式取决于客户端实现,通常是JSON):

{
  "server_name": "你自定义的代理服务器名称", // 显示给用户的服务器名称
  "command": "uv",                        // 启动服务器的命令
  "args": ["run", "serve_a2a"],           // 命令参数,通常是运行生成的 serve_a2a 脚本
  "cwd": "/path/to/your/agent/project"    // 包含生成文件的代理项目目录的绝对路径
  // 可能还有其他连接相关的配置,由客户端定义
}

客户端将使用这些信息来启动你的代理服务器进程,并通过标准输入/输出来进行通信(这是A2A/MCP的一种常见传输协议)。

基本使用方法

  1. 进入你的代理项目目录: 导航到你已经构建好的AI代理代码所在的目录。
    cd your-project-directory
  2. 初始化A2A服务器代码: 运行 'autoa2a init' 命令,指定你的代理使用的框架。例如,如果你的代理基于 CrewAI:
    autoa2a init --framework crewai
    这会在当前目录下生成 'run_a2a.py', 'agent.py', 'taskmanager.py' 等文件。
  3. 集成你的代理逻辑: 编辑生成的 'agent.py' 和 'taskmanager.py' 文件。根据文件中的 TODO 注释,完成以下操作:
    • 在 'agent.py' 中导入并实例化你的实际代理类。
    • 根据你的代理输入需求,修改 'agent.py' 中的 'TaskInput' Pydantic 模型。
    • 在 'agent.py' 的 'A2AWrapperAgent' 类的 'invoke' 和 'stream' 方法中,调用你的代理的相应方法来处理输入并返回结果。
    • 在 'taskmanager.py' 的 '_get_user_query' 方法中,将接收到的客户端输入映射到你的 'TaskInput' 格式。
  4. 配置服务器元信息: 编辑 'run_a2a.py' 文件,更新 'AgentCard' 和 'AgentSkill' 中的名称、描述、标签、示例等信息,这些信息将提供给客户端显示。
  5. 安装依赖: 确保你的代理项目所需的所有依赖(包括你使用的AI代理框架、模型库、工具等)都已经安装在当前环境中。
  6. 运行服务器: 使用 'uv run' 命令启动服务器(需要 'uv' 工具,如果使用 'pip' 安装,请查看 README 中的 'pyproject.toml' 配置说明)。
    uv run serve_a2a
    服务器启动后,日志会显示监听的地址和端口。你的MCP客户端可以连接到此进程进行交互。

信息

分类

AI与计算