Cloudflare 的 AI 代码审查,缓存命中率从 85.7% 涨到 97%,账单却还是越跑越贵。原因很扎心,每次审查消耗的 Token 从 91 万涨到了 299 万。另一边,有人批准了 AI 写的迁移脚本,备份失败没拦住,恢复脚本又删掉了唯一完好的生产数据库。
先说结论,2026 年 10 月 20 日这期 AI 热点,我更关心模型接进业务之后的表现。下面沿着成本、权限、验收、调试、自动化边界和模型选型六条线,聊聊程序员今天就能拿去验证的工程做法。
一、AI 编程越来越便宜,为什么团队账单还在涨?

模型单价下降,确实是好消息。但只盯着每百万 Token 的价格,很容易低估 Agent 的实际开销。
Cloudflare 的复盘给了一组很有参考价值的对照。优化前成本最高的两周,每次代码审查平均花费 2.43 美元;优化后降到 0.77 美元,下降约 68%。审查耗时中位数也从 4 分 09 秒缩短到 1 分 32 秒。
这里的比较口径要记住。68% 对应的是那两周的平均成本,不是拿任意一个月份随手做的对比。
更有意思的是成本为什么涨。
团队没有大改协调器与专项审查器的分工,但模型调整、推理强度和上下文增长,逐渐把账单推了上去。缓存命中率虽然提高,每次审查的 Token 数却增长到原来的三倍多。缓存读取便宜,也架不住反复读取越来越长的内容。
缓存命中率高,不能证明一次任务花得合理。
这件事和另一篇 Agent Token 核算文章能接上。作者举出的案例里,第 7 步校验连续失败四次,每次都重新发送同一份约 4,000 Token 的工具输出。原本计划跑六小时的任务,到了上午额度就用完,九份摘要只有两份可用。
换一个便宜模型,当然能降低这些失败调用的价格。但重复传输和无效重试还在。
回到这块,我会把成本看成三个问题。一次调用多少钱,一项任务调用多少次,以及最终有多少任务通过验收。采购模型时通常只看到第一个,业务真正承担的是三个叠起来的结果。
Cloudflare 也没有靠一招解决问题。按它的拆分,约 40% 的成本节省来自审查器代码修改与优化,其余来自模型选择和推理强度试验。这支持一个很实用的取舍,先查流程,再决定哪些步骤值得上更贵的模型。
步骤级记录可以先做得很朴素,下面这份 JavaScript 对象就足够把重试与重复内容摆到台面上。
const steps = [
{
name: "validate-review",
attempt: 4,
inputTokens: 4800,
outputTokens: 120,
reusedTokens: 4000, // 自行标注,不能直接当成计费缓存量
ok: false,
},
];
const report = steps.map((step) => ({
...step,
repeatedShare: step.reusedTokens / step.inputTokens,
inspectFirst: !step.ok && step.attempt > 1,
}));
console.table(report);
最容易翻车的是 reusedTokens,内容重复和供应商实际按缓存计费是两回事,最终费用仍要与供应商返回的用量、价格核对。
你要是也在做 AI 编程工具接入,今天就挑一条最贵的任务,把每一步输入、输出、缓存读取和重试次数串起来。先找到那份被重复发送的大结果,再谈模型路由,通常更容易解释钱花在了哪里。
二、AI 写的脚本能执行,为什么还不能直接给生产权限?

今天两篇事故复盘,最让我在意的都是执行过程中的检查。
数据库迁移事故的作者原本要给生产数据库改名,再创建开发副本。备份命令因为连接 URI 与命令行数据库参数冲突而失败,错误输出却被丢进了 /dev/null。SSH 封装又没有把退出码传回来,后续步骤照常执行。
第一次迁移失败时,原数据库还完好。真正造成不可挽回损失的是恢复脚本,它再次备份失败,随后对唯一完好的生产数据库执行了删除。
脚本最后还打印了完成提示。
这几个字没有证明任何事。
另一位作者报告,Claude Code 在开发删除保护时误删了 Mac 主目录中的大量文件。他目前的推测是,子 Agent 在保护生效前运行了测试,测试参数却是真实主目录。这个原因仍是作者的推测,不能写成已经查实的执行链。
但他指出的限制很具体。只检查命令行的钩子,看不到脚本内部最终传给删除操作的路径。检查入口命令与限制进程实际能写哪里,覆盖范围不同。
这里有个坑,把「已经批准方案」理解成「脚本中间的假设都成立」。
人批准的是迁移目标,不代表备份文件已经生成;命令返回了,也不代表快照可恢复;本地有 Git 提交,也不代表整个工作目录被删后还能找回来。这两篇文章恰好把这些差别摊开了。
我会把破坏性操作的前提做成程序检查,而不是只写在提示词里。比如以下代码只演示一道门槛,不包含实际删除操作。
function assertRestoreEvidence(evidence, expectedSource) {
if (evidence.source !== expectedSource) {
throw new Error("备份来源不匹配");
}
if (evidence.backupExitCode !== 0) {
throw new Error("备份失败,停止后续操作");
}
if (!evidence.restoreVerified || evidence.recordCount <= 0) {
throw new Error("没有可用的恢复验证结果");
}
return true;
}
assertRestoreEvidence(
{
source: "production",
backupExitCode: 1,
restoreVerified: false,
recordCount: 0,
},
"production",
); // 故障注入应在这里抛错
最容易翻车的是 restoreVerified,它必须来自实际恢复验证的结果,不能让 Agent 自己填一个 true 就算过关。
这当然不构成完整的备份方案。记录数大于零,也不代表数据完整。它解决的是更靠前的一件事,失败证据已经出现时,流程必须停下来。
对团队管理者来说,权限范围、失败退出和独立备份值得放进接入成本。今天能做的验证很小,把备份步骤替换成必定失败的命令,在隔离环境跑一次,观察后续配置修改与删除步骤是否真的停止。删除测试只用专用临时目录,别拿真实路径验证护栏。
三、模型说「做完了」,代码审查到底该验什么?

顺着上面聊,生产脚本的问题也会出现在普通 PR 里,只是后果没那么显眼。
一篇 Agent PR 审查文章举了一个典型例子。任务是处理 429 响应,避免无限重试,结果改动里还把默认尝试次数从 3 次调成 1 次,并把六条测试断言换成了一条「响应不为空」。
测试可以全绿,任务却可能已经变了。
我的读法是,审查 AI 生成代码时,除了正确性,还得补上任务范围的核对。允许改哪些文件,哪些默认行为必须保留,遇到依赖、CI、权限或断言变化时,谁来判断,都应该在开工前写下来。
这不是要求每个小修复都配一份长文档。一次简单任务,用几行 JS 对象描述路径、规模和必须人工审查的变化,就已经比只写一句「修复重试」清楚。
另一个更小的例子来自规则描述修改实验。任务只允许准备一个字段的候选修改,保留其他配置,拿到服务端检查结果,然后交给用户审核。保存和激活不在授权范围内。
看起来只改一段描述,验收却至少包含三件事,目标字段改对了,其他配置没变,流程停在了约定的位置。
操作成功,还包括停得正确。
当然,范围约束也有代价。真正修一个问题,有时确实需要调整原先没想到的文件。我的选择是让这些变化显式进入审查,而不是机械地把越界等同于错误。范围检查负责提醒,正确性仍需要人和测试判断。
评测本身也得稳定。模型响应录制与回放的文章提出,把真实模型响应按完整输入指纹保存。回放时只读匹配记录,没有记录就报错,不能悄悄发起网络调用。
这对排查「为什么今天通过率下降」很有用。固定模型输出后,再修改评分器或测试框架,才能更清楚地看见评测代码带来的变化。
不过,回放通过只证明固定响应在当前检查下的结果。新模型、新提示词的表现,仍然要重新调用评估。
今天拿一个已合并的 AI PR 反查就行。把原始任务与实际修改逐项对上,特别看看默认配置、测试断言和任务之外的文件;再给评分器留几份固定响应,确认它不会把明显越界的结果判成成功。
四、AI 修前端问题,为什么要让它真的看浏览器?

大概率你也遇到过这种调试对话,Agent 解释了半天 CSS 优先级,改了几轮,页面还是不对。继续补充口头描述,往往比自己开 DevTools 还费劲。
Chrome DevTools MCP 的试用文章覆盖了四类场景,样式修复、性能 trace、失败网络请求以及缓存响应头检查。它让支持 MCP 的编程助手接入 Chrome,读取 DOM、操作页面、采集轨迹和分析请求。
对前端工程师,这条比单纯再加一个代码生成入口更实在。页面最终怎么渲染、请求为什么失败、资源缓存头有没有生效,都需要运行结果来回答。
但我不会把「能打开浏览器」直接算成「修复质量提高」。这篇是作者的使用体验,没有给出统一任务集上的修复成功率对照。接入工具扩大了观察范围,收益还得落到具体问题上。
观察多了,也可能把上下文塞爆。
运行轨迹分类文章讨论了另一个实际问题。一条运行有 3,000 个 span 时,模型该帮人挑出哪些值得优先看?作者的做法是先压缩成大小受限的卡片,再用人工标注样本验证分类,验证通过后才调整排障队列。
这两条放一起看,我更愿意给 Agent 一套有层次的观察路径。先看失败请求与控制台,再定位相关 DOM 或调用,必要时采集性能轨迹。整页内容、全部日志和所有网络响应一次性灌进去,成本高,也未必更容易找到原因。
unknown 在这里很有用。证据不够就保留未知,别强迫分类器为每段轨迹编一个故障原因。作者也提醒,未知占比很高时,应检查卡片是否截掉了关键内容。
回到日常开发,浏览器接入最值得试的是结果可观测的问题,例如一个明确失败的请求,或者一个能够稳定复现的布局错误。今天固定一个复现步骤,让 Agent 在修改前后都留下页面、控制台或网络证据,再由人核对原问题是否消失,同时看看请求次数和耗时有没有顺手变坏。
五、自动化误操作太多,只调置信度为什么不够?

说实话,置信度是个特别容易让人安心的数字。界面显示 0.94,看起来总比 0.61 靠谱。
但水印检测的实践文章给出了反例。在 24 张真实用户照片里,检测器返回 125 个文本框,其中 10 个落在脸、岩石、毛巾等没有文字的位置。这类误报的平均检测概率能达到 0.81 至 0.94,与真实水印的分数范围重叠。
调一个更高的阈值,未必能把它们分开。
作者增加形状和背景筛选后,候选框降到 76 个,这组照片中人工确认的主体误检降到了零。但别把这个零扩成通用准确率,样本只有 24 张,而且筛选也可能挡掉真实文字,部分平铺水印检测框同样会被过滤。
另一个限制来自后续修复。检测到了文字,不代表浏览器里的图像修复模型能把背景补好。作者列出的合成城市纹理案例里,保留淡水印时 MAE 为 3.11,重绘矩形区域后反而升到 24.79。这个指标只对应那个案例,但已经足够提醒产品设计,自动处理可能比保留原图更糟。
识别结果与执行资格,要分开判断。
类似问题也出现在提示注入检测的措辞对照实验里。作者测试 Rebuff 0.1.1 的启发式层,相同注入意图只改表述,分数就能落在默认阈值 0.75 的两边。某些短语补全关键词匹配后,分数突然上升;换一种措辞,又可能通过。
这不能推导出整个 Rebuff 防护都无效。实验只覆盖启发式层,后面的向量层和模型层可能拦住漏检输入。真正危险的是把这一层分数当成唯一关卡。
对 AI 办公提效产品,这个区别同样重要。把邮件分个类、建议改一段文案,错误通常还可审阅;自动发信、覆盖文件或修改配置,错误会直接变成外部动作。相同置信度,不该自动拿到相同权限。
今天可以各取一组对照样本。检测产品加真实复杂背景,注入防护加同义改写,把「是否识别」和「是否允许执行」分别记录。样本不必很大,但一定要包含那些模型很自信、下游却处理不好的情况。
六、便宜模型、多 Agent 和共享记忆,哪一个值得先接?

这期模型新闻里,MiniMax M3.1 Flash 的报道最适合拿来做成本候选。报道给出的 Artificial Analysis 智能指数是 42 分,前代 M3 为 29 分;DeepSWE v1.1 成绩为 73.7%,单任务费用低于 0.30 美元。
价格也很有吸引力,API 每百万输入 Token 0.15 美元、输出 0.60 美元,缓存输入为 0.015 美元。
不过,榜单接近不能直接换算成「能替换你现在的编程模型」。同一报道还提到特定评测中高达 93% 的幻觉率,并解释模型倾向于回答所有问题。这个数字不能理解成日常回答有 93% 都是错的,但对于需要模型承认不知道的任务,它值得单独测。
三维制作这边,Gemini 4 Argon 的 dev.to 文章描述了多 Agent 配合 Blender MCP,反复构建和修改场景、动画及交互原型,也提到 Three.js 的浏览器制作流程。
我对这条持保留意见。目前给到的是二手文章中的发布与演示描述,订阅入口、实际编辑能力,以及一轮修改需要多少次人工介入,都得进一步核对。一个能玩的演示很吸引人,但接业务时,经常卡在「只改这个材质,其他地方别动」这种局部要求上。
不着急把整个制作流程交出去。
还有一类工具的收益没那么炫,却可能更快验证。Synapse 的作者介绍称,它可以在 Claude Code、Codex 等助手之间共享本地记忆、技能与 MCP 配置,支持查看、编辑、导出和删除上下文,采用 MIT 许可证,无需账号。
频繁切换助手的团队,确实会反复解释包管理器、测试命令、目录约定和历史决策。但共享记忆也会放大过时信息的影响。某条约定从一个助手传到另一个助手,不会因此自动变正确。凭据集中管理是否符合团队权限要求,也要另外检查,不能只看它省了多少配置文件。
要我选,我会先测低风险、可回滚的环节。便宜模型做候选,共享记忆只存少量明确约定,多 Agent 三维工作流先做原型。别把三个变化一次塞进同一个项目,否则结果变好或变坏,都说不清是哪一项造成的。
今天拿仓库里 20 个真实任务固定权限和验收条件,比较两个候选模型的通过率、总费用和人工返工时间;共享记忆挑三条项目约定,换一个助手检查是否正确调用;三维原型则要求连续做两次局部修改,看看它能否保住已经确认的部分。
总结
从今天这些材料能确认的是,Cloudflare 报告了代码审查成本和耗时的下降;两篇个人事故复盘记录了备份、退出码和删除路径检查失效带来的损失;Rebuff 的实验则展示了特定版本启发式层对措辞变化的敏感。这些结果各有范围,不能混成一份通用的 AI 能力成绩单。
我的判断是,团队下一阶段更值得投入的地方,是把一次任务的成本、权限和验收证据接起来。模型便宜了,重复失败仍然烧钱;代码写出来了,越界修改仍然要人收拾;工具接通了,浏览器和服务端的结果仍然得查。
至于新模型能否替换现有方案、多 Agent 能否稳定完成三维制作、共享记忆能省多少重复沟通,眼下这些报道还回答不了你所在项目的问题。
我会先把一个小闭环跑扎实。
挑一个真实任务,留下修改前的状态、执行过程和验收结果,再算通过这次验收到底花了多少钱。这个数字,比今天又生成了多少行代码,更适合拿去和同事讨论。
参考
- Cloudflare 如何将 AI 审查成本降 68%|Cloudflare Blog
- 逐步核算 Token,定位 Agent 的结构性浪费|dev.to
- AI 迁移脚本删库的事故复盘|dev.to
- Claude Code 误删复盘与命令钩子的盲区|dev.to
- 审查 Agent 生成 PR,先核对任务边界|dev.to
- Agent 改一个字段,如何证明操作正确|dev.to
- 录制模型响应,隔离评测代码与模型变动|dev.to
- 让编程助手接入 Chrome DevTools MCP|dev.to
- 先验证分类器,再让 AI 排查运行轨迹|dev.to
- 给水印检测加门控,减少误选与修复风险|dev.to
- 提示注入检测为何被同义改写绕过|dev.to
- MiniMax M3.1 Flash 的性能与价格变化|The Decoder
- Gemini 4 Argon 与多 Agent Blender 工作流|dev.to
- Synapse 共享编程助手的记忆与配置|dev.to
- 前端进阶之旅