跳到正文
Prime Intellect Blog·· 22 小时前精选AI 评分64

Prime Intellect 用 Rust 重写 Prime Agent,2000 多个智能体完成自我改写

Rewriting Prime Agent in Rust

AI 导读

Prime Intellect 发布用 Rust 从零重写的 Prime Agent,由 2000 多个智能体在 10,000+ Prime Sandboxes 中、消耗超 2000 亿 token 自主完成移植。

推荐理由

官方披露用 2000 多个智能体、200 亿 token 完成自我重写,并给出与 TypeScript 版及其他 harness 的运行时对比数据。

正文 · AI 翻译

用 Rust 重写 Prime Agent

自 8 月推出 Prime Agent [1] 以来,它已被下载超过 30 万次,处理了超过 8 万亿个 token。今天,我们很高兴推出更快、更简洁、更可靠的 Prime Agent——它用 Rust 从零重写。

在两周内,Prime Agent 编排了一个由 2,000 多个 agent 组成的集群,端到端地重写自身,在 10,000 多个 Prime Sandbox 中运行,使用了来自 Prime Inference 的 GLM-5.3 端点的超过 2,000 亿个 token。这次 Rust 重写对 Prime Agent 的多 agent 能力进行了压力测试,包括我们一直在构建的、用于支撑大规模 agent 集群、自主研究和强化学习的沙箱与推理基础设施。

为确保与 TypeScript 版本功能对等,Prime Agent 编排子 agent 对依赖进行拓扑排序,并用有限状态机来组织循环计算和正确性检查。同时,我们重写了代码架构,以便于维护和开发。随后,我们使用运行时基准测试和真实的 Prime Agent 轨迹来爬山优化性能指标并排查 bug。如今,Prime Agent 比大多数编码 agent 框架运行得更快、占用资源更少。

子 agent 深度

父级深度 1深度 2深度 3

Rust 实现

192.99B token
1,981 个 agent

性能爬山优化

35.70B token
228 个 agent

为什么选择 Rust

TypeScript 帮助我们快速交付了 Prime Agent,但它的类型是可选的,并在运行时消失;错误以未检查异常的形式传播;渲染和解析大型会话等 CPU 密集型工作会在单个事件循环上与键盘输入争抢;而且每个进程都要为 JavaScript 运行时和垃圾回收器付出代价。我们希望保持同样快的交付速度,同时随着代码增长将其维持在更高标准上,而 Rust 非常适合这一点:

  • 性能:Prime Agent 是一个长期运行的守护进程,每个会话有一个工作进程,而无垃圾回收器的原生代码带来了我们所取得的大部分内存和启动性能提升。
  • 并发:一个守护进程同时流式传输模型输出、运行工具调用、在 agent 之间转发消息,并服务所有已连接的客户端。Rust 的 Send 和 Sync trait 让编译器检查哪些数据可以在线程之间移动、哪些可以共享。
  • 编译期保证:穷尽式枚举、所有权和生命周期在代码运行前就排除了一整类 bug,而 Clippy 的 pedantic lint 又增加了数百项检查——当大部分代码由 agent 编写时,这一点尤为重要。

除了这些明显的性能提升之外,这次重写还让我们有机会重新思考设计选择。我们大幅模块化了代码库,并正在收获这次重写的回报,包括 Windows 支持、会话崩溃隔离,以及更一致的守护进程协议。

Prime Agent 如何重写自身

我们的目标是让 agent 尽可能少地依赖人工干预,自主完成重写。因此,所需的人工工作是建立适当的验证机制,以实现大规模自主部署。我们遵循了此前自动 Rust 翻译工作 [2] 的类似设置。每份规范都覆盖了不同种类的对等性:

  • TUI 对等性:一套差分测试套件将 TypeScript 和 Rust 二进制文件并排对比,针对同一脚本化模型运行,并对各自渲染的终端帧进行差异比对。它覆盖了用户流程,包括启动、斜杠菜单、工具调用、压缩、代理视图、会话恢复、子代理和崩溃恢复。
  • 测试框架对等性:同一运行过程会对比会话记录以及每个二进制文件向模型提供商发送的请求,从而确保两者从相同输入产生相同的会话。
  • 协议对等性:守护进程协议中的所有消息类型都会与 TypeScript 实现进行核对,确保我们的 ACP 和守护进程协议 API 保持一致。
  • 功能对等性:由于脚本化流程无法覆盖整个界面,代理们逐组件审计了 TypeScript 产品,将每个组件归类为匹配、部分匹配或缺失。

有了对每种对等性的客观检查,代理们就能衡量自身进展,并在变更合并前捕获回归,这让我们得以减少人工审查。剩余的 bug 和行为差异主要通过内部使用发现,这指导了我们后续在缺失功能、可靠性和界面打磨方面的工作。

我们在两个 8 核按需 CPU 节点上运行了所有编排器及其代理,每个节点支持超过 100 个并发子代理及其各自的 CPython 内核。此外,由于当数十个代理同时运行时,编译、类型检查和差异比对会使任何单台机器饱和,我们为代理构建了将繁重工作外包给 Prime Sandboxes 的实用工具,使我们能够高度并行化移植工作。

TypeScript and Rust slash-command menus side by side, with differing terminal cells highlighted in amber in the Diff panel.
一个客观的 TUI 对等性验证器会比较 TypeScript 和 Rust 版本的终端帧并突出显示差异。

有限状态机的编排

一个单一的根代理编排了这次重写,并将工作划分为任务的拓扑排序。根代理不编写任何产品代码,从而使其能够自由地监控每项任务、合并已完成的工作,并在与我们协作确定优先级和决策的同时保持对重写的全局概览。我们还将生成和验证保持在不同的代理中,因为编写代码的代理在评估代码时会有偏见。因此,编排器分配的每项任务都要经过四个代理:

  • 规划者:创建整体机器规范,包括功能设计、基准 TypeScript 行为和验证器(对等性检查)
  • 实现者:在专用工作树中编写 Rust 代码,以便功能可以并行开发。
  • 审查者:以对抗性方式检查拉取请求,使用不同的模型,并与实现者处于不同的上下文中,寻找该变更错误的理由。
  • 验证者:在全新的 Prime Sandbox 中编译并运行该功能的对等性检查和测试。

审查或验证失败会将功能连同发现的问题退回给实现者,一旦两者都通过,PR 就会合并。我们正在将这种模式构建到 Prime Agent 中,以编排一个有限状态机工厂,这样像这样的工作流就可以一次定义、重复使用并更新。

Prime Agent orchestration workflow

架构重新设计

移植到 Rust 也给了我们重构代码库的机会。长期收益的很大一部分正源于此:

  • 模块化:代码被拆分为九个 crate,依赖关系为单向图并由 Cargo 强制保证,TUI 唯一的内部依赖是共享类型 crate。最大的源文件现在约 2,500 行,低于 TypeScript 的约 15,000 行,且没有文件超过 5,000 行,而 TypeScript 中有四个。
  • 隔离性:每个会话都在一个小型 supervisor 下的独立 worker 进程中运行,因此一个会话失败不会影响其他会话继续运行,且会话会持久化到磁盘,客户端可以在重启后重新连接。
  • 平台抽象:传输、进程控制和文件锁定都位于平台特定接口之后,因此像 Windows 支持这样的工作只需实现这些 trait,而无需重新调整 daemon。
  • 单一协议定义:客户端、daemon 和每个 worker 都针对共享类型 crate 中相同的消息类型进行编译,因此协议的任何变更都会在其所有使用处被检查。
  • 目录驱动的模型:将我们的模型和 MCP 列表移植到运行时获取的独立目录中,使我们无需发布 Prime Agent 即可推出新模型和插件。

精炼工作

虽然自主工作流比我们预期的走得更远,但一致性检查只验证了它们所覆盖的行为。一旦主 RLM 循环达到一致性,我们就把所有重写 agent 迁移到 Rust,使我们能够大规模地 dogfood Rust 版本(现在 Prime Agent Rust 正在递归地改进自己!)。后来,我们把内部团队迁移到 Rust 构建版本用于日常工作,这暴露了差分测试覆盖范围之外的 bug 和缺失行为。在整个 dogfood 周期中,我们让 agent 审查所有 beta 用户的日志和 trace,使我们能够自动诊断并解决用户发现的运行时和 agent 问题。我们还把这次重写当作重新设计部分 UX/TUI 流程和面向模型的 API 的机会。

将重写提升到发布质量需要随后几周的后续工作,从完成功能移植和修复 bug 到改进性能和打磨界面。Prime Agent 仍然编写并测试这些变更,同时我们让人类参与其中,负责发现问题、指导变更并审查所有结果。

爬坡优化性能

在实现功能一致性后,我们希望优化 Prime Agent 在所有用户流程中的运行时性能。我们采用了与重写相同的方法:给 agent 一种客观的方式来衡量自身进展。我们构建了一个基准测试框架,用于衡量 Prime Agent 在各种运行时指标上的性能,并让 Prime Agent 通过深思熟虑的改进来爬坡优化其速度和资源使用。

已合并开放已关闭

9月26日

27

28

29

30

10月1日

2

3

4

#2856 限制会话目录缓存

性能基准测试在全新的 4 核、8 GB Prime Sandbox 上评估 Rust 和 TypeScript 版本的 Prime Agent,以及其他 agent harness,每个基准测试都进行噪声检查,任何过于不稳定而无法比较的结果都会被扣留。Agent 在真实终端中运行,通过屏幕模拟器驱动,针对脚本化模型,因此计时反映用户所见,并排除推理时间。

在框架就位后,第二个 orchestrator 运行了一个为期三天的爬坡循环,只有一个目标:在不破坏一致性的情况下改进基准测试结果。每个实验都遵循相同的流程:

  1. Agent 会对基准测试进行分析,找出时间和内存消耗在哪里,并将最大的开销转化为一系列假设,随后由编排器分配给 worker。
  2. Worker 在同一个沙箱中构建当前代码和候选变更,并以交替顺序运行它们,同时运行相邻的基准测试以捕捉其他地方的回归。
  3. 两个 reviewer agent 分别运行在不同的前沿模型上,检查行为是否仍与 TypeScript 一致、在变更声称保持字节一致的地方输出是否仍字节一致,以及面向模型的接口上没有任何回归。
  4. 变更合并,下一次实验从新的基线开始测量。

我们刻意没有给这个循环设定数值目标,因为固定阈值往往会变成停止点。Agent 的唯一目标是在仍有可测量收益的情况下,持续改进基准测试而不破坏一致性。在整个 hillclimb 周期中,该循环记录了超过 144 条实验和审计记录,合并了超过 69 个提升性能的有效变更。以下是我们看到的一些重要领域中的显著改进:

TS 版本Hillclimb 前的 RustHillclimb 后的 Rust

冷启动

输入就绪延迟

快 14.18×

热启动

输入就绪延迟

快 13.34×

大会话内存

进程树 RSS · 10 MiB 会话

小 4.76×

安装体积

完整安装

小 2.89×

Agent 视图

视图切换延迟

快 6.09×

大部分收益来自三类变更:将工作从启动和渲染路径上移走、用事件驱动等待替换轮询循环,以及在大会话加载完成后立即释放内存。

结果

总体而言,我们的 Rust 重写以及随后的性能 hillclimbing 使 Prime Agent 显著更快、更节省资源。输入时间比 TypeScript 快约 14 倍,启动后内存占用减少超过 80%,Prime Agent 是现有最快的编码 agent 运行框架之一。

Prime Agent(Rust)Prime Agent(TypeScript)Claude Code v2.1.289Codex CLI v0.160.0Pi v1.0.3Hermes Agent v0.21.5
首次绘制从启动到首次可见输出23.6 ms±0.6快 30.63×722.8 ms±15.1264.6 ms±5.8296.8 ms±2.7306.3 ms±6.71,715.3 ms±10.3
输入时间(冷)全新启动到可输入55.8 ms±4.9快 13.22×737.8 ms±13.9348.4 ms±8.2324.6 ms±4.9317.7 ms±8.02,094.5 ms±23.5
输入时间(热)重复启动到可输入42.4 ms±4.3快 12.96×549.6 ms±10.0345.1 ms±6.2321.3 ms±9.2240.4 ms±5.92,097.1 ms±40.8
安装体积安装占用的磁盘空间59.6 MB±0.0小 2.89×172.1 MB±0.0492.4 MB±0.0446.8 MB±0.0456.0 MB±0.0960.1 MB±0.0
内存(RSS)启动后整个进程树106.0 MB±1.3小 5.73×607.4 MB±0.9226.9 MB±0.4344.4 MB±3.1138.1 MB±0.7194.6 MB±0.3

外部测试框架的结果是用我们自定义的运行时套件测得的。由于没有通用的基准标准,比较结果应谨慎解读。

这种更模块化的代码库和更强的编译期检查也将帮助我们更快地交付新能力,并在错误到达用户之前捕获更多问题。

下一步

随着 Rust 移植的完成,我们正将同样的细致关注带到 Prime Agent 的每一个部分,从日常的系统交互到跨多个智能体的复杂工作。既然基础设施的改进已经完成,我们正在加速推进能力和评估,并让这次重写背后的多智能体工作流为你所用。

Prime Agent 也将更紧密地融入 Prime Intellect 生态系统,让你能够跨整个技术栈工作,包括云端智能体集群、推理、追踪、沙箱、评估、托管训练等。

通过这次重写,我们还发布了支持原生 Windows(测试版)的 Prime Agent,并可通过 homebrew 安装。Prime Agent 仍然是开源的,只需一条命令即可安装:

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

或在 Windows 上:

irm https://app.primeintellect.ai/prime-agent/install.ps1 | iex

如果你想参与 Prime Agent 的开发,我们正在招聘。

参考文献

[1] Karten, S., Zhang, A. L., Thomas, K., Müller, S., Bakouch, E., Auras, D., Senghaas, M., Obeid, F., Dunas, K., Hagemann, J., & Jaghouar, S. (2026). Prime agent: A self-improving RLM harness [Preprint]. arXiv. https://arxiv.org/abs/2608.23552

[2] Karten, S., Appapogu, R. D., & Jin, C. (2026). Automatic generation of high-performance RL environments. In Proceedings of the Third Conference on Language Modeling (COLM 2026). https://openreview.net/forum?id=UmpTwqxiY0

来源:Prime Intellect Blog · primeintellect.ai