分析 43 小时日志,定位智能体耗时
作者分析两个客户项目的 43 小时智能体会话,发现模型耗时仅占 16%,其余花在测试、构建、部署、轮询和等待人工响应上。其 analyse-bottleneck 技能用 Python 对 Claude Code 日志进行耗时归因,并给出优化建议及估算依据。
AI 深度解读
AI 编程助手越来越慢,先别急着换模型。作者分析了两个客户项目共 43 小时的 agent 运行记录,发现模型思考和输出只占 16%,大量时间花在测试、构建、部署、轮询,以及等待人类回复上。
这份记录的价值,是把「感觉模型变慢了」拆成了具体工程问题。不过,作者给出的节省时间既有已落地结果,也有待验证的估算,需要分开看。
先把时间分清,才能知道该优化谁
作者有超过 15 年编程经验,依然会积累技术债。接入 agent 后,这些债务更难察觉:任务跑完只看到最终回复,中间反复执行了什么,很容易被忽略。
Claude Code 会在本机保存带时间戳的会话记录。作者做了一个 skill,叫 analyse-bottleneck,把运行时间归入测试、构建、部署、轮询、脚本、模型处理或等待用户等类别。时间统计由普通 Python 完成,不依赖 AI;工具随后给出修复建议,并展示估算依据。

Project 1 的 agent 运行共 36.5 小时,模型思考和输出占 5.3 小时,测试、Shell 脚本、轮询和部署占 26.4 小时。图中还单列了等待作者的 49.7 小时,不能把它与运行时间混成同一个统计口径;报告展示的预计可节省时间约为 4.1 小时。
模型只占一小部分时,换更快的模型也解决不了主要等待。
但这个结论限定在作者采样的项目和会话里,不代表所有 AI 编程任务都有同样的分布。
测试和部署,为什么会被重复成本拖慢
Project 1 在修复过程中反复运行范围较大的测试套件,共 87 次、累计 3 小时。作者估算,迭代时只跑相关测试,每周可以节省约 1.8 小时。
另一个成本藏在初始化里:每轮测试约 16 秒,其中应用 51 个数据库迁移就占了 6 到 9 秒。缓存已经完成迁移的数据库,预计还能节省约 1 小时。
单次多等几秒并不显眼,反复执行后就成了大头。agent 执行得越频繁,重复准备工作越值得检查。
部署也有类似浪费:每次都构建一个最终镜像根本不使用的 Docker 阶段,占部署耗时中位数 15.9 分钟里的 5.4 分钟。作者给出的修复是设置 DOCKER_BUILDKIT=1。这里针对的是他们项目中无用阶段被构建的问题,不能据此认定所有 Docker 慢构建都能靠这一行解决。
已落地的是 Project 2:后台 worker 的镜像构建从 20 到 24 分钟降到不足 1 分钟,修复过程中的一次测试从 19 分钟降到 35 秒。原文没有完整交代这两项结果各自对应哪些改动,不能把全部收益归给某个开关。
等状态和等人,也能耗掉大量时间
一个等待循环竟然跑了 47 分钟,原因是 pgrep -f 匹配到了循环自身的 Shell。它想确认目标进程是否结束,却把自己也当成了目标。
Project 2 则为 12 次部署检查了 134 次状态。每次检查都会重新读取上下文,累计消耗 1660 万 tokens。作者建议,用一条部署完成后才返回的阻塞命令替代反复查询,让工具等结果,减少 agent 一轮轮介入。
人也在等待链路里。作者发现,agent 有 28 次完成工作后等待下一条消息,每次等待的中位数为 5 分钟。他准备通过 Stop hook 在停止时发送手机通知,并在 CLAUDE.md 中列出允许 agent 自主决定的事项。
这两种改进解决的是不同问题:通知减少漏看,决策清单减少不必要的来回确认。
我的判断
我认同先测量再换模型。测试初始化、无用构建阶段和错误轮询,都是可以定位的工程问题;提高模型速度不会自动修复它们。
不过,「每周约省 5 小时」还不能视为完整验证后的稳定收益。Project 2 已有前后耗时,Project 1 的修复仍在上线,作者计划一周后复测。原文没有给出统一对照条件,也没有展示任务规模和正确性检查是否一致。
只跑相关测试适合缩短修改过程中的反馈周期,但最后仍要按项目要求完成必要检查。缓存迁移后的数据库,也得考虑迁移变化和测试隔离。原文没有说明这些边界如何处理。
此外,命令耗时容易统计,模型思考和工具等待的边界如何划分,原文没说清。它适合作为排查线索;「AI 往往不是瓶颈」仍是基于有限项目的经验判断。
能拿来做什么
- 给近期较长的 Claude Code 会话做一次耗时拆分,先找测试、构建和等待中最大的部分,再决定是否值得换模型或升级套餐。
- 检查前端或 Node 项目的测试迭代流程,确认是否每次都跑全套、重复初始化数据库;把局部验证与最终检查安排清楚。
- 检查部署脚本里的状态轮询,尤其是
pgrep -f的匹配范围;工具支持等待完成时,优先让一次命令返回最终结果。 - 需要试用作者工具时,可以执行下面两条命令。关注第二行的插件标识,保持与 marketplace 对应:
claude plugin marketplace add jindraregal/analyse-bottleneck
claude plugin install analyse-bottleneck@jindraregal