项目简介

Recursive Companion MCP服务器是一个强大的后端应用,专为大型语言模型(LLM)客户端设计,提供智能化的内容迭代优化服务。它通过模拟人类的“草稿-批评-修订-收敛”思维循环,帮助LLM生成更高质量、更精准的输出。服务器支持多种传输协议,并提供AI友好的错误处理和会话管理,确保LLM应用能够安全、高效地获取上下文信息和调用外部功能。

主要功能点

  • 迭代优化: 实现“草稿→批评→修订→收敛”的循环过程,逐步提高生成内容的质量和准确性。
  • 增量处理: 将优化过程分解为离散步骤,避免超时,并提供进度可见性。
  • 数学收敛判断: 使用余弦相似度等方法判断内容何时达到收敛标准,自动完成优化。
  • 领域特定优化: 自动检测并优化技术、营销、策略、法律和金融等领域的内容,提供更专业的输出。
  • 并行会话管理: 支持多个并发优化会话,无需手动管理会话ID。
  • AI友好特性: 提供智能错误消息、性能提示和进度预测,帮助LLM更好地理解和使用服务。
  • 多种传输协议: 支持Stdio、HTTP和企业级的Streamable HTTP传输模式,满足不同部署需求。

安装步骤

  1. 准备环境: 确保您的系统已安装 Python 3.10+ 和 'uv' 包管理器。
  2. 克隆仓库: 打开终端,运行以下命令克隆项目:
    git clone https://github.com/democratize-technology/recursive-companion-mcp.git
    cd recursive-companion-mcp
  3. 安装依赖: 运行 'uv sync' 安装所有必要的Python库。
  4. 配置AWS: 您需要一个具备 Bedrock 访问权限的 AWS 账户。请将您的 AWS 凭证('AWS_REGION'、'AWS_ACCESS_KEY_ID'、'AWS_SECRET_ACCESS_KEY')配置为环境变量,或者通过 AWS CLI 进行配置。

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

以下是MCP客户端(如Claude Desktop)配置Recursive Companion MCP服务器的JSON格式示例。您需要将 'command' 字段指向 'run.sh' 脚本的绝对路径,并根据需要配置环境变量。

{
  "mcpServers": {
    "recursive-companion": {
      "command": "/path/to/recursive-companion-mcp/run.sh",
      "env": {
        "AWS_REGION": "us-east-1",
        "AWS_ACCESS_KEY_ID": "your-access-key", 
        "AWS_SECRET_ACCESS_KEY": "your-secret-key",
        "BEDROCK_MODEL_ID": "anthropic.claude-3-sonnet-20240229-v1:0",
        "CRITIQUE_MODEL_ID": "anthropic.claude-3-haiku-20240307-v1:0",
        "CONVERGENCE_THRESHOLD": "0.95",
        "PARALLEL_CRITIQUES": "2",
        "MAX_ITERATIONS": "5",
        "REQUEST_TIMEOUT": "600",
        "MCP_TRANSPORT": "stdio" 
      }
    }
  }
}

配置参数说明:

  • 'recursive-companion' (服务器名称): 自定义服务器名称,用于客户端识别。
  • 'command': 启动MCP服务器的脚本路径,确保 '/path/to/recursive-companion-mcp/' 替换为实际的仓库路径。
  • 'env' (环境变量):
    • 'AWS_REGION': 您使用的AWS区域,例如 'us-east-1'。
    • 'AWS_ACCESS_KEY_ID': 您的AWS访问密钥ID。
    • 'AWS_SECRET_ACCESS_KEY': 您的AWS秘密访问密钥。
    • 'BEDROCK_MODEL_ID': 用于主要内容生成的LLM模型ID,默认为 'anthropic.claude-3-sonnet-20240229-v1:0'。
    • 'CRITIQUE_MODEL_ID': 用于生成批评意见的LLM模型ID,建议使用更快更经济的模型,如 'anthropic.claude-3-haiku-20240307-v1:0'。
    • 'CONVERGENCE_THRESHOLD': 内容收敛的相似度阈值,范围通常在0.90到0.99之间,值越高要求越严格。
    • 'PARALLEL_CRITIQUES': 每轮迭代中并行生成的批评意见数量。
    • 'MAX_ITERATIONS': 最大迭代优化次数,达到此值后即使未收敛也会停止。
    • 'REQUEST_TIMEOUT': 单个LLM请求的超时时间(秒)。
    • 'MCP_TRANSPORT': MCP服务器的传输协议,默认为 'stdio'。如果配置为 'streamable_http',还需要指定 'MCP_HTTP_HOST' 和 'MCP_HTTP_PORT'。

基本使用方法

一旦服务器配置并启动,您可以通过MCP客户端调用其提供的工具。

  • 开始一个新会话: 使用 'start_refinement' 工具启动一个迭代优化会话。
    # 示例:启动一个技术领域的架构设计会话
    start_refinement(prompt="设计一个电商微服务架构", domain="technical")
  • 继续会话迭代: 使用 'continue_refinement' 工具推动会话进入下一个优化步骤(草稿、批评或修订)。
    # 示例:继续当前会话的优化过程
    continue_refinement() 
    # 每次调用都会推进一个步骤,例如:
    # 第一次调用:进行“草稿”阶段
    # 第二次调用:进行“批评”阶段
    # 第三次调用:进行“修订”阶段
  • 获取最终结果: 一旦优化完成或收敛,使用 'get_final_result' 工具获取最终答案。
    # 示例:获取指定会话的最终结果
    get_final_result(session_id="YOUR_SESSION_ID")
  • 快速一步到位优化: 对于简单的任务,可以使用 'quick_refine' 工具自动处理,直到收敛或超时。
    # 示例:快速优化一个API设计说明,最多等待90秒
    quick_refine(prompt="解释安全API设计的关键原则", max_wait=90)
  • 查看会话状态: 使用 'get_refinement_status' 查看特定会话的当前进度。
    # 示例:查看某个会话的状态
    get_refinement_status(session_id="YOUR_SESSION_ID")
  • 列出所有活跃会话: 使用 'list_refinement_sessions' 查看所有正在进行或已完成的会话。
    list_refinement_sessions()
  • 中止会话: 如果需要提前停止,'abort_refinement' 将返回当前为止的最佳结果。
    abort_refinement(session_id="YOUR_SESSION_ID")

信息

分类

AI与计算