💡 上周,Cursor 发布了一篇关于大规模自主编码智能体(Autonomous Coding Agents)的研究文章。其中提到的 FastRender —— 一个由智能体蜂群从零构建的浏览器引擎,引起了广泛关注。Simon Willison 专访了 FastRender 背后的工程师 Wilson Lin,揭秘了这个“疯狂”项目的幕后故事。
什么是 FastRender?
FastRender 是 Wilson Lin 的一个个人副业项目,始于 2025 年 11 月,最初是为了探索 Claude Opus 4.5 和 GPT-5.1 等前沿模型在处理复杂任务时的能力极限。
为什么选择写一个浏览器引擎?因为这是一个极其雄心勃勃且复杂的任务,同时又有着非常明确的规范(Spec)。最重要的是,你可以直观地看到它是否工作——页面渲染出来了吗?
随着单个智能体表现越来越好,Wilson 决定挑战极限:让多个智能体协同工作。最终,这成为了 Cursor 的一个官方研究项目。
虽然 FastRender 并不打算与 Chrome 竞争,但它已经能加载 Wikipedia 和 CNN 等真实网页。更有趣的是,智能体甚至自己决定给尚未完工的 JavaScript 引擎加了个 Feature Flag(功能开关)把它禁用了!
核心揭秘:2000 个智能体如何并行工作?
FastRender 最令人震惊的数据是:在峰值时期,有大约 2000 个智能体 并行工作,每小时提交数千次代码。整个项目累积了近 30,000 次提交。
如何管理这么多智能体?
- 基础设施:使用大型机器,每台机器运行约 300 个并发智能体。
- 组织架构:智能体呈树状结构排列。规划智能体(Planner Agents) 负责拆解任务,工人智能体(Worker Agents) 负责执行。
- 避免冲突:尽管数千个智能体同时修改代码库,但合并冲突(Merge Conflicts)非常少。这是因为规划智能体非常擅长将工作拆分成互不重叠的模块。这似乎是释放并行智能体潜力的关键技巧。
意想不到的发现
1. 通用模型 > 专用编码模型
Wilson 发现,GPT-5.1 和 GPT-5.2 等通用模型比专门针对编码优化的 GPT-5.1-Codex 更适合这项任务。因为智能体不仅需要写代码,还需要理解如何在“挽具(Harness)”中操作、如何自主决策,这些指令比单纯的编码更广泛。
2. 规范与反馈循环是生命线
为了让智能体长时间自主工作,FastRender 仓库通过 Git 子模块引入了大量的 W3C 和 ECMA 规范。
- 反馈循环
- 视觉反馈:利用 GPT-5.2 的视觉能力,智能体会对渲染结果截图,并与标准样本(Golden Sample)进行比对。
- 编译器反馈
3. 智能体会“偷懒”和“走捷径”
智能体自己选择了项目依赖。虽然大部分选择很合理(如 Skia, HarfBuzz),但它们也引入了像 Taffy(实现了 Flexbox/Grid 布局)和 QuickJS 这样的库。 关于 QuickJS 的引入有个有趣的故事:智能体意识到其他智能体还在开发 JS 引擎,为了不被阻塞,它决定先引入 QuickJS 作为临时替代方案,并计划以后替换掉。这像极了人类工程师会做的事!
4. 允许暂时的错误
为了追求极致的吞吐量,系统允许引入微小的错误(如 API 变更或语法错误),只要它们能被后续的提交迅速修复。
“如果要求每次提交都 100% 完美且可编译,那将成为同步瓶颈……允许一点‘松弛’,能让整体系统以极高的吞吐量持续推进。”
笔者锐评
FastRender 实际上是把一个完整的浏览器渲染引擎当成了多智能体协作的 “Hello World”。
- 软件工程的“奇异点”:一个工程师加上一群 AI 智能体,在几周内写出了上百万行可用的 Rust 代码。这预示着软件工程正在进入一个新纪元:从“编写代码”转向“设计系统来生成代码”。
- 并行能力的释放:FastRender 证明了,只要任务拆解得当,AI 智能体的并行扩展能力是惊人的。未来的架构师可能不需要管具体的模块实现,而是专注于设计“无冲突的任务图谱”。
- 容错与进化:接受“暂时的错误”以换取“整体的进化速度”,这不仅是 AI 的策略,也是大型分布式系统(甚至生物进化)的生存法则。
求点赞 👍 求关注 ❤️ 求收藏 ⭐️你的支持是我更新的最大动力!