项目简介

Etienne旨在将Anthropic的Claude Code 2.0 Agent转化为一个功能完备的AI助手平台,支持非交互模式运行。它通过一个Node.js/Nest.js后端和React/Vite前端,提供会话管理、长期记忆、预算控制、调度、子Agent、安全防护等多种高级功能。同时,它内嵌了一个Model Context Protocol (MCP) 服务器,用于向AI Agent客户端提供自定义工具。

主要功能点

  • 无头Claude Agent: 在非交互模式下运行Claude Code,支持多租户场景下的虚拟协作。
  • 上下文与工具管理: 托管和管理资源、定义和渲染Prompt模板,并注册和执行自定义工具。
  • 会话与记忆: 提供多会话管理、自动总结,并利用GPT模型实现长期记忆的提取与检索。
  • 任务调度: 基于cron表达式自动触发Claude Code执行预定义任务。
  • 安全与控制: 包含输入/输出安全防护(Guardrails)、权限控制,以及对Agent运行轮次和成本的预算监控。
  • 可观测性: 实时跟踪和记录Agent的工具调用、事件和输出。
  • MCP服务器内嵌: 提供符合Model Context Protocol (MCP) 标准的API接口,允许外部LLM客户端调用其托管的自定义工具。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/BulloRosso/etienne.git
    cd etienne
  2. 配置环境变量: 在 'backend' 目录下创建 '.env' 文件,并根据您的AI提供商(如Anthropic或OpenAI)配置API Key。例如:
    # Anthropic API Key (用于直接调用Claude API)
    ANTHROPIC_API_KEY=sk-ant-api03-...AA
    
    # OpenAI 配置 (当aiModel=openai时通过自定义代理使用)
    # Claude Code 调用我们的代理在端口6060,代理再转发到OpenAI API
    ANTHROPIC_MODEL=gpt-4o-mini
    ANTHROPIC_BASE_URL=http://host.docker.internal:6060/api/modelproxy
    ANTHROPIC_AUTH_TOKEN=sk-ant-api03-...AA # 可与ANTHROPIC_API_KEY相同,或设为OPENAI_API_KEY
    
    # OpenAI API 设置 (代理服务调用OpenAI时使用)
    OPENAI_API_KEY=sk-proj-...MsA
    OPENAI_BASE_URL=https://api.openai.com/v1
    
    # 记忆管理配置
    MEMORY_MANAGEMENT_URL=http://localhost:6060/api/memories
    MEMORY_DECAY_DAYS=6
    WORKSPACE_ROOT=C:/Data/GitHub/claude-multitenant/workspace # 您的项目工作区根目录
    
    # 预算控制配置
    COSTS_CURRENCY_UNIT=EUR
    COSTS_PER_MIO_INPUT_TOKENS=3.0
    COSTS_PER_MIO_OUTPUT_TOKENS=15.0
  3. 安装Claude Code 2.0 Docker容器: 确保名为 'claude-code' 的Docker容器正在运行,其中已安装Python和Claude Code 2.0。仓库中包含Dockerfile(位于 'docs/images/Dockerfile' 附近,但在仓库根目录的 'docs' 文件夹中通常不会放置Dockerfile,可能需要您自行构建或查找正确的Dockerfile位置)可供参考。容器应在您启动Etienne服务时保持运行。
  4. 启动后端服务:
    cd backend
    npm i
    npm run dev
    后端服务将运行在 'http://localhost:6060'。
  5. 启动前端服务:
    cd frontend
    npm i
    npm run dev
    前端服务将运行在 'http://localhost:5000'。
  6. 访问应用: 在浏览器中打开 'http://localhost:5000'。

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

Etienne内嵌了一个MCP服务器功能,允许其他符合MCP标准的客户端发现和调用Etienne提供的自定义工具。MCP客户端需要以下信息才能连接到Etienne的MCP服务器:

  • 服务器名称 (Server Name): petstore-mcp-server
  • 传输协议 (Transport Protocol):
    • HTTP/SSE: 推荐使用此方式。
    • URL: 'http://localhost:6060/mcp' (适用于支持'mcp-session-id'头的HTTP/SSE流式传输)
    • 替代URL: 'http://localhost:6060/sse' (兼容旧版本SSE客户端)
  • 认证信息 (Authentication):
    • 类型: Bearer Token
    • Token: 'test123'
  • 可用工具 (Available Tools) 示例: Etienne当前托管的工具包括:
    • 'get_current_week_promotions': 用于获取宠物店本周促销产品信息。
      • 描述: 从合法的宠物店库存系统获取本周促销的宠物产品。可以按宠物类别(猫、狗、鸟)和价格范围进行筛选。
      • 输入参数:
        • 'category' (字符串, 必填): 宠物产品类别,可选值:'cats', 'dogs', 'birds'。
        • 'max_price' (整数, 可选): 最高价格(欧元),用于筛选结果。
  • MCP客户端请求示例(获取工具列表): MCP客户端可以向 '/mcp' 或 '/sse' 端点发送JSON-RPC请求来获取服务器上所有可用的工具列表。客户端需在 'Authorization' 请求头中包含 'Bearer test123' 进行认证。
    {
      "jsonrpc": "2.0",
      "id": "1",
      "method": "tools/list",
      "params": {}
    }
    客户端也可以直接调用工具,例如:
    {
      "jsonrpc": "2.0",
      "id": "2",
      "method": "tools/call",
      "params": {
        "name": "get_current_week_promotions",
        "arguments": {
          "category": "dogs",
          "max_price": 50
        }
      }
    }

基本使用方法

  1. 项目管理: 在Etienne的Web界面中,您可以选择或创建一个项目。每个项目都拥有独立的工作区和配置。
  2. 定义策略: 在“策略”区域(通常是项目根目录下的 'CLAUDE.md' 文件),您可以定义AI Agent的角色、行为和任务指令。
  3. 与Agent交互: 通过聊天界面输入您的Prompt。Agent将根据您的指令、定义的策略和可用的工具进行思考和操作。
  4. 文件与代码操作: Agent可以读取、写入和编辑项目工作区内的文件。您可以在“文件系统”界面查看和管理这些文件,甚至可以实时预览HTML文件。
  5. 高级功能:
    • 记忆: Agent会自动提取对话中的事实并存储为长期记忆,以便在后续会话中参考。
    • 调度: 在“调度”功能中设置定时任务,让Agent在指定时间自动执行某些Prompt。
    • 预算监控: 跟踪Agent运行的成本。
    • Guardrails: 配置输入和输出安全防护,检测和处理敏感信息或不当内容。

信息

分类

AI与计算