递归语言模型服务器

一个容器化的MCP服务器,为AI助手提供递归语言模型功能,允许通过编程方式探索大型上下文而非直接加载到上下文窗口中。

  • by wgthomas
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 wgthomas/rlm-mcp-server

使用说明

RLM MCP服务器

“企业计算机和文化思维之间的区别在于,思维并不试图将一切都保持在即时意识中——它知道如何有效地探索庞大的数据存储。”

一个容器化的MCP(模型上下文协议)服务器,提供 递归语言模型 任何AI助手的能力。

什么是RLM?

根据论文 “递归语言模型” 来自麻省理工学院CSAIL的RLM将大型上下文视为 外部环境 这可以通过编程方式进行探索,而不是塞进上下文窗口。

RLM不是将500页的文档塞进上下文中,而是教模型编写Python代码来探索文档——搜索、解析、计数、提取——迭代地建立理解,直到它能够回答你的问题。

快速开始

使用Docker Compose(推荐)

# Clone and enter directory
cd rlm-mcp-server

# With OpenAI
OPENAI_API_KEY=sk-xxx docker compose up

# With local llama.cpp server (running on port 8080)
RLM_API_BASE=http://host.docker.internal:8080/v1 docker compose up

# With Ollama
RLM_API_BASE=http://host.docker.internal:11434/v1 RLM_MODEL=llama3.2 docker compose up

直接使用Docker

# Build
docker build -t rlm-mcp-server .

# Run with OpenAI
docker run -e OPENAI_API_KEY=sk-xxx -p 8765:8765 rlm-mcp-server

# Run with local LLM
docker run \
  -e RLM_API_BASE=http://host.docker.internal:8080/v1 \
  --add-host host.docker.internal:host-gateway \
  -p 8765:8765 \
  rlm-mcp-server

与Claude Desktop集成

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "rlm": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "--network", "host",
        "-e", "OPENAI_API_KEY",
        "rlm-mcp-server",
        "python", "src/server.py", "--transport", "stdio"
      ],
      "env": {
        "OPENAI_API_KEY": "your-key-here"
      }
    }
  }
}

看 examples/ 更多配置选项,包括本地LLM设置。

可用工具

会话管理

工具 说明
rlm_load_context 将文本内容加载到会话中
rlm_load_file 将文件加载到会话中
rlm_list_sessions 列出活动会话
rlm_close_session 关闭会话以释放内存

询问

工具 说明
rlm_query 问一个关于加载上下文的问题(迭代探索)
rlm_quick_query 一键:在一次调用中加载和查询
rlm_execute_code 直接针对上下文执行Python(高级用户)

配置

工具 说明
rlm_config 查看当前服务器配置

使用示例

加载并查询大型文档

Human: Load this 200-page PDF transcript and find all mentions of "quarterly revenue"

Claude: I'll use RLM to explore this large document.

[Uses rlm_load_context to load the document]
[Uses rlm_query with question "Find all mentions of quarterly revenue with surrounding context"]

Based on exploring the document, I found 47 mentions of quarterly revenue...

分析代码库

Human: Here's our entire codebase (500 files). What authentication methods are used?

Claude: I'll load this into RLM and explore it programmatically.

[Uses rlm_load_context with the codebase]
[Uses rlm_query to explore authentication patterns]

After exploring the codebase, I found three authentication methods:
1. JWT tokens in /api/auth/...
2. OAuth2 in /integrations/...
3. API keys in /external/...

环境变量

变量 默认值 描述
RLM_MODEL gpt-4o-mini RLM的主要模型
RLM_SUB_MODEL 与RLM_MODEL 迭代模型相同(可能更便宜)
RLM_MAX_ITERATIONS 15 最大探索迭代次数
RLM_API_BASE OpenAI API端点(适用于本地模型)
RLM_API_KEY / OPENAI_API_KEY - API密钥
RLM_SUB_API_BASE 与RLM_API_BASE相同 子模型的独立端点

成本优化

您可以使用更便宜的/局部模型进行迭代探索,同时使用更强大的模型进行初始化:

RLM_MODEL=gpt-4o \
RLM_SUB_MODEL=gpt-4o-mini \
docker compose up

或者完全使用局部模型进行迭代:

RLM_MODEL=gpt-4o \
RLM_SUB_MODEL=local-model \
RLM_SUB_API_BASE=http://host.docker.internal:8080/v1 \
docker compose up

运作原理

  1. 加载上下文:您的大量文档/代码库存储在会话中
  2. 问题:你问了一个关于内容的问题
  3. 探索LLM编写Python代码来探索上下文
  4. 迭代:代码执行,LLM查看结果,编写更多代码
  5. 回答:自信时,法学硕士提供最终答案

REPL环境可以访问:

  • CONTEXT -满载的文本
  • re -正则表达式模块
  • json -JSON模块
  • Counter, defaultdict -来自收藏
  • 标准Python内置

建筑

┌─────────────────────────────────────────────────────────┐
│                    Claude Desktop                        │
│                         or                               │
│                    Any MCP Client                        │
└────────────────────────┬────────────────────────────────┘
                         │ MCP Protocol
                         ▼
┌─────────────────────────────────────────────────────────┐
│                   RLM MCP Server                         │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐  │
│  │   Sessions   │  │   RLM Core   │  │  REPL Env    │  │
│  │   Storage    │  │   Engine     │  │  (Python)    │  │
│  └──────────────┘  └──────────────┘  └──────────────┘  │
└────────────────────────┬────────────────────────────────┘
                         │ OpenAI-compatible API
                         ▼
┌─────────────────────────────────────────────────────────┐
│           LLM Backend (OpenAI / Local / Ollama)          │
└─────────────────────────────────────────────────────────┘

发展

# Install dependencies
pip install -r requirements.txt

# Run locally (stdio mode for testing)
cd src && python server.py --transport stdio

# Run tests
pytest tests/

转移到离线实验室(Mojoverse)

  1. 在Cybertron上建立形象:

    docker save rlm-mcp-server:latest | gzip > rlm-mcp-server.tar.gz
    
  2. 通过您常用的方法转移到Mojoverse

  3. Mojoverse上的负载:

    gunzip -c rlm-mcp-server.tar.gz | docker load
    
  4. 使用本地L4动力llama.cpp运行:

    RLM_API_BASE=http://localhost:8080/v1 docker compose up
    

参考文献

许可证

麻省理工学院