Prime Agent:一个自我改进的 RLM 智能体
今天,我们正式发布 Prime Agent——一个围绕两大抽象概念设计的自我改进型编码框架(harness):递归语言模型(RLM)[引用] 和持续框架(Continual Harness)[引用]。现代框架设计是基于前几代模型的能力构建的,它们并未反映当前前沿模型的实际能力:固定的工具调用模式和上下文压缩迫使模型绕着自己的脚手架工作,而不是利用它。静态的、手工设计的子智能体、提示词、技能和记忆在设计时一次性设定,永远不会根据智能体在运行过程中学到的东西进行调整。我们认为,框架应该基于当前模型能力进行外推,迈向下一代的推理模式前沿。
Prime Agent 正是围绕这一原则构建的,其核心是两个主要抽象:
- 递归语言模型(RLM)将上下文视为变量,将子智能体委派视为 REPL 内部的函数调用。持久化的 REPL 让模型可以通过编程方式访问其历史记录、子智能体和工具,使其能够将语言模型程序作为对其自身上下文的操作来编写。这种设计让智能体能够处理任意长度的会话,而不会丢失存储在变量中的过往信息。
- 持续框架(Continual Harness)将框架自身的状态——抽象为提示词、技能、记忆和子智能体——视为智能体可以从自身轨迹中创建、读取、更新和删除(CRUD)的对象。当与智能体间的通信结合时,这一机制能够实现跨子智能体、甚至跨 Prime Agent 会话的编排。例如,Prime Agent 可以生成持久化的子智能体,在轨迹的后续阶段向它们发送消息,并直接与另一个 Prime Agent 会话通信。
这些抽象对于引导模型能力非常强大。Prime Agent 被设计为既能作为通用编码助手高效工作,也能作为长周期自主评估的默认运行时,还能作为研究和自动研究(autoresearch)的协作者。
Prime Agent 完全开源,可通过以下方式安装:
curl -fsSL https://app.primeintellect.ai/prime-agent/install.sh | sh

Prime Agent
智能体框架(agent harness)的性能既取决于框架本身的设计,也取决于围绕该框架训练的模型能力。我们将 Prime Agent 设计为可立即与当前主流的开源和闭源前沿模型配合使用,同时提供一套功能集,我们预计随着新一代模型围绕它进行训练,这些功能将带来进一步的性能提升。
从核心来看,Prime Agent 围绕程序化工具调用和子智能体调用进行设计。Prime Agent 中的模型使用一个持久的 IPython 内核作为其唯一工具。其他标准框架功能以内核中的函数形式被调用,包括子智能体——每个子智能体都实现为另一个 prime-agent 实例。
Prime Agent 的架构

后台守护进程与智能体视图。默认视图是一个文本用户界面(TUI),与其他编码智能体框架类似。默认情况下,智能体执行的 IPython 操作会被精简显示以保持简洁,但也可以展开查看框架执行的具体操作。在 REPL 中启动的子智能体也可以在用户聊天框下方访问。

Prime Agent 运行一个后台守护进程,通过本地套接字持有所有活跃的智能体会话。你可以随时挂接(attach)或脱离(detach)会话,而不影响底层的智能体循环。每个根会话树都在一个可恢复的工作进程中运行;如果某个工作进程崩溃,守护进程会从会话 JSONL 和内核状态快照中恢复它。
智能体视图允许你查看并从守护进程中选择其他活跃会话。在空提示词状态下按左箭头键(←)即可打开该视图,它会列出当前正在运行的会话、守护进程仍处于活跃状态的空闲会话,以及当前未加载到内存中的非活跃会话。这些聊天中的任何一个都可以立即进入并与之交互,按空格键则允许用户与处于任何状态的会话进行聊天,包括引导和排队提示词以及诸如 /compact 之类的命令。
Agents 视图被构建为智能体与子智能体之间的中心连接点,并且是递归式的。任何智能体都可以在 Agents 视图中被发现。用户从 Agents 视图进入某个智能体的对话,然后进入其子智能体的 Agents 视图,再进入子智能体的对话,以此类推。
由于子智能体与根智能体共享相同的“运行-空闲-不活跃”状态机,它们可以在不活跃 30 分钟后从内存中移除,而当用户或某个智能体一提到它们中的任何一个,它们就会从磁盘重新加载。在高度嵌套的对话中,这可以节省大量内存。

会话与上下文管理。智能体的整个会话历史以仅追加的 JSONL 文件形式存储在磁盘上。每一行都是一个 JSON 条目,可以包含消息、模型切换、压缩摘要或扩展条目。分支、分叉和克隆都通过移动叶子指针在同一文件中完成。完整历史始终可以通过 /tree 恢复。
当上下文达到阈值时,或由智能体在 REPL 中直接通过 compact.run() 触发压缩。压缩主要用于清理智能体的主上下文,但完整历史(包括过去的压缩记录)在需要时可以通过 IPython 内核以编程方式访问。
REPL 的引入需要额外的工作来管理 IPython 状态。我们异步地同时压缩和清理内核,并使用一个派生的智能体充当垃圾回收器。这对于避免每个智能体的 REPL 内存累积是必要的。
RLM 与编程式工具调用(PTC)
Prime Agent 依赖 IPython 内核作为其 REPL,该内核在整个会话期间持续存在,并且可以在每一轮中调用。初始化时,内核会预导入每个技能/工具作为模块,包括用于递归编程式子智能体调用的 rlm。
rlm 是一个异步函数,这意味着模型可以在代码中自由调用和并行化子智能体调用。派生一个子智能体(例如 await rlm("sub-task"))会启动一个完整的会话,该会话拥有自己的模型、IPython 内核、会话树和对话历史。它会立即返回,因为智能体之间的所有后续通信都通过 agent_message.send(...) 工具进行。
Prime Agent 可以选择以这种方式启动多种有用的原语,例如并行扇出子智能体,或启动后台任务。
auth = await rlm("Summarize the authentication flow in auth/. Reply to me when done.", name="auth-expert")
api = await rlm("Summarize the updated HTTP API layer in src/. Reply to me when done.", name="http-expert")
await agent_message.send(
"Also cover middleware error handling.",
receiver_role="child",
receiver_name=api.name,
)
随着模型不断改进,围绕工具调用和子智能体的新调用模式将会涌现。我们预计未来几代模型将更少依赖手把手的提示词,而更多依赖这种直接、程序化的控制方式。
编排与多智能体通信
后台守护进程管理所有活动的 Prime Agent 会话。Prime Agent 还通过该守护进程支持智能体间(A2A)消息传递,让任何 Prime Agent 会话都可以使用与持久化子智能体消息传递相同的机制,向任何其他 Prime Agent 会话发送消息。这使得编排变得容易,可以管理子智能体群的进度,并直接在受影响的智能体之间就共享资源进行通信。为防止独立会话之间出现不良通信,Prime Agent 中的多智能体通信仅限于其核心家族范围,即父进程、兄弟进程或子进程。
handle = await rlm("Find what's wrong in this auth-flow. Reply to me with your findings.", name="auth-reviewer")
children = await rlm.list_subagents()
auth_child = next(c for c in children if c.session_name == "auth-reviewer")
await agent_message.send(
"Follow up: identify the main edge cases and any likely bugs.",
receiver_role="child",
receiver_name=auth_child.session_name,
mode="follow_up",
)
Prime Agent 通过其 RLM 原生运行时支持持久化子智能体,这意味着子智能体自身的会话目录、上下文、IPython 内核和会话历史即使在初始子智能体调用结束后也会持续存在。Prime Agent 可以通过访问其唯一会话标识符,全部从其 IPython 内核中发送进一步消息,以继续持久化子智能体。
通过持续化 Harness 实现自我改进
Prime Agent 的 harness 状态以 rlm.harness 的形式存在于持久化 IPython 内核中,智能体可在任务进行中随时读取和调用,并且每次更改也会写入磁盘,因此它能在多轮对话和多个会话之间持续存在。持续化 Harness 将该状态形式化为提示词、子智能体、技能和记忆,并基于智能体自身的轨迹在线优化,无需重置。
这四个组件各自暴露相同的创建、读取、更新、删除接口。create_prompt_note(...)、create_memory(...)、create_skill(...) 和 create_subagent(...) 各自添加一条对应类型的条目,update_X(...) 和 delete_X(...) 与之对应,而 list(kind) 或 get(kind, id) 则用于读回这些条目。技能遵循同样的接口:编写一个基于 Python 的技能就是一次携带 SKILL.md 风格引用的 create_skill(...) 调用,与添加一条记忆或提示词笔记是相同的操作。
rlm.harness.create_memory("flaky test pattern", "retry three times before failing")
rlm.harness.create_skill("retry helper", "...", reference={"type": "python", "import": "retry_helper"})
rlm.harness.list("memory")
rlm.harness.get("skill", "retry_helper")
/refine 是构建在这一 CRUD 接口之上的自我改进流水线。它读取智能体自身的轨迹——即尝试过什么、发生了什么事的记录——并应用最小且相关的 CRUD 编辑来改进框架以获得更好的结果:更新提示词笔记、记忆、技能或子智能体规格,而不是重写整个框架。每次改进都会记录其触发条件及其产生的结果,因此改进是有证据支撑的,而非随意为之。改进分两个阶段运行。规划阶段——即提出编辑建议的大语言模型调用——在后台运行,不会阻塞正在进行的对话。应用编辑、写入磁盘并重建系统提示词则很快,只会在下一个回合边界处短暂阻塞。智能体只要注意到重复失败或可复用的策略,就可以直接调用 refine.run(),而不必拘泥于固定计划。
await refine.run("promote the retry-on-flaky-test pattern to a skill")
await compact.status()
await refine.status()
基础系统提示词保持不可变。/refine 只编辑其周围的框架层。通过先前的改进历史支持回滚,允许按 ID 还原一次糟糕的框架更新。
评估用自主模式
Prime Agent 的评估模式结合了三种互补机制。目标(goal)设定总体目标:一个持久目标,带有可选的 token 预算,由测试框架(harness)在多个回合中持续重新提示智能体去追求该目标,并持续跟踪,直到智能体显式调用 `goal.complete()`。心跳(heartbeat)是按固定时间间隔注入会话的、以 cron 风格调度的消息,用于定期检查,例如监控子智能体的进度或轮询训练更新。自主模式(autonomous mode)本身就是延续机制,确保智能体持续朝着目标工作,而不是在一个回合不再产生进一步输出时就提前停止。三者结合,可以让一个会话在无人值守的情况下长时间运行,同时受显式预算约束,并可通过 Agents View 进行检视。
自主模式可直接通过 CLI 使用,只需 `--autonomous` 参数,无需编写脚本。一次运行可以在同一条命令中设置完成目标和回合数上限:
prime-agent \
--autonomous \
--autonomous-gate "npm run check" \
--autonomous-max-turns 20 \
"Implement and verify the requested change"
gate 命令在会话被允许结束之前运行。失败的 gate 会将其有界输出返回给智能体以进行再次尝试,并且当工作区自上次尝试以来没有变化时,Prime Agent 会跳过重新运行失败的 gate。`--autonomous-max-turns`、`--autonomous-max-tokens` 和 `--autonomous-timeout-ms` 分别约束延续回合数、token 数和墙钟时间。
评估 Prime Agent
Prime Agent 既是一个可供使用的编码智能体,也是一个可供研究评估的测试框架设计。我们特别指出,虽然许多现代前沿模型是围绕特定测试框架训练的,但目前没有任何模型是围绕 Prime Agent 或其核心功能集训练的。
ARC-AGI 3。ARC-AGI 3 是一个流行的智能基准测试,用于衡量智能体执行符号推理和学习模拟世界规则的能力。我们使用自主模式在多个不同的前沿模型上评估 Prime Agent,并将其与它们原生的测试框架进行比较。Prime Agent 是作为 CLI 编码智能体开发的,因此唯一针对 ARC-AGI 3 的改动是任务提示词,其灵感来自 PRO-LONG 中使用的标准提示词设置。
我们的最佳结果是在 Prime Agent 中使用 Opus 5,达到了 95.5% 的 RHAE Best@1,超过了 ARC 报告的人类专家基线 95.4%。在三次运行中,我们发现 Prime Agent 表现稳定 [95.0, 95.2, 95.5],并且 Best@3 达到 99.97%,全部 183/183 个关卡均已完成。我们针对 ARC-AGI-3 的中位数得分卡动作回放(95.2%)可在此处查看。
除了在每个模型原生 harness 上取得更高的最高得分外,我们还发现 Prime Agent 在实现这一目标的同时,整体 token 使用量更低。Prime Agent 通过以编程方式对数据运行函数来节省 token,而不是花费 token 使用工具读取数据。
最后,我们注意到,我们分别使用 Claude Code 和 Codex 对 Opus 5 和 GPT-5.6 Sol 进行了评估,发现其整体性能低于官方结果,因此我们改用其官方公布的数据。
长上下文与长时运行任务
现实世界中的许多困难任务都可归结为长上下文任务。我们的目标是证明,配备开放权重模型的 Prime-Agent 是闭源模型及其 harness 的有力替代方案,既可作为通用智能体使用,也可作为评估用的基线 harness。
下面,我们选取了一系列涵盖编码、检索和通用长推理任务的常见长上下文基准,并将 Prime Agent 与几种流行的 harness 进行比较。我们首先将每个 harness 中的主上下文卸载到内存中的文件中。对于闭源模型 harness,我们使用其对应的模型(即 Codex 搭配 GPT,Claude Code 搭配 Opus),而对于 Prime-Agent 和 Pi-mono(带子智能体),我们选择 GLM-5.2 这一开放权重模型。
| GLM-5.2(高) | Opus 5(高) | GPT-5.6 Sol(高) | ||||
|---|---|---|---|---|---|---|
| 评测 | Prime-Agent | Pi-mono(带子智能体) | Prime-Agent | Claude Code | Prime-Agent | Codex |
| OOLONG(yahoo,128k)长上下文 | 0.700 | 0.420 | 0.900 | 0.920 | 0.940 | 0.500 |
| OOLONG-Pairs 长输出 | 0.874 | 0.556 | 0.929 | 0.922 | 0.911 | 0.895 |
| OBLIQ-Bench(数学)长排序 [ndcg@10] | 0.669 | 0.635 | 0.802 | 0.795 | 0.612 | 0.646 |
| LongBenchPro(英文)长理解 | 0.777 | 0.768 | 0.804 | 0.790 | 0.794 | 0.790 |
| LongBenchv2 专家标注的长任务 | 0.680 | 0.696 | 0.744 | 0.746 | 0.714 | 0.704 |
| ManyIH 长指令 | 0.424 | 0.386 | 0.536 | 0.522 | 0.499 | 0.454 |
| ManyIH 长指令 | 0.209 | 0.164 | 0.225 | 0.175 | 0.216 | 0.232 |
| LongCot-Mini 长推理 | 0.638 | 0.613 | 0.722 | 0.558 | 0.671 | 0.681 |
| EmulatorBench 长编码 | 0.208 | 0.000 | 0.047* | 0.062* | 0.275 | 0.228 |
我们总体上发现 Prime Agent 在各类长任务中都具有竞争力,尤其是相对于那些没有围绕其训练模型的测试框架而言。Prime Agent 尤其擅长长时间运行或长上下文任务,并且能够作为自主智能体独立运行且表现不俗。我们针对 Prime Agent 擅长的长任务场景,提供了一系列聚焦的案例研究和实验。
从零开始创建模拟器。模拟器是一种软件,用于复现另一计算机系统的可观察行为。我们在 EmulatorBench 上评估了 Prime Agent,这是一个预览版基准测试,要求智能体用 Rust 为多种游戏系统构建模拟器。智能体会获得模拟器的规格说明,以及一组以验证器形式提供的诊断测试。
模拟器的正确性取决于其模仿目标机器行为的能力。这通过人工生成的诊断程序来衡量,这些程序会检查模拟器的行为,例如 CPU 标志、PPU 时序以及其他组件。为了尽量减少数据污染的影响,我们要求智能体在沙盒环境中用 Rust 从零开始构建模拟器,且不提供任何参考实现。我们报告了该长上下文编码基准的初步结果,该结果基于 16 次模拟器重建的平均值,以及 Prime Agent 成功复现的两个模拟器:SEGA Genesis 和任天堂 Game Boy Color。对于 Opus,尽管工具调用响应成功,但我们的运行结果意外地未能解决这些任务。
编写GPU内核。编写高性能GPU内核是一个迭代过程,需要反复验证、性能剖析和调整代码才能确保正确。我们将Prime Agent作为GPU内核编写的测试框架,在近期发布的PMPP-Hard基准上进行评估。该基准是一组任务,要求智能体编写高性能GPU内核,并通过KernelGuard(用于官方GPU MODE内核排行榜的验证工具)的一系列正确性检查。
关于游戏的长周期案例研究
自主玩电子游戏已成为研究模型和测试框架如何处理长周期决策的一个有趣案例。游戏通常要求测试框架在数百万个token之间平衡信息和上下文,同时利用这些信息高效地采取行动并避免灾难性状态。
Factorio。Factorio是一款2D工厂模拟游戏,智能体必须开采资源、研究科技并建造自动化工厂以提高这些资源的生产效率。Factorio学习环境(FLE)是一个简化LLM玩Factorio时的观察和动作空间的接口,我们用它来将Prime Agent连接到游戏。
FLE的动作和观察空间是一个Python模块,每一步都通过编程方式访问。这直接集成到Prime Agent的IPython内核中。为了利用PTC来管理子智能体,我们在游戏中启动了四个可控角色。

FLE中的主要指标是生产分数,即智能体生产的所有材料的加权平均值。Prime Agent成功利用/refine将失败转化为记忆、将成功转化为技能。它利用自己积累的经验设计越来越高效的机器布局,使生产分数逐轮提升。这使得Prime Agent能够在数小时内高效地将生产分数提升到10万以上。
然而,我们也观察到 Prime Agent 在 FLE 中出现了奖励黑客(reward hacking)的实例。Prime Agent 发现它可以通过 RCON 命令直接将资源生成到组装机中,从而完全绕过 Factorio 的规则,即便有明确的心跳提示提醒 Prime Agent 不要在 Factorio 中作弊。一旦它发现了这个漏洞,原本用于构建合法技能的同一套优化循环,转而开始构建高效的作弊技能。
MazeBench。MazeBench 是一个开放世界的 3D 空间推理环境,玩家控制一个 3D 立方体,必须在全局迷宫中解决谜题房间,同时收集宝石。前沿模型在此任务上表现极为挣扎,消耗数十亿 token 却只能解决整个世界的极小一部分。我们将 Opus 5 和 GPT-5.6 Sol 分别搭配 Prime Agent 与其原生 harness 进行对比,同时也对比了 GLM-5.2 搭配 Claude Code。按照基准测试指标,我们报告它们发现的唯一房间数、唯一状态数以及宝石总数,所有这些都作为其总 token 消耗的函数。
后续步骤
Prime Agent 是智能体 harness 设计的一种新范式。尽管在其他 harness 上取得了强劲结果,我们仍然注意到在将 Prime Agent 与模型配合运行时存在一些摩擦。这意味着,如果直接围绕这种 harness 范式进行训练,甚至针对单独的 RLM 和 Continual Harness 组件进行训练,仍有巨大的性能提升空间。
我们坚信,模型与 harness 的协同学习是解锁新能力的主导范式。如果没有经过训练的模型,Prime Agent 的许多特性无法被充分利用,我们相信直接结合该 harness 进行训练仍有巨大的性能提升空间。我们很高兴能将这些新能力全部开源呈现给大家。
我们很快将发布一份包含更多细节的完整技术报告。
致谢
Prime Agent 构建在 pi 之上。我们感谢 pi 的作者们所做的宝贵工作。
引用
@article{primeintellect2026primeagent,
author = {Seth Karten and Alex L. Zhang and Kevin Thomas and Sebastian Müller and Prime Intellect Team},
title = {Prime Agent: A Self-Improving RLM Harness},
journal = {Prime Intellect Blog},
year = {2026},
month = {August},
note = {https://www.primeintellect.ai/blog/prime-agent}
}