AI News HubLIVE
站内改写

AI代理的阿姆达尔定律

本文探讨了AI代理系统中的阿姆达尔定律:系统加速比受人类判断时间占比H的限制。提出了“自清偿式H”概念,即每次人类干预都应产生可重用的工件(如测试用例、规范更新),以减少未来同类干预。强调通过配置化(configurancy)和规范套件将人类知识编码为机器可读形式,从而让代理自主运行。示例包括ElectricSQL的协议变更、Emil Stenström的HTML5解析器、Gas Town的多代理系统以及Ralph Loop的迭代模式。

文章情报

工程师进阶

要点

  • AI代理的加速比上限由人类判断时间占比H决定,H越大加速比越小。
  • 自清偿式H:每次人类干预都应生成可编码的工件,减少未来重复干预。
  • 配置化(明确的行为承诺和规范)是让代理安全自主运行的关键。
  • 案例表明,投资于配置化比提升代理能力更有效。

为什么重要

这条新闻值得关注,因为AI代理的加速比上限由人类判断时间占比H决定,H越大加速比越小。

技术影响

可能影响模型选型、推理成本、产品能力和评测基准。

多代理系统正在取得实际成果。Geoffrey Huntley的Ralph Loop让自主编码代理在while循环中运行,直到完成所有PRD事项。Steve Yegge的Gas Town协调20-30个并发代理,跨越七个专业角色。Cursor推出了一个8代理并行系统。吞吐量的提升是真实的——而那些取得最佳效果的团队共享一种模式。

但提升并非自动发生。Flask创建者Armin Ronacher告诉《The Pragmatic Engineer》:“我有时会启动并行代理,但不像以前那么多了。问题是:我的大脑只能审查这么多!”获得最大价值的团队共享一种模式——而1967年的一条定律准确解释了杠杆所在。

**原始洞察**

1967年,Gene Amdahl对并行计算做出了一个简单观察:程序的加速比受限于必须顺序运行的部分。他的公式:speedup = 1 / (S + (1-S)/N),其中S是串行比例,N是并行处理器数量。关键洞察不在于公式本身,而在于极限:当N趋近无穷时,加速比收敛于1/S。如果你工作的10%本质上是串行的,你将永远无法超过10倍加速比。即使有100个核心,甚至一百万个,也是如此。这不是反对并行性,而是指导工程焦点的指南。同样的逻辑适用于代理。

**代理版本**

AI代理的等价定律:从AI代理获得的最大加速比受限于1/H,其中H是工作流中需要人类判断的部分。H包括每一个系统阻塞等待人类的时刻:澄清意图、做出判断、审查周期、审批关卡、解决歧义、以及应用品味。如果H占你总工作流时间的40%,那么无论代理能力如何提升,你最多只能获得2.5倍加速比。在50%时,上限是2倍。即使乐观估计20%,也只能达到5倍。

人类比例H决定着加速比方程,而不是代理能力。但与Amdahl原始串行比例S不同——S是算法的固定属性——H不是静态的。更好的模型确实会缩小H的某些组成部分。一个需要更少澄清且犯更少错误的代理直接减少了人类时间。但问题是:模型减少的组成部分并不是在规模化时占主导地位的。模型改进减少了澄清和验证。而品味和新决策——这些一旦你自动化了机械部分就会成为主导的组成部分——在很大程度上是模型无法减少的。这些上限在任一时刻都是真实的。关键在于H下降的速度有多快——以及你如何利用这些收益。

**自清偿式H**

最高杠杆的投资不是让代理更快或更聪明。而是改变H的性质。实现这一点的工具并不新鲜——测试、规范、自动化、记录决策。这些是已经存在了几十年的工程最佳实践。新鲜的是投资回报率。当代理能够对每个编码决策自主行动时,编写那个测试或更新那个规范的回报比过去高得多。目标不是最小化人类参与。而是使其自清偿:每次人类干预都应该产生工件——测试、规范更新、记录决策——使得下次不再需要相同类型的干预。(这个术语来自金融:自清偿贷款产生的收入足以偿还自身。自清偿干预产生的工件消除了自身的再次发生。)

一个团队如果有40%的工作流时间是人力,但全用于品味和策略,这与一个同样40%人力但全是“你是意思是X还是Y?”和“让我再检查这个输出”的团队处于根本不同的位置。自清偿实践将第二种转化为第一种。这需要我所说的配置化——最小的一组明确的行为承诺(及理由),使得有边界的代理能够安全地修改系统,而无需重新发现不变量。规范、合规套件、记录理由。系统中每一个隐含假设都是未来阻塞人类的事件。

一个使人类审查变得不必要的合规套件是结晶化的认知——在做出时编码的人类关于正确性的判断,这样代理就不必重新发现它们。防止代理撞入已知陷阱的AGENTS.md文件也是如此。每一块好的脚手架都是捕获为持久、机器可读工件的人类判断。

你应该针对哪些人类参与?测试是具体的:“这个干预是否可编码?”当人类发现一个bug,那个发现能否变成一个测试用例?当人类澄清一个歧义,那个澄清能否更新规范?当人类做出一个品味判断,那个判断能否成为一个记录的先例?如果代理不断需要相同类型的人类干预,你的配置化就不完整。

验证高度可编码——发现变成测试用例。澄清高度可编码——解决方案变成规范更新。规范部分可编码——模式变成可重用模板。品味和新决策最不可编码——这没问题,因为它们是人类判断真正创造价值的组成部分。系统自然趋向于一个状态,人类只做无法编码的工作,因为所有可编码的都已编码。

但仅捕获还不够。天真地追加每一次干预会产生自身的问题——一个400行矛盾陷阱的AGENTS.md无人阅读,一个覆盖重叠案例、编码矛盾假设的测试套件。原始积累产生噪音,而非知识。真正的模式是积累,然后压缩:个人判断堆积起来,然后定期整合为连贯的高级工件。普通法积累案例判决,然后综合为原则和法规。科学积累论文,然后压缩为综述文章和教科书。实践中:将每次干预捕获为局部工件(一个测试用例、一个AGENTS.md条目、一个决策记录),然后定期将这些工件整合到更新的规范、重构的测试套件和修订的技能定义中。压缩是当你询问治理变量本身是否仍然正确的时候——40个测试用例编码了同一假设的40个变体是否揭示了该假设是错误的?只积累的团队最终会漂移和矛盾。只试图压缩的团队最终会过度工程化前期。循环需要两者。

使自清偿循环实用的两个杠杆:

  1. 捕获信号。当人类干预时——发现bug、澄清规范、做出品味判断——系统应生成编码该干预的工件。发现bug但不更新测试套件的审查是浪费的信号。澄清但不更新规范的澄清会重复发生。
  1. 保持高配置化,使代理在其他地方自主运行。当系统的知识是明确的——规范、不变量、合规套件、记录理由——代理不会在那些本可预先编码的事情上阻塞人类。代理脚手架是AI时代的串行代码优化。它将人类时间集中在其具有最大杠杆的地方,并从每次干预中捕获信号作为系统可重用的持久知识。

**脚手架的样子**

在ElectricSQL,一个代理最近通过20-30分钟将协议变更传播到67个文件——规范、两个服务器实现、10种语言的10个客户端库。没有人类审查67个文件。合规套件就是审查。没有它,那是数小时跨10种语言的仔细手动验证。有了它,我花了几分钟审查PR。人类设计了协议变更;套件自动化了下游的一切。而每一个关于正确性的新决策成为另一个测试用例,使下一次变更更加自主。

Emil Stenström通过从一开始就接入html5lib-tests合规套件,用代理构建了一个完整的HTML5解析器。然后Simon Willison通过将不同代理指向同一套件,在4.5小时内将其移植到JavaScript。合规套件使人类审查变得不必要,因为规范已经被编码为可执行验证。

模型处理任务;配置化处理信任。它们共同复合。

将代理部署视为“选择一个模型并编写一些提示”的团队很快就达到平台期。他们没有触及H。看到真正加速的团队在脚手架层进行了大量投资——通常花费比代理集成本身更多的工程精力在配置化上。

**超越瓶颈的扩展**

随着代理变快,H感觉在增长。当一个代理需要2小时研究一个主题,而你花30分钟审查其输出时,那30分钟是背景噪音。当代理需要30秒而你还是花30分钟审查时,突然你就是瓶颈。绝对时间没有改变,但相对权重已经大幅转移。你不再等待——这意味着你总是被等待的那个人。

然后你添加更多代理,情况变得更糟。

阿姆达尔定律告诉你存在一个上限。Donald Reinertsen的《产品开发流程的原则》告诉你工程问题在哪里:天真地添加并行代理可能会降低性能——但解决方案是可处理的。

Reinertsen将排队论应用于产品开发,并表明容量利用率指数级增加队列大小。在50%利用率时,队列是可控的。在80%时,它大了4倍。在90%时,9倍。在95%时,19倍。审查代理输出的人类是队列中的单一服务器。五个并行代理使到达率翻五倍,将利用率推向100%,队列时间趋向无穷。

Gas Town是最生动的例证。Yegge描述“明显的压力”,因为20-30个代理同时运行,速度之快难以理解。早期用户将他们的角色描述为“保持你的Tamagotchi活着”,并指出“你的管理控制跨度与你的注意力和记忆力直接相关”。一位用户从3小时内5个PR变为4小时内36个PR——但以每小时100美元的Claude令牌成本和强烈且不间断的认知投入为代价。吞吐量是真实的,但人类队列饱和也是真实的。

Reinertsen的处方:直接管理队列大小——在制品限制、更小的批次大小、更快的反馈循环——而不是最大化利用率。代理等价物:扩展并行代理的方法是在第一时间消除导致它们阻塞人类的摩擦——投资于使代理能够验证自己工作的配置化,这样当它们确实需要人类时,是为了真正重要的判断。

Ralph Loop做对了。它的成功不是因为并行运行代理,而是因为它是自清偿引擎:明确定义的PRD作为规范,自动化测试验证作为验收标准,以及跨迭代累积发现模式的AGENTS.md文件。每一次人类纠正代理的迭代都将该纠正编码为下一次迭代可消费的工件。同样的模式在每个规模都出现。shadcn描述了运行一个/done