项目简介

Evo AI 是一个强大的开源平台,旨在帮助开发者轻松构建、管理和运行AI代理。它支持与不同的语言模型集成,提供了灵活的代理类型(LLM、顺序、并行、循环、A2A、工作流),以及关键的功能,如客户端管理、API密钥安全存储、代理分组和流程编排。特别地,Evo AI 实现了 Google 的 Agent 2 Agent (A2A) 协议(该协议构建于 MCP 之上),使其自身可以作为 AI 代理服务器供兼容的客户端连接和调用。

主要功能点

  • 多类型AI代理管理: 支持 LLM、A2A、顺序、并行、循环、工作流等多种代理类型,方便构建复杂的AI应用。
  • MCP/A2A协议兼容后端: 自身暴露 A2A 协议端点,允许外部兼容的客户端(如 Google ADK)将 Evo AI 中托管的代理视为 MCP 服务器上的工具进行发现和调用。
  • 工具和MCP服务器集成: 允许代理调用预设或自定义的工具,并可连接外部 MCP 服务器以扩展功能集。
  • 安全认证: 基于 JWT 的用户认证和 API Key 的代理认证机制。
  • 数据持久化: 使用 PostgreSQL 存储代理配置、用户、客户端等数据。
  • 会话及状态管理: 利用 Redis 和 Google ADK 服务管理代理执行过程中的会话、状态和中间件。
  • 工作流编排: 支持基于 LangGraph 的复杂代理工作流定义和执行。
  • 可观测性: 集成 Langfuse (通过 OpenTelemetry) 提供代理执行跟踪和日志。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/EvolutionAPI/evo-ai.git
    cd evo-ai
  2. 安装依赖: 确保已安装 Python 3.10+, PostgreSQL, Redis 和 Git。然后创建并激活虚拟环境,安装项目依赖:
    make venv
    source venv/bin/activate  # Linux/Mac
    # 或
    venv\Scripts\activate  # Windows
    pip install -e .        # 或 make install
  3. 配置环境: 复制 '.env.example' 为 '.env',并根据您的环境修改配置,特别是数据库连接字符串、Redis 配置、JWT 密钥、API Key 加密密钥以及SendGrid(可选)。
    cp .env.example .env
    # 编辑 .env 文件
  4. 数据库初始化: 初始化并运行数据库迁移。
    make alembic-upgrade
  5. 填充初始数据: 运行 Seeder 填充管理员、示例客户端和 MCP 服务器等数据。
    make seed-all
  6. (可选)Frontend 安装: Evo AI 包含一个独立的前端项目,请参考 evo-ai-frontend 仓库的说明进行安装和运行以获得完整的Web界面。

服务器配置(供MCP客户端连接)

Evo AI 本身可以作为兼容 MCP/A2A 协议的代理服务器。要将支持该协议的客户端(如 Google ADK 构建的应用)连接到 Evo AI 并使用其中托管的代理,客户端需要配置指向 Evo AI A2A 端点的连接信息。

核心配置信息通过 JSON 结构提供给客户端,通常包含:

  • 'url': Evo AI 实例部署后暴露的 A2A 端点地址。标准格式为 'YOUR_EVO_AI_URL/api/v1/a2a/YOUR_AGENT_ID',其中 'YOUR_EVO_AI_URL' 是您的 Evo AI 后端服务可访问的基地址,'YOUR_AGENT_ID' 是您在 Evo AI 平台中创建的具体 AI 代理的唯一标识符(UUID)。
  • 'headers': 认证信息通常通过请求头传递。Evo AI 的 A2A 端点使用 'x-api-key' 作为认证头。需要包含 '"x-api-key": "YOUR_AGENT_API_KEY"',其中 'YOUR_AGENT_API_KEY' 是您在 Evo AI 平台中为该代理生成的专属 API Key。

在客户端的代码或配置中,连接到 Evo AI 上特定代理的配置可能类似(具体取决于客户端库):

{
  "url": "http://localhost:8000/api/v1/a2a/a3e7c2d1-f4b5-4a6c-9d8e-1b0c9f2e1a3d",
  "headers": {
    "x-api-key": "sk-your-agent-generated-api-key"
  }
}

客户端可以通过此配置连接,然后根据 A2A 协议标准(基于 JSON-RPC)与该代理进行交互,例如发送任务、获取任务状态等。

基本使用方法

  1. 运行服务器: 在项目根目录执行:
    make run # 开发模式,带自动重载
    # 或
    make run-prod # 生产模式,带多进程
    API 将默认运行在 'http://localhost:8000'。
  2. 访问API文档: 打开浏览器访问 'http://localhost:8000/docs' 或 'http://localhost:8000/redoc' 查看交互式API文档。
  3. 创建用户/客户端: 通过 '/api/v1/auth/register' 注册普通用户,或作为管理员通过 '/api/v1/clients' 创建客户端及关联用户。
  4. 获取JWT Token: 使用 '/api/v1/auth/login' 端点,通过邮箱和密码登录获取 JWT Token。
  5. 创建和配置代理: 使用 '/api/v1/agents' 端点创建不同类型的代理,配置其模型、指令、关联的 API Key、MCP 服务器、自定义工具或子代理。
  6. 客户端连接: 对于支持 A2A/MCP 协议的外部客户端,使用上述“服务器配置”部分描述的方式连接到 Evo AI 的特定代理 A2A 端点进行交互。
  7. 通过API调用代理: 使用 '/api/v1/chat' 端点通过 POST 请求调用 LLM 或组合代理执行任务(此端点支持 JWT 或代理 API Key 认证)。

信息

分类

AI与计算