返回资讯中心
外部精选
软件工程
#社区热议

Prime Agent 用 Rust 重写并发布,两周内由 2000 多个智能体完成

来源标题:Rewriting Prime Agent in Rust

Prime Agent 已用 Rust 从头重写并发布,官方称新版本更快、更简洁、更可靠。该重写由 Prime Agent 调度 2000 多个智能体、在 1 万多个 Prime Sandbox 中耗时两周完成,消耗超 2000 亿 token。Prime Agent 自 8 月上线以来下载量超 30 万次,处理 token 超 8 万亿。

Hacker Newspiotrgrabowski2026/10/9 · 21 天前22 分钟阅读

以下正文由 AI 翻译自 Hacker News(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

用 Rust 重写 Prime Agent

Kevin Thomas、Sebastian Müller、Seth Karten

2026 年 10 月 9 日 • 研究

用 Rust 重写 Prime Agent

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

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

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

为什么选择 Rust

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

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

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

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

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

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

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

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

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

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

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

性能基准测试在每次基准测试中使用全新的 4 核、8 GB Prime Sandbox,评估 Rust 和 TypeScript 版本的 Prime Agent,以及其他 agent 框架,并通过噪声检查剔除任何不稳定到无法比较的结果。Agent 在由屏幕模拟器驱动的真实终端中运行,面对脚本化的模型,因此计时反映的是用户所看到的情况,并且排除了推理时间。

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →