← LeisureLinux 文章索引
LeisureLinux · 微信公众号文章

Prime Agent 入驻 SuperQode:继 RLM Code 之后第二个基于 RLM 的编程 Harness

AI/Agent 阅读原文(微信)↗

RLM 把「上下文」当成 REPL 里的一个变量,让模型写代码去查、去筛、去递归求解——这是它和普通 Agent 最本质的区别 。——FreeLamp.com 译

Prime Intellect 发布了 Prime Agent,一个面向编程工作流和长时自主任务的 Agent,底层基于 递归语言模型(RLM) 。SuperQode 通过 Agent 客户端协议(ACP)接入 Prime Agent,提供了一个 `:prime` 命令面板,覆盖模型、递归深度、目标、自主门控,以及 Agent 的后台服务。

Prime Agent 是 SuperQode 支持的 第二个 RLM harness 。第一个是 RLM Code——它在 2026 年 2 月发布,是史上第一个基于 RLM 的编程 Agent。这篇讲清楚:RLM 是什么、RLM Code 提供了什么、Prime Agent 做了哪些不一样的事、集成怎么搭的、现在还差在哪。

一个关键分工:Prime Agent 自己管自己的凭据、模型目录、执行内核和递归;SuperQode 提供的是 连接、命令面板和策略上下文 。

本文看点

01

RLM:上下文变成变量

02

RLM Code vs Prime Agent

03

集成细节与还差的缺口

01

WHAT IS RLM

什么是递归语言模型(RLM)

给模型塞大输入的传统做法,是把输入直接放进 prompt。当输入是一个代码仓库、一周的日志、或几十万 token 的转录时,这条路就走不通了——你为模型基本不看的 token 付了钱, 能留给关键部分的注意力反而变少 。

RLM 的思路(出自 2025 年的论文)把这个安排反了过来:上下文不放进 prompt,而是作为 Python REPL 里的一个变量 保存起来。模型拿到的是关于这个变量的元数据(长度和一小段预览),然后写代码去探查它——切块、过滤、搜索、总结选中的部分。某个子问题需要语言模型时,代码递归地去调用一个。

结果就是 Agent 的四个性质变了:上下文从「要花掉的预算」变成「要被查询的数据」;模型的主要动作从「选工具」变成「写代码」;递归成了自然操作;输出变得无界,因为 结果存在变量里而不是回复里 。

RLM 可以用在大代码库上,作者团队在 AI Engineer World's Fair 上做过一次在线分享。

02

RLM CODE

SuperQode 与 RLM Code

RLM Code 始于 2026 年 2 月,比 Prime Agent 早了大约六个月。它直接实现了论文里的语义:上下文作为 REPL 变量、只有元数据的根观测、用      llm_query()       做递归调用、用      FINAL()       /      FINAL_VAR()       结束。
HarnessSpec

 runtime:

  backend: rlm-code

  config:

   rlm_code:

    profile: lid

有三个特性对后面的对比很重要。

上下文留在窗口外

用三个 profile 控制严格程度: reference (完整历史、不做分解)、 repo_evidence (根观测压到元数据)、 lid (根观测不透明、历史卸载到 history_N 变量,根模型被完全禁止累积上下文)。

沙箱化执行

策略层在 monty / docker / apple_container / command / local 间选择。其中 monty 是用 Rust 写的 Python 解释器:无文件系统、无网络、无 import、无 eval/exec,时间和内存由虚拟机限制,执行状态可冻结成字节再恢复。在这里递归边界和沙箱边界是 同一条线 。

天生被度量

奖励 profile 给每个动作打分;轨迹相似度指标(归一化 Levenshtein 距离、trigram 包含、trigram Jaccard、长度比)用来比较 harness 自身。RLM Code 是一台仪器,它要回答的问题是——「这个 harness 泛化了吗」 。

除 RLM Code 之外,SuperQode 一直有自己的递归工具 context_handle 和 spawn_harness ,在它自己的 Agent 循环里把大工件留在 prompt 之外。

03

PRIME AGENT

Prime Agent 是什么

Prime Intellect 最近发布 Prime Agent,MIT 许可、面向生产。它用了同一个核心思路,但一路上做了不同的工程决策。

持久化的 IPython 内核是暴露给模型的 唯一工具 。文件、shell 命令、技能、子 Agent,统统通过写 Python 来访问。大多数编程 Agent 提供的独立 read / grep / edit 工具被去掉了。

RLM Code 的递归是从代码里调用一个模型,Prime Agent 则直接派生整个 Agent:

handle = await rlm.run(\"review the auth module for injection risks\")

这个调用在子 Agent 被接纳后立刻返回。子 Agent 是后台服务里的一个 完整 Agent 会话 ,有自己的模型和会话目录,在派生的回合结束后通过 agent 消息回报。运行中的子 Agent 可以被列出、删除。

Prime Agent 还维护着一个「持续 harness」:prompt、记忆、技能、子 Agent 定义都放在一个结构里,Agent 在会话期间创建、更新、删除它们,带版本化条目和记录的 refine 事件。 Agent 在运行时会重写自己的操作指令。

Prime Agent 是一个 TypeScript monorepo,同时分发 Python 包 prime-agent-runtime ,它跑在 IPython 内核里而不是宿主机上。

04

DIFFERENCES

两个 harness 的差异

「RLM Code 把递归当作有界、可评分、沙箱化的计算;Prime Agent 把递归当作 带可变状态的实时进程编排 。」

1

RLM Code 作为 Python 包在进程内运行;Prime Agent 作为独立 TypeScript 进程运行,里面挂一个 IPython 内核。

2

RLM Code 用深度、分支宽度、每步子数约束递归,在子线程池里同步执行;Prime Agent 派生活的子 Agent 会话,可寻址、可丢弃、消息通信。

3

RLM Code 把上下文彻底留在窗口外;Prime Agent 正常接纳上下文,越过阈值再压缩。

4

RLM Code 默认沙箱;Prime Agent默认不沙箱。

5

RLM Code 运行时从不改自己,改进留给外层循环;Prime Agent在会话中编辑自己的 harness 状态。

6

RLM Code 产出可回放、可评分的轨迹,但不流式;Prime Agent 通过 ACP实时流式。

一句话:一个预防上下文压力,另一个吸收上下文压力;一个报告「harness 是否泛化」,另一个报告「会话里发生了什么」。两者都合理,谁也不能替代谁。

05

INTEGRATION

集成是怎么做的

Prime Agent 原生说 ACP,SuperQode 早就有 ACP 客户端,所以集成很小,大部分工作在找两个世界观不一致的地方。

连接只花了一个文件

SuperQode 的 Agent 目录是 TOML,Prime Agent 的条目就一个文件:

identity = \"primeintellect.ai\"

name = \"Prime Agent\"

short_name = \"prime-agent\"

protocol = \"acp\"

type = \"coding\"

tags = [\"open-source\", \"coding\", \"acp\", \"rlm\"]

run_command.\"*\" = \"prime-agent --mode acp\"

在写任何集成代码之前,SuperQode 就用现有 ACP 客户端驱动了 Prime Agent,直接可用。Prime Agent 报 loadSession: false ,SuperQode 靠这个能力 gate 会话恢复,正确回退到全新会话。Prime Agent 还出现在 :connect 的 Subscriptions 组里,挨着 Codex、Cursor、Muse Code、Grok。

模型选择没法走协议

ACP 选模型的方法是 session/set_model + 广告的 availableModels 列表。但对运行中的 Prime Agent 做能力探测,返回的是空的:

ACP probe

 available models : []

 config options   : []

 available modes  : []

Prime Agent 什么都不广告,因为模型在进程启动时就固定了。所以 :prime model 不能切换活会话。SuperQode 改为把选择 pin 住,下次启动时作为 \——provider 和 \——model 参数应用。模型目录从 prime-agent model list 读取——这里有个怪癖:它把表格打印到 stderr 而不是 stdout(stdout 留给协议输出),第一版解析只读 stdout,一个模型都没找到。

RLM 控制是启动时设置

/goal、/autonomous、/rlm-max-depth 是会话内部命令,从进程外看根本不是命令。目标和 autonomous 模式可以作启动 flag;递归深度连 flag 都没有,从 RLM_MAX_DEPTH 环境变量读。SuperQode 把三个都 pin 住,启动时应用:

:prime depth 3

:prime goal \"get the release green\"

:prime autonomous \"pytest -q\"

:prime connect

depth 需要给 ACP 客户端加个按连接的 env 覆盖(不碰 SuperQode 自己的环境),还得进缓存 key。 :prime depth 0 直接关掉递归——allowRecursion 的计算是 depth \< maxDepth ,为 0 时子 Agent 指令从系统 prompt 里整个删掉。

观察递归

后台服务给每个会话报告 runtime 类型和 RLM 深度, :prime agents 能渲染出活的递归树:

main          running  active

└─ reviewer    running  idle    depth 1

└─ test-runner running  idle    depth 1

1 root, 2 RLM subagent(s)

使用它

Prime Agent 自己管凭据,SuperQode 不碰 Prime Intellect 的认证、不复制 token。 :prime login 把终端交给 Prime Agent 自己登录:

curl -fsSL https://app.primeintellect.ai/prime-agent/install.sh | sh

prime-agent

# then run /login

     订阅登录支持 ChatGPT Plus/Pro、Claude Pro/Max、GitHub Copilot;API key 支持 Anthropic、OpenAI、Google、Groq、OpenRouter 等。本地模型走      \~/.prime/agent/models.json      ,Ollama / LM Studio / vLLM 无需 API key 或网络就能跑:

                 json

{

 \"providers\": {

  \"ollama\": {

   \"baseUrl\": \"http://localhost:11434/v1\",

   \"api\": \"openai-completions\",

   \"apiKey\": \"ollama\",

   \"compat\": { \"supportsDeveloperRole\": false },

   \"models\": [{ \"id\": \"qwen3.5:9b\" }]

  }

 }

}

apiKey 是格式必填、被 Ollama 忽略;supportsDeveloperRole 设 false 是给拒绝 developer 角色的服务器用的。集成期间端到端验证了「SuperQode 驱动的 RLM 编程 Agent 完全跑在本地模型上、 零成本 」,推翻了「Prime Agent 不能离线」的假设。

prime 命令面板

1

:prime connect [model] 连接 Prime Agent

2

:prime models [search] 从目录选模型

3

:prime model \<provider/id> 直接指定模型

4

:prime local 注册本地模型服务器

5

:prime depth [n] 下次启动的递归深度

6

:prime goal [text] 设定持久目标

7

:prime autonomous [gate] 自主模式与完成门控

8

:prime agents / schedule / packages 会话树、定时、能力包

9

:prime status / doctor / update / login 状态、健康检查、更新、登录

06

RPC COMING

还差什么:RPC 即将到来

Prime Agent 的 IPython 内核以启动它的用户权限运行,不发 ACP 权限请求,所以 SuperQode 的审批提示在这条路上永不出现——一个 Prime Agent 会话等价于 直接跑 Python 和 shell 命令 。不可信的仓库需要外部隔离(容器或专用 worktree)。这和默认沙箱的 RLM Code 形成最鲜明的对比。

Prime Agent 不通过 ACP 发 token 用量,所以会话在 SuperQode 里没有 token 和成本统计——这些数据在 RPC 传输里有,但 SuperQode 还不支持 RPC。ACP 模式一个进程一个会话,并行工作要并行进程;会话恢复也不可用(loadSession: false)。

Prime Agent 没有 login 子命令,/login 只在交互终端里。所以 :prime login 只能挂起 SuperQode、把终端交出去。

/refine、/compact、/heartbeat 这些会话内命令在 ACP 上够不着,而且失败是静默的。你把它们当 prompt 发出去不报错,文字会到模型,一个有能力的大模型会「演」得好像命令已经跑了——集成期间用 /context 观察到了这个失败模式,它返回的是模型编造的、看似合理的会话摘要,而不是命令的真实输出。 这个坑值得记录,因为它伪装成成功。

07

PYTHON SDK

值得补的缺口:Python host SDK

官方 host SDK 是 TypeScript 包里的      createAgentSession()      ;它分发的 Python 包      prime-agent-runtime       是内核侧客户端,不是 host SDK,目前不存在 Python host client。

Prime Agent 刻意暴露 ACP、RPC、JSON 三种模式用于嵌入。RPC 模式才带着正经使用需要的面:refine(带回滚)、compact(带自定义指令压缩)、get_session_stats(token 成本)、observe(子会话实时观测)、heartbeat 和 schedule。每一个都能被任何能说「管道上的 newline-delimited JSON」的语言调用。

纯 Python 重写 Prime Agent 的 RLM 引擎是场跑不赢的军备竞赛;一个 typed 异步 Python client 通过 RPC 驱动已发布的二进制,是有界的工作、有现成的消费者:

async with PrimeSession(model=\"ollama/qwen3.5:9b\") as session:

  await session.prompt(\"port the auth module to the new API\")

  result = await session.refine(instructions=\"...\")

  stats = await session.get_session_stats()

Prime Agent 会 refine 自己的 harness,但从不评估这次 refine;RLM Code 提供整套评估装置,却不做自我改进;SuperQode 握着晋升门控。Prime Agent 提议、RLM Code 度量、SuperQode 门控——这个循环任何单一项目都搭不起来。

THREE ROUTES

RLM 正在进入编程 Agent:三条路线

SuperQode 现在跑三条 RLM 路线:需要封闭、可度量的运行,用 RLM Code;需要长时间一直跑,用 Prime Agent;工作属于 SuperQode 自己的循环、必须本地离线,用递归工具。

「RLM Code 是仪器,Prime Agent 是引擎,递归工具是本地工作台。把三者放在同一个 HarnessSpec、同一个策略层、同一个证据模型下,才是 把 harness 当工程产物而非要锁定的产品 。」

TRANSLATED FROM

翻译自:Prime Agent in SuperQode: Second RLM based coding harness after RLM Code

**原文链接**https://medium.com/@shashikant.jagtap/prime-agent-in-superqode-second-rlm-based-coding-harness-after-rlm-code-b903f8839014

END

本文由 FreeLamp.com 译,专注 AI 与底层技术架构的深度观察。

如果你觉得今天这篇有收获,欢迎 点赞、在看、转发 三连,我们下篇见。

解构 Agent 自我演化底座:DeepSeek Harness (Cordis) 与 Prime-Agent 的架构级深度比对 当 Agent 成为主力:Optiver 如何重新设计软件开发生命周期 Amazon Bedrock AgentCore 深度解析:AWS 的生产级 AI Agent 平台 10 个能够助你从Claude Code新手进阶为专家的 GitHub 核心仓库

本文整理自微信公众号 LeisureLinux 的原创内容(Linux / AI / 安全 硬核技术)。

· 阅读原文(微信公众号)

· 关注公众号 LeisureLinux,第一时间获取技术深度内容。

LeisureLinux 公众号二维码(微信扫一扫关注)