AI编程代理速度慢?四大隐藏瓶颈与优化策略

AI编程代理的瓶颈在工具调用而非模型推理,可通过清理、并行化、卸载与替换工具链系统优化。
文章基于YouTube频道「Superlinear」的讨论与开发者Brandon的实战经验,指出AI编程代理的端到端速度瓶颈往往不在模型推理,而在测试、构建等工具调用环节。随着验证步骤增多,工具调用耗时占比急剧上升。作者提出四步优化策略:先用会话诊断定位耗时分布,再清理LLM生成的低质量测试,接着并行化测试执行,必要时按代码变更筛选测试。进阶方案包括用Crabbox将重工具调用卸载到远程机器,以及用OxLint、Bun等更快的工具链替换现有工具。最后给出优化顺序与“过度工程已死”的心态建议。
引言:为什么你的AI编程代理越来越慢
很多开发者发现,明明用了更快的模型,AI编程代理(coding agent)的整体效率却没有明显提升。问题往往不在模型推理速度,而在于代理执行过程中的**工具调用(tool calls)**环节。本文基于YouTube频道「Superlinear」的一期深度讨论,结合开发者Brandon的实战经验,剖析AI编程代理的速度瓶颈,并给出四类可落地的优化方案。
核心瓶颈:工具调用时间被忽视
Amdahl定律在AI代理中的体现
节目中展示了一张关键图表:将代理工作时间拆解为三部分——模型推理、工具调用和人工介入。随着验证步骤(如端到端测试)增多,工具调用时间占比急剧上升,而人工介入时间因信任度提高而减少。模型推理时间我们难以控制(除非换用更笨的模型),但工具调用时间正是可优化的关键。
“如果你不能改变推理时间,人类时间已经压缩了,那么工具调用时间就是问题所在。” —— 节目原话

Amdahl定律由计算机架构师Gene Amdahl于1967年提出,原本用于描述并行计算中加速比的理论上限:若程序中某一部分的比例为p且无法加速,则整体加速比最多为1/(p+(1-p)/s),其中s为该部分可获得的加速倍数。这一定律的关键推论是——优化整体性能时,应优先投入占比最大的那部分工作,因为对小比例环节的极致优化收效甚微。在AI编程代理的场景中,当工具调用占总耗时的比例从20%上升到60%甚至更高时,即便把模型推理速度提升数倍,端到端时间的改善也极为有限。这正是为什么文章强调要先“诊断耗时分布”再动手优化:只有确认工具调用已成为主导项,后续的清理、并行化、卸载才有意义。
为什么工具调用越来越慢
- 构建过程:Rust等编译型语言的项目复杂度增长,编译时间线性上升。
- 测试套件膨胀:代理倾向于为每个新功能生成测试,且默认运行所有历史测试,导致测试时间失控。Brandon的Electron项目曾出现“几分钟构建功能,一小时等测试”的窘境。
- 验证性工具调用:让代理通过点击界面进行判断(judgment)是最慢的操作。
四步优化策略:从简单到进阶
第一步:诊断工具调用耗时
在优化之前,先让代理分析最近的会话记录。可以这样提问:“我的工具调用中哪些部分耗时最长?”代理会给出大致方向(如测试、构建、代码审查),然后进一步用插桩(instrumentation)定位具体慢的测试用例。
第二步:清理低质量测试
LLM生成的测试常包含大量“垃圾测试”:测试函数名、重复覆盖、测试已删除功能等。与代理对话即可识别并删除这些测试。Brandon强调:“不要让你不理解原因的测试留在代码库中。”

第三步:并行化测试执行
默认情况下,代理按顺序运行测试(单元测试→集成测试→端到端测试)。可以指示代理“并行运行能并行的测试”。Brandon分享了一个案例:将8分钟的测试套件通过清理和并行化降至1分钟。
测试并行化通常依赖两层机制。一是测试运行器层面的并发,如Jest的--maxWorkers、pytest的-n(pytest-xdist)、Go的t.Parallel(),它们把独立的测试用例分配到多个进程或线程中执行。二是任务编排层面的并行,即同时启动单元测试、集成测试、lint、类型检查等彼此不依赖的命令。需要注意的是,并行化存在边界条件:共享同一数据库或文件系统的测试可能因竞争而产生偶发失败(flaky),端到端测试往往依赖串行状态,CPU核数不足时过度并发反而因上下文切换而变慢。因此实践中应先做测试隔离(每个测试独立的数据与环境),再按资源约束设定并发度,否则并行化只是把串行等待换成了随机的调试成本。
第四步:按需选择测试(谨慎使用)
当测试套件依然庞大时,可基于代码变更筛选测试。方法包括:
- 使用Bazel或Nix等依赖追踪工具。
- 用正则表达式匹配文件路径与测试。
- 让决策模型(如Jev)根据diff预测每个测试的相关性,设置概率阈值后跳过低相关测试。
风险提示:端到端测试与代码变更的关联性较弱,跳过可能引入隐患。建议仅在测试套件“失控”(如超过几分钟)且其他优化已用尽时采用。

进阶方案:卸载工具调用与替换快速工具
使用Crabbox卸载工具调用
Crabbox是由Peter Steinberger和OpenClaw广告团队开发的开源工具,它能将耗资源的工具调用(如测试、构建)推送到远程机器执行,再将状态同步回本地。代理本身仍运行在本地,保持开发环境熟悉度。
- 支持任意机器:旧电脑、云服务器、DGX Spark等均可加入集群。
- 自动负载均衡:Crabbox负责排队和资源调度。
- 跨团队共享:可建立机器池供多人使用。
Brandon在Electron项目中用Crabbox将测试卸载到家里的DGX Spark,解决了RAM爆满和电脑卡死的问题。
远程执行(remote execution) 在构建系统领域已有成熟先例:Google的Bazel支持Remote Execution API,把编译动作分发到集群并按内容寻址缓存结果;Nix则通过内容寻址的派生(derivation)实现跨机器的构建复用。Crabbox的思路与此一脉相承,但面向的是AI代理的通用工具调用——不只是编译,还包括测试、lint、代码审查脚本等。其技术前提是环境一致性:远程机器必须能复现本地依赖、环境变量与工具链版本,否则会出现“本地能跑、远程失败”的偏差。此外,状态同步是这类方案的主要开销来源,传输大量构建产物和测试日志可能抵消一部分收益,因此实践中应尽量让远程端返回结构化摘要而非原始文件。
替换更快的工具链
在Web开发中,ESLint可替换为OxLint(快约100倍),Node.js可替换为Bun,React打包器也有更快的选择。甚至有人用Rust重写TypeScript编译器,速度提升2-5倍。
Brandon还分享了自己用代理构建Swift快速linter的经历:传统Swift linter耗时5-10秒,他的版本仅需100毫秒。这证明在代理辅助下,为特定语言生态构建快速工具已不再遥不可及。

行动指南:优化顺序与心态
建议按以下顺序尝试优化:
- 诊断耗时分布。
- 清理坏测试。
- 并行化测试。
- 使用快速工具(如OxLint)。
- 卸载工具调用(Crabbox)。
- 自建快速工具(仅当其他方案不足时)。
节目最后,Brandon提出一个观点:“过度工程已死”。在token充裕的当下,大胆尝试疯狂想法是值得的——大约五分之一的自建工具能成功,但一旦成功,收益巨大。
结语
AI编程代理的速度瓶颈往往不在模型,而在工程反馈循环。通过诊断、清理、并行化、卸载和替换工具,你可以显著缩短等待时间,让代理真正成为高效的生产力工具。下次代理卡顿时,先看看它在等什么——答案可能出乎意料。
相关推荐

Cursor AI编程实战:30分钟从零构建学生管理系统
B站UP主实战演示Cursor AI编程:30分钟用自然语言生成学生管理系统。详解Agent模式、Claude模型选择、提示词技巧与使用门槛,帮你判断Cursor是否值得入手。

AI编程工具20强榜单:从夯到拉的评分矩阵
B站UP主发布AI编程工具20强榜单,从夯到拉分为T0-T4五个层级,Claude Code和Codex并列T0。本文详解评分维度(能力、可靠性、耐操性、耐久性、成本、国内可用性)及工具表现,帮助开发者选择适合的AI编程助手。

Vibe Coding系统教程:零基础玩转AI编程实战
B站UP主耗时三个月打造的Vibe Coding系统教程,覆盖Codex、ClaudeCode、Cursor等AI编程工具,从基础逻辑到商业级项目实战三段式讲解,适合零基础学习者系统入门AI编程。