Grok Bot 到底有没有大规模火起来?好像是个未知数,虽然我自己个人也持续在玩。

但最近看 Grok 的工程师 Lauren Tan 分享她调度 Grok bot + 云 Agent 的方式,确实是很干的干货。

前阵子她发过一条关于 PotetoMode 的思考,核心意思很硬:每次你发现自己需要介入纠偏 Agent,都应该想想怎么靠架构、Lint 或测试把它彻底消除,别总在 Prompt 里当保姆。

真正让我顺着她开源的 pstack 一路挖下去的,是她背后惊人的工程吞吐量:Lauren 目前在 SpaceXAI 参与 Grok Bot 和 Cursor 的工作,同时也是 React Core team 成员。

按她公开的数据,她个人靠这套系统每月合入2,000 个 PR,而 Grok Bot 整个团队每天有数百个 PR在进入同一个代码库。

比起这些夸张的数字,更值得看的是:这些代码到底是怎么被生产出来的。

01 她根本没在用一个“聊天机器人”

如果去看她最近公开出来的 prompt、playbook 和工作方式,最先冲击我的不是那些 Prompt 技巧。

而是她人和 Agent 之间的站位已经变了:


Lauren ↓  Grok Bot / Coordinator     ↓      ├─ Cloud Agent A       ├─ Cloud Agent B       ├─ Cloud Agent C       └─ Swarm

她自己不再守着每一个 worker,一轮一轮地聊。

在这个结构里,前台的 Grok Bot 或者本地会话,更多扮演一个 Coordinator。

在她为长期项目写的 orchestrate 文档里,有一句原则写得很直接:

Coordinator 负责整个 program,但不亲自写代码。

它更关注的是:

把大目标拆成一份份自包含的 Brief;

把任务派发给独立的云端环境;

收回结果,检查验证证据;

判断下一步是继续、打回还是合并。

真正执行具体任务的是下面的 Cloud Agent。

但这些 Cloud Agent 也不是一次性的单轮函数。每一个 Agent 拿到独立环境后,自己内部仍然可以跑完整的多轮闭环:


改动代码         ↓     驱动应用验证        ↓     失败        ↓     看证据再改       ↓     通过验证        ↓     交出证据和产物

所以这里有一个特别容易误解的地方:

Lauren 不是从“一个 Agent”变成了“一堆一次性 Agent”。而是把两类工作拆开了:

长期身份放在协调层,具体执行交给一批彼此独立的 worker。

02 Agent 可以换,工作的标准不能换

看到这里,我当时最大的疑问是:

如果下面这些 Agent 都是独立拉起来的,并发一多,它们不会各干各的吗?

相比反复调教某一个 Agent,她明显把更多精力放到了闭环基础设施上。

任何一个 Cloud Agent 被拉起来,不管它最终用的是哪个模型,都可以拿到两类很重要的东西:

第一类是Feature Map。它不是一篇给人看的宏大架构文档,更像是一份从真实用户路径出发的功能索引:这个功能在哪里、用户怎么进入、需要什么前置状态、验证的时候应该去哪里看。Agent 不需要每次重新把整个代码库读一遍,才能知道自己现在处理的功能到底处在哪个位置。

第二类是Verification Skill。这也是她反复讲的 “Build the Lever”。比如给 Agent 一个可以真正控制应用的工具(类似 /control-app),让它可以操作真实界面、模拟输入、读取 DOM、截图、抓 trace。

Feature Map 和 Verification Skill 合起来就是一种标准。

它不属于某一场对话。一个本地 Agent 可以用,一个 Cloud Agent 可以用,几十个 worker 也可以同时遵守。

于是一个修 Bug 的 Agent,不再只是汇报一句“我改完了”,而是必须:先真正把 Bug 复现出来,改代码,再重新操作一遍产品,确认现象消失,最后交出截图、trace 或其他验证证据。

而且是自动对齐标准。

03 工人退出了,工作却还在

顺着这个逻辑再往上看,我才突然注意到另外一件事情。

底层一次具体执行当然可以结束。一个 Agent 做完任务以后,这段执行可以退出;走进死胡同,也可以放弃当前上下文,重新派一个新的 Agent。

但是:

Worker 退出之后,工作状态并没有一起消失。

PR 还在,branch 还在,commit 还在,验证结果还在。不管是当前的还是重新启动的 Coordinator,都可以重新依据这些外部状态接续工作。

甚至在她的 orchestrate 体系里,还有一份跟 PR 维护的验证账本:ledger.tsv。

里面的验证结论(比如 live-ui-verified 或是 unit-test-verified),会直接跟PR 编号 + 具体 head SHA绑定。代码变了,SHA 变了,原来的验证结果也就不再自动成立,需要重新验证。

需要持久化的,不只是“Agent 记得什么”。还有工作现在处于什么状态,以及:一份证据到底对哪个版本仍然有效。

看到这里,我才第一次认真觉得:

Agent 能一直干,和一件事一直归它管,是两回事。

前者大家都很熟悉,但是后者其实很多人还没什么概念。

04 重新理解 Persistent Agent

过去这一两年,只要看到长程 Agent、自主 Agent,我最容易兴奋的其实都是:它这一轮到底能跑多久。

用 Manus 的时候,我第一次很明显地感觉到:一个任务交出去以后,十几二十分钟都不需要我的下一句话。后来又开始研究各种 loop,只要目标没完成,就继续做。再后来看到一些 CRM Agent:今天判断“不该联系”,先等,过几天再醒来。

这些探索当然都很重要。但 Lauren 最近这套工作方式,让我开始想把两个问题拆开:

Continuous Execution 是这一轮能自己干多久?

Continuous Responsibility是这一轮结束以后,甚至当前执行者已经退出以后,这件事是不是还归它管?

一个更接近执行能力,另一个更接近责任与系统结构。

而 Lauren 在 orchestrate 文档开头的一句话,正好戳中了这个区别:

Route here when the work outlives any single agent.

(当一项工作的生命周期,已经超过任何一个单独 Agent 的寿命时,再进入这套模式。)

我以前很自然地把 Persistence 想成:让一个 Agent 活得更久。更大的 Context、更好的 Memory、更复杂的长短期记忆,尽量让同一个 Agent 不要忘。

但 Lauren 这套东西至少给了另外一种想象:

执行 Agent,不一定非得和责任拥有者是同一个东西。

一次会话可以结束,一个 worker 可以退出。但目标、工作状态、验证标准,以及下一步要依据的证据,可以留在系统里。

这时候 Persistence 就不再只是:怎么让一个脑子活得更久。

而开始变成:一项工作怎么活得比某一个 Agent 更久。

05 一轮结束以后呢?

看到这里,我其实还没有得出一个完整的 Persistent Agent 架构。

到底哪些东西应该长期存在?Coordinator 应该保留多少状态?Worker 什么时候继续用,什么时候应该重新拉一个?这些问题我自己都还没有真正跑明白。

但有一件事已经变了。

过去我很容易用“一轮任务”的表现判断 Agent:能不能少找我几次、能不能自己多跑几轮、能不能自己发现错误再修、能不能把一个原本需要十轮对话的任务一次推进到底。

这些能力我现在依然在意。但回过头看自己平时真正使用 Agent 的方式,会发现一次任务结束以后,很多事情其实又重新回到了我身上:

还是我记得这个项目下一步有什么。还是我发现新的反馈。还是我判断现在是不是应该继续。还是我重新找一个 Agent,把前面的事情重新交代一遍。

今天很多 Agent 看起来已经很自主了,但那个真正 persistent 的东西,其实还是人。

所以我现在开始觉得:

长程解决的是:这一轮能走多远。而 Persistent 真正让我感兴趣的问题可能是:这一轮结束以后,工作还能不能继续存在。

我现在还不知道 Lauren 这套模式是不是 Persistent Agent 最终的样子。

但以后再判断一个 Agent 是否真的开始像一个“长期工作的角色”,我大概会多问一个以前很少问的问题:

今天我把一件事交给它。

三天以后,这件事还归它管吗?