[控场AI]
· 9 分钟阅读· 4,904 字

月产2000个PR的秘密:Lauren的AI Agent信任工作流

月产2000个PR的秘密:Lauren的AI Agent信任工作流

SpaceX AI工程师Lauren通过"信任阶梯"框架构建Agent工作流,月产2000个PR。

SpaceX AI Grokbot团队工程师Lauren分享了她如何在一个月内向生产环境提交超过2000个PR——核心不是更强的提示词,而是一套围绕"信任"构建的Agent工作流体系。她将Agent使用分为不同信任层级,主张通过"验证技能"(CLI+Feature Map让Agent可复现地运行应用并抓取性能数据)、代码库设计(让反模式在结构上根本不可能发生)、静态分析、规则与技能库等手段,从底层建立对Agent的信任。Grokbot的Dune框架将"最简路径即正确路径"作为核心原则,甚至禁止代码注释以防Agent用注释掩盖临时补丁。外循环的Grokbot负责监听Slack、Sentry等外部事件并自动触发云端Agent,与内循环的Cursor配合,最终形成一个能持续自动产出高质量代码的"米其林厨房"式协作体系。

SpaceX AI旗下Grokbot团队的工程师Lauren(在X上以"Potato"为人熟知)在一次分享中抛出了一个惊人的数字:上个月,她向生产环境提交了2000多个Pull Request。这个数字背后没有什么"更强的提示词"魔法,而是一套围绕"信任"构建的Agent工作流。

她的核心论点很直接:如果你把Agent的运行环境搭建得足够好,最终会得到一个类似"个人甚至团队软件工厂"的东西,以远超以往的速度产出高质量代码。不过Lauren本人并不喜欢"软件工厂"这个词,她更偏爱"米其林厨房"的比喻——工程师仍要对最终成品负责,而如何配置你的"厨房"(帮厨、二厨、设备、培训)决定了菜品的质量。

从手动性能调优到2000个PR

Lauren的转变始于半年前加入Cursor(后并入SpaceX AI)时。她此前在React团队工作,被派去解决Cursor Agent窗口的性能问题。然而她很快发现,PR以令人窒息的速度不断涌入,而她判断性能是否回退的方式极其原始——盯着Chrome DevTools做性能追踪、抓取堆快照,全程手动。

"等等,我们有Agent啊,我在干什么?"这个念头成了转折点。她开始思考:如果Agent能自己运行应用、抓取追踪数据、理解热点并自动优化性能,会怎样?六个月后,她的生产力"直线飙升"。

Lauren强调,2000个PR从来不是她的目标。真正的洞察是:"我就是瓶颈"。工程师需要把自己积累的知识灌输给Agent团队,这样自己就不必成为每件事的阻塞点。而这一切归根结底是一个词——信任。

走出"保姆式"陪伴:信任的阶梯

Lauren把使用Agent的阶段分成不同层级。最初大多数人处于"1到5"的区间:每一次对话都要盯着,不断纠正、干预,一旦人不在场,Agent就会做错事。她认为这个阶段恰恰是最难突破的,因为出路并不清晰。

如果没有信任就贸然启动上百个子Agent,只会收获一堆糟糕的PR

为什么无法从几个Agent扩展到上百个?因为你还不信任它们的工作。如果在缺乏信任的情况下强行并行启动一百个子Agent或云端Agent,结果只会是海量的垃圾PR、回归和Bug,没人会开心。问题因此回到:如何让你更信任Agent?

验证技能:让Agent自己证明代码有效

Lauren给出的第一个答案是"验证"(Verification)。验证有不同层级:低端是"验证技能"——教Agent如何运行你的应用,用Chrome DevTools协议等工具做调试、抓性能追踪和堆快照;高端则是依赖Lean、TLA+等形式化方法验证业务逻辑不变量。她坦言形式化验证仍是开放难题,但仅凭验证技能就能走得很远。

她在Cursor构建的第一个验证技能叫"Control",包含两个关键组件:

  • CLI:让Agent能可复现地运行应用、收集追踪和实证证据,而不是每次会话都临时生成脚本。CLI放在skill目录里,Agent每次直接调用。
  • Feature Map(功能地图):这是Lauren自创的概念,灵感来自sitemap,本质是一种"物化的记忆"。它记录应用有哪些功能、用户如何到达(键盘快捷键、点击哪个DOM元素)、每个功能做什么。

P-Stack插件收录了她在软件工程实践中积累的各类工作流

当CLI和Feature Map结合,威力惊人:Agent不仅能可复现地控制应用、抓取追踪,还能理解内外部用户提交的模糊需求(比如Slack里一张只截了一小块UI、配三个问号的截图)。这套验证技能后来成了团队的"关键基础设施"。

验证解决的是"正确性"——功能是否真的做了你想要的事(结账按钮是否真能结账)。但它无法说明性能和代码质量。为此Lauren还构建了名为P-Stack的插件,把她多年软件工程中用过的调试、功能开发、原型设计等工作流沉淀成技能库,教Agent按你期望的方式写代码。

Chrome DevTools协议(CDP,Chrome DevTools Protocol)是一套由Google开放的底层调试接口,允许外部程序通过WebSocket直接控制Chrome/Chromium浏览器,实现页面导航、DOM操作、网络请求拦截、JavaScript执行、性能追踪(Performance Trace)和堆快照(Heap Snapshot)等功能。相比人工盯着DevTools面板手动操作,CDP让这些调试动作变成可编程、可复现的自动化步骤——这正是Lauren所说"验证技能"的技术基础。Agent通过CLI调用CDP,相当于获得了一双能自主操作浏览器的手,可以在无人监督的情况下运行应用、采集性能数据,再将结果反馈给自身进行分析和优化。

Lean和TLA+是Lauren提及的形式化验证工具。Lean是一个交互式定理证明器,可以对代码逻辑进行数学级别的正确性证明;TLA+则是由图灵奖得主Leslie Lamport设计的规格说明语言,广泛用于验证分布式系统的协议和状态机。两者均能从数学层面保证"业务逻辑不变量"在所有可能输入下成立,远超测试所能覆盖的范围,但上手门槛较高,目前在工程实践中仍属前沿领域。

让代码库成为Agent的记忆

Lauren提出了一条"信任阶梯",包含五个层次,重要性递减、但可强制程度也不同:

  1. 代码库本身:这是最好的记忆形式。LLM倾向于沿用上下文窗口里看到的模式,而Agent读取和打开的文件正是其上下文。因此Agent不会在每个PR里重构,而是扩展已有的模式。
  2. 静态分析:Linter、编译器诊断、CI是可强制的约束。当Agent反复犯同一个错误,与其每次纠正,不如加一条lint规则——甚至更好的是重构代码库,让这个错误在结构上"根本不可能发生"。
  3. 规则、Bug Bot、技能:这些属于"引导"层面,Agent大多会用,但也可能忘读规则或被操作者忽略,可强制性较弱。
  4. 风格指南:只能靠人工代码评审强制执行。

不再只有工程师才能给代码库贡献代码——设计师、产品经理、CEO都可以

Lauren特别警告:如果你只依赖风格指南,评审流程会出现巨大漏洞——人类不得不逐行审查每一处改动,而在如此高的PR速率下,这根本不可能。反过来看,如果代码库里已有反模式,它会像病毒一样蔓延:一个小小的workaround或解释性注释,Agent就爱复制,几天几周后它就成了所有Agent的"事实标准"。

她用了"花园"的比喻:代码库就像一座花园,看似无害的workaround会不断被复制,最终长成一个难以维护、性能糟糕的"vibe coded"代码库。因此每个团队都需要一个"园丁"角色,及时把杂草掐灭在萌芽状态。

Dune框架:把"捷径"变成"正道"

Grokbot代码库背后是一个名为Dune的Agent友好框架。它的核心原则是:既然Agent爱走捷径,那就设计一个框架,让最简单的路径恰好就是正确的路径。

这样的代码库对人类来说可能"锁得很死、很烦人",却是Agent的理想环境——尤其对那些上下文极少的Agent而言。因为如今的代码库贡献者不再只有工程师,还有设计师、产品经理甚至CEO,需要让上下文有限的"忙人"驱动的Agent也能默认做好。

Dune应用中,功能被集中放在单一文件夹,并有严格的边界约束

Dune围绕三个原则:

  • 删除已有技术债
  • 强制单一"铺好的路":一件事只有一种约定俗成的做法,Agent无需猜测。
  • 看到技术债的第一反应是写lint规则:不一定要立刻清理,但至少能"止血",阻止问题扩散。

一个有趣的极端案例是:Dune禁止代码注释。Lauren起初觉得Agent留注释无伤大雅——毕竟人类也会在棘手处留注释。但她观察到,Agent常把注释当作"不去真正解决问题"的借口,用一句注释掩盖临时补丁。为避免这种模式被复制传播,团队干脆禁掉了注释。

Dune还通过导入和依赖图强制边界,比如禁止主进程代码被导入渲染线程——这源自Cursor Agent窗口的教训:渲染线程一旦混入慢代码,就无法维持16毫秒(60fps)或8毫秒(120fps)的帧预算。这类导致严重性能问题的模式,被架构层面"从根上"消除了。

Lauren提到的"渲染线程帧预算"源自浏览器渲染管线的底层限制。浏览器以固定刷新率绘制页面帧:60fps要求每帧在16.67毫秒内完成所有布局、绘制和合成;120fps则将这一窗口压缩到8.33毫秒。如果渲染线程(Renderer Process)中混入了计算密集型或I/O阻塞的"主进程代码",就会导致帧超时,用户感知到的表现是界面卡顿、动画掉帧。Electron架构(Cursor基于Electron构建)将主进程与渲染进程严格隔离正是出于这一原因。Dune通过静态分析导入图,在代码提交阶段直接拦截跨边界的错误导入,从根本上杜绝了这类性能回退,而无需依赖人工代码评审去发现问题。

内外循环:Grokbot与Cursor如何协作

在Lauren的体系里,Grokbot负责"外循环"(Outer Loop):它能连接Slack、Datadog、Sentry、PlanetScale等各种连接器,聚合信息并据此做决策。有人称之为"公司大脑",但Lauren认为不必搞得那么复杂——Agent本就擅长用工具,把工具接到Grokbot,让它自动触发云端Agent即可。

配合Grokbot Routines(订阅Slack线程、Sentry告警来自动触发任务),再叠加此前搭好的代码库、规则、技能,这些要素会"复利式"叠加。Grokbot能自动响应外循环事件、启动云端Agent;也可以用Cursor Automations和SDK搭建更多复用这套基础设施的Bot,处理更复杂的任务。最终实现自动复现Bug报告、自动开PR,为整个团队持续创造价值。

Lauren在此区分的"外循环"与"内循环"是Agent工作流中的一个重要架构概念。内循环(Inner Loop)通常指单次编码任务的闭环:接收需求→生成/修改代码→运行验证→提交PR,由Cursor等本地IDE级Agent负责。外循环(Outer Loop)则指驱动内循环启动的那一层:监听Slack消息、Sentry告警、Datadog异常等外部事件,判断是否需要触发一个新的编码任务,再调度云端Agent去执行。Grokbot在外循环层扮演"事件路由器"的角色——它不直接写代码,而是感知系统状态、聚合上下文信息,再决定"该让哪个Agent去做什么"。这种分层设计使得整套系统可以在无人值守的情况下对生产告警做出自动响应,并通过已有的代码库、规则和技能基础设施保障输出质量。

一句话记住:沿着信任阶梯往上爬

如果这次分享只留下一件事,Lauren希望是那张"信任阶梯"的幻灯片。当你发现自己又在纠正、干预Agent时,请从五个层次思考,找到最有效的那一步:

优先投入时间,通过代码库、架构和数据结构让坏模式"根本不可能发生";其次看静态分析;再叠加规则、Bug Bot和技能;最后才是风格指南。

把这些层次做扎实,你就能信任整个环境,让Agent自由运转,并赋能团队里的每一位工程师。Lauren说得直白:"这不是什么秘密,就是大量的辛苦活。"但正是这些辛苦活,让她得以搭建起自己的"米其林厨房"。

分享:

相关推荐