项目简介
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) 提供代理执行跟踪和日志。
安装步骤
- 克隆仓库:
git clone https://github.com/EvolutionAPI/evo-ai.git cd evo-ai - 安装依赖: 确保已安装 Python 3.10+, PostgreSQL, Redis 和 Git。然后创建并激活虚拟环境,安装项目依赖:
make venv source venv/bin/activate # Linux/Mac # 或 venv\Scripts\activate # Windows pip install -e . # 或 make install - 配置环境: 复制 '.env.example' 为 '.env',并根据您的环境修改配置,特别是数据库连接字符串、Redis 配置、JWT 密钥、API Key 加密密钥以及SendGrid(可选)。
cp .env.example .env # 编辑 .env 文件 - 数据库初始化: 初始化并运行数据库迁移。
make alembic-upgrade - 填充初始数据: 运行 Seeder 填充管理员、示例客户端和 MCP 服务器等数据。
make seed-all - (可选)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)与该代理进行交互,例如发送任务、获取任务状态等。
基本使用方法
- 运行服务器: 在项目根目录执行:
API 将默认运行在 'http://localhost:8000'。make run # 开发模式,带自动重载 # 或 make run-prod # 生产模式,带多进程 - 访问API文档: 打开浏览器访问 'http://localhost:8000/docs' 或 'http://localhost:8000/redoc' 查看交互式API文档。
- 创建用户/客户端: 通过 '/api/v1/auth/register' 注册普通用户,或作为管理员通过 '/api/v1/clients' 创建客户端及关联用户。
- 获取JWT Token: 使用 '/api/v1/auth/login' 端点,通过邮箱和密码登录获取 JWT Token。
- 创建和配置代理: 使用 '/api/v1/agents' 端点创建不同类型的代理,配置其模型、指令、关联的 API Key、MCP 服务器、自定义工具或子代理。
- 客户端连接: 对于支持 A2A/MCP 协议的外部客户端,使用上述“服务器配置”部分描述的方式连接到 Evo AI 的特定代理 A2A 端点进行交互。
- 通过API调用代理: 使用 '/api/v1/chat' 端点通过 POST 请求调用 LLM 或组合代理执行任务(此端点支持 JWT 或代理 API Key 认证)。
信息
分类
AI与计算