用途:当上下文大到无法舒适放进对话窗口、且任务需要对整份内容广泛访问(逐项聚合计数、逐行标注、跨语料多跳问答、整篇摘要)时使用。若只是单次检索某文件中的一段,直接用 grep 即可,无需 rlm。
主要能力:上下文以变量形式存放在持久 Python REPL(scripts/rlm_repl.py)中,主对话只看元数据(长度、短前缀)和运行代码的截断 stdout。通过 llm_query(prompt) 或并行的 llm_query_map(prompts) 调用子模型(嵌套的无工具 claude -p)处理分片;rlm_query(context, query) 可对子上下文做递归 RLM(深度大于 1 时启用,默认深度为 1,到上限回退为 llm_query)。中间结果可写入 REPL 变量或 add_buffer,最终用 FINAL(answer) 或 FINAL_VAR(varname) 设定答案。REPL 还提供 peek、grep、chunked、chunk_indices、write_chunks 等工具,每次 exec 自动注入 context/content、llm_query、llm_query_map、rlm_query、FINAL、FINAL_VAR、peek、grep、chunked、chunk_indices、write_chunks、add_buffer、buffers,用户自定义变量在 exec 之间持久保存。
使用方式:输入需提供 context=<path>(大文件路径)和 query=<问题>;可选 sub_model(默认 haiku)、max_workers(默认 8)、max_depth(默认 1)。可用环境变量设置,如 export RLM_SUB_MODEL=haiku RLM_MAX_WORKERS=8 RLM_MAX_DEPTH=1。基本流程:初始化并只读元数据,python .claude/skills/rlm/scripts/rlm_repl.py init <context_path>;用小段代码探明格式;按格式切块并用 llm_query_map 并行处理、Python 聚合;最后计算并设定答案,python .claude/skills/rlm/scripts/rlm_repl.py final 打印存储的答案。状态保存在 .claude/rlm_state/state.pkl。
限制与要点:不要把整个上下文读入对话,不对上下文文件使用 Read 工具或 print(content);语义判断交给 LLM,计数、聚合、格式化交给 Python,避免让 LLM 做大范围算术或用关键词启发式分类;批量发起子调用(如每次 50–100 条短行),并行执行,并校验已处理数等于总数;聚合任务须覆盖整个上下文;递归 rlm_query 更慢更贵,多数任务只用 llm_query 即可。子模型复用现有登录,无需 API 密钥或 SDK。关于收费与价格,资料暂未提供。