项目简介

Enso Labs Orchestra 是一个强大的后端服务,旨在为可组合的 AI 智能体提供基础 API 基础设施。它利用 LangGraph 框架,并基于 Model Context Protocol (MCP) 和 Agent-to-Agent (A2A) 协议构建。Orchestra 帮助 LLM 客户端以标准化的方式访问资源、调用工具和管理会话,为构建安全、可扩展的 AI 应用提供了核心上下文服务。

主要功能点

  • AI 代理编排: 管理和协调 LangGraph 驱动的 AI 智能体,使其能够组合和执行复杂任务。
  • 上下文服务: 提供标准化的接口,向 LLM 客户端提供资源、工具和 Prompt 模板等上下文信息。
  • 工具集成: 支持集成多种外部工具,包括自定义 API (通过 OpenAPI)、Arcade.dev 工具、Web 搜索、Shell 命令执行等,扩展 AI 智能体的能力。
  • 会话管理: 维护和管理与 LLM 客户端的交互会话,支持持久化对话历史和任务状态。
  • 数据存储: 提供用户管理、设置管理、代理配置和修订版本控制等数据库功能。
  • 流式传输支持: 支持通过 Server-Sent Events (SSE) 进行任务状态和结果的实时流式传输。
  • 代理能力发现: 通过 '/.well-known/agent.json' 端点提供代理能力卡片,便于其他 A2A 客户端发现和集成。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/enso-labs/orchestra.git
    cd orchestra
  2. 安装 Docker: 确保您的系统已安装 Docker。
  3. 配置环境变量:
    • 在项目根目录下的 'backend' 文件夹中创建 '.env' 文件 (可从 '.example.env' 复制)。
    • 根据需要配置您的 API 密钥,例如 'OPENAI_API_KEY'、'ANTHROPIC_API_KEY' 等。
  4. 启动数据库服务:
    cd <项目根目录>
    docker compose up postgres pgadmin -d
  5. 设置服务器环境:
    • 进入 'backend' 目录:'cd backend'
    • 创建并激活 Python 虚拟环境(推荐使用 uv):'uv venv' 和 'source .venv/bin/activate'
    • 安装依赖:'uv sync'
    • 运行开发服务器:'bash scripts/dev.sh' (提示时选择 "no")
  6. (可选)设置客户端环境: 如果您需要运行前端界面。
    • 进入 'frontend' 目录:'cd frontend'
    • 安装依赖:'npm install'
    • 运行开发服务器:'npm run dev'

服务器配置(MCP客户端使用)

MCP 客户端需要配置 Orchestra 服务器的访问信息才能与其建立连接。以下是 JSON 格式的配置示例:

{
  "enso_orchestra": {
    "transport": "sse",
    "url": "http://<您的服务器IP或域名>:8000/api/llm/stream",
    "headers": {
      "Authorization": "Bearer <您的认证Token>"
    },
    "description": "连接到 Enso Labs Orchestra 服务器以获取智能体编排服务和工具访问。",
    "stream_mode": "values"
  }
}
  • 'enso_orchestra': 服务器的标识名称,您可以自定义。
  • 'transport': 通信协议,Orchestra 服务器支持 'sse' (Server-Sent Events) 用于流式传输。
  • 'url': Orchestra 服务器的流式 API 端点。默认情况下是 'http://<您的服务器IP或域名>:8000/api/llm/stream'。请将 '<您的服务器IP或域名>' 替换为实际的 IP 地址或域名。
  • 'headers.Authorization': 如果服务器需要认证,请提供一个有效的 Bearer Token。
  • 'description': 对该 MCP 服务器的简要描述。
  • 'stream_mode': 指定数据流的模式,例如 'values'、'messages'、'updates'、'debug'、'tasks' 等,用于控制接收的数据格式。

基本使用方法

一旦服务器启动,您可以通过其 API 端点与之交互。例如,使用 'http://<您的服务器IP或域名>:8000/api' 访问 FastAPI 自动生成的 API 文档。您可以使用 API 文档测试不同的功能,例如发送 LLM 请求、管理工具或配置代理。

信息

分类

AI与计算