一场新闻翻车,先把真正的警报听清

2026 年 2 月,Ars Technica 撤回了一篇原本发表于 2 月 13 日的报道。原因很难看,也很典型:稿件里出现了被写成真实受访者发言、实际上却并不存在的引语。随后,Ars 总编辑 Ken Fisher 公开致歉,把这件事定性为一次严重的标准失守;共同署名记者 Benj Edwards 也承认这些引语来自 AI 工具生成,自己没有完成应有的核实。2 月底,Ars 解雇了他。

这件事当然先是新闻业事故。但如果只把它理解成一家媒体的编辑翻车,判断就小了。更值得警惕的地方在于,它几乎像一场提前到来的演示:当 AI 的生成速度快过人的核验速度,真正先失灵的,往往不是模型本身,而是事实责任链。

新闻里的假引语,会伤害公信力。代码里的假逻辑、假依赖、假边界条件,伤害的就不只是公信力了,还可能是生产系统、账户资产、用户数据和真实世界里的业务承诺。文本翻车是一记耳光,代码翻车往往就是事故单、索赔函,外加凌晨三点的 on-call。

问题不只是幻觉,而是核验速度已经跟不上

今天最容易让人掉以轻心的一句话,是“AI 只是辅助,最后不是还有人看吗”。这句话在低速时代勉强成立,在高吞吐时代就开始失真。

Stack Overflow 2025 开发者调查里,一个很耐人寻味的事实是:开发者已经广泛接触 AI,但对它的信任并不高。46% 的受访者表示不信任 AI 输出的准确性,只有 33% 表示信任。更关键的是,开发者越靠近那些需要承担后果的环节,态度就越保守。像提交代码、评审代码、部署和监控这类高责任工作,明显没有因为工具更顺手就自动放下戒心。

另一组更直接的数据来自 Sonar 2025 年的开发者调查:72% 的开发者表示每天都在使用 AI 编程工具,42% 说自己已经把 AI 生成的代码提交进代码库,但 96% 又说自己并不完全信任输出结果,48% 表示总是需要再检查一遍,38% 甚至觉得代码评审因此更难了。这个组合非常说明问题:生产速度在上升,核验成本也在上升,而且升得并不慢。

这还只是“人把 AI 当助手”的阶段。到了 AI coding agent 开始自己提 PR、自己串工作流的阶段,速度差会进一步拉开。2025 年对 GitHub 开源生态的研究已经观察到,AI agent 创建的 pull request 占比在半年里从 15.85% 升到 22.60%,而且 agent 产出的代码提交通常更大、修改更集中。这意味着什么?意味着不是“有没有人审”这么简单,而是人类工程师面对的输入规模,正在变成一个新的治理问题。

如果 AI 五分钟写完一段服务端改造,审阅者却要花半天重新理解上下文、边界条件、异常路径和回滚影响,那么组织里真正稀缺的资源就不再是“写代码的人”,而是“能负责任地看懂并签字的人”。

代码方向的幻觉,已经不是抽象风险

很多团队谈代码生成的风险,还是停在一句很空的话上:LLM 会幻觉。问题是,这句话已经不够用了。更实际的问法应该是:它具体会怎么错,错到什么程度,会以什么方式进入代码库。

先看依赖包幻觉。2024 年关于代码生成模型的一项系统研究发现,16 个主流模型在回答编程问题时,平均有 19.6% 的推荐依赖包是根本不存在的;商业模型的平均包幻觉率是 5.2%,开源模型则高达 21.7%。研究者在实验里一共收集到 205,474 个独一无二的幻觉包名。这个数字真正吓人的地方不在“模型会编包名”,而在于它把一次口误变成了可以被批量利用的攻击面。

这件事很快就不只是论文里的现象。Aikido Security 2025 年披露,一个不存在的包名 react-codeshift 被 AI 助手反复建议后,扩散进了 237 个 GitHub 仓库。这里最值得记住的不是包名本身,而是扩散机制:一旦模型把错误答案稳定说成“像真的一样”,错误就会沿着复制、粘贴、提交、再训练的链条往外传播。

再看代码本身。2025 年针对 Copilot 生成代码的研究,在真实 GitHub 项目中统计到 43 类常见弱点(CWE),其中 29.5% 的 Python 样本和 24.2% 的 JavaScript 样本存在安全弱点。另一项比较研究发现,LLM 生成的 Python 代码里有 35.2% 的样本在鲁棒性上弱于人类开发者编写的版本,最常见的问题不是“语法错了”,而是缺少必要的条件检查、边界保护和异常处理。

这恰恰是最麻烦的地方。语法错误很好抓,单元测试也常常能抓住。但漏掉边界条件、默认相信输入、异常路径没兜住,这些问题往往要等系统跑起来、流量上来、攻击真的打过来,你才知道那一行“看起来没毛病”的代码,其实是在借未来的事故。

仅靠 AI 评审 AI,并不构成安全网

接下来的问题自然是:那就让另一个 AI 来审,不行吗?

这听上去很合理,也确实有用,但把它当成完整答案就危险了。原因有两个。

第一,AI 评审并不天然稳定。2025 年一篇关于大语言模型充当评估器的研究指出,LLM 作为 evaluator 时会出现明显的不一致与偏差:换一个位置、换一种表达、换一个微小上下文,评分结果都可能漂移。放到代码评审语境里,这意味着它可以是有用的第二双眼睛,但很难天然承担最后一道责任门。

第二,很多看上去表现不错的漏洞检测成绩,本身就带着数据集泡沫。PrimeVul 这项 2024 年的基准研究指出,先前不少 AI 漏洞检测结果被旧数据集严重高估;一些模型在更严格、去重更干净的基准上,表现会明显回落,GPT-4 甚至在最严格的 Python 场景里接近随机猜测。这对工程团队的提示非常直接:别把 demo 里的高分,当成生产里的免责条款。

这并不意味着 AI review 没价值。相反,它在“有约束的二次核验”里很有价值。2025 年关于 LLM 与代码验证的综述也反复强调,更现实的方向是混合验证框架,而不是把安全检查外包给单个模型。像前面那项 Copilot 安全研究就发现,当开发者把静态分析器告警和 Copilot Chat 结合使用时,最多可以修复 55.5% 已识别出来的安全问题。这个结论很重要,因为它说明了正确姿势:AI 适合和规则、扫描器、测试、形式化约束一起工作,而不是互相装作对方已经尽职。

说得更直白一点,AI review 可以帮你缩短排查路径,但它不能替你签事故复盘。

真正开始失灵的,是旧的软件工程契约

过去的软件工程有一套默认契约,虽然粗糙,但大致有效。

  • 写的人,大体知道自己写了什么。
  • 审的人,大体看得完自己审了什么。
  • 签字的人,大体承担签字之后的结果。

AI 代码生成正在把这三条一起挤压。

第一条先松。很多工程师已经不再“从头写”,而是在大段接收、局部修补、快速拼接。代码仍然是自己提交的,但理解深度不再和作者身份自动绑定。

第二条更危险。AI 提高的不只是速度,还提高了单位时间内进入团队的复杂度。你看到的变更也许还是 500 行,但其中夹带了模型从别处拼接来的模式、你并不熟悉的库、看似顺手却未经证明的假设。表面上是 review,实质上越来越像一次高压下的可信性抽检。

第三条最容易形式化。谁 merge,谁负责,这句话在人工时代还比较站得住。到了 AI 时代,它很容易退化成一种纸面契约:名字还是人类工程师,实质生成者却是模型;签字还是人类签字,但真实理解能力已经被吞吐量碾压。

关于这一点,2025 年关于责任缺口的研究有个很值得记住的发现:在多人参与、再叠加 AI 介入的协作场景里,参与者越多,每个个体被分配到的责任感就越容易下降。这个机制放到代码生成上,几乎就是一种组织级诱惑:既然“大家都看过”,那就更容易默认“应该有人真的看懂了”。问题是,很多事故恰恰就长在这个“应该”里。

人类工程师接下来要面对的,不只是效率,而是签字权

所以真正的问题不是“AI 能不能写代码”。它当然能,而且会越来越能。

真正的问题是:当 AI 的产出速度远超人类的审查速度时,人类工程师准备如何重新定义自己的角色。以后最贵的能力,也许不是再多写 300 行代码,而是能在 3000 行 AI 生成代码里判断哪些能进主干、哪些必须回炉、哪些连碰都不该碰。

这会把工程师的工作重心往 4 个方向推。

  • 从“主要负责生产代码”,转向“主要负责验证代码”。
  • 从“默认信任同事写的东西”,转向“默认把 AI 产出当作不可信输入”。
  • 从“代码 review 走流程”,转向“代码 review 明确承担风险签字功能”。
  • 从“谁写谁负责”,转向“谁让它上线谁负责”。

这也意味着团队要重写一份更现实的工程契约。至少有 5 条,应该尽快变成明确制度,而不是口头常识。

  • AI 生成代码默认视为未验证输入,不能因为“能运行”就视为“可上线”。
  • 高风险改动必须要求人类审阅者给出实质性 review,而不是只留下一个 LGTM
  • 安全扫描、类型检查、测试覆盖、依赖审计和回滚预案要前移,不能把 AI review 当成替代品。
  • 对 agent 自动提交的改动,要保留清晰的生成来源、提示上下文和责任归属记录。
  • 在支付、权限、数据删除、认证鉴权、基础设施变更等高责任区域,默认提高人工审阅门槛,必要时限制自动合并。

这里的核心变化其实很朴素:工程团队不能再假装“代码作者”天然等于“代码理解者”,也不能再假装“审过一遍”天然等于“承担过责任”。

最后别只问 AI 会不会出错,先问谁来兜底

Ars Technica 的假引语风波会过去。很多人看完之后,可能只留下一个印象:新闻写作里别乱用 AI。

这个教训当然没错,但还不够。更大的警报在于,文本领域发生的失守,往往会先于代码领域把问题的形状暴露出来。新闻业先看到的是虚构引语,软件工程接下来更可能看到的是虚构边界、虚构依赖、虚构安全感。

AI 最大的风险,也许不是偶尔说错一句话,而是它正在以超出人类核验能力的速度,批量生产仍然需要由人类负责的文本、代码和决策。

当生成越来越便宜,真正昂贵的东西会重新浮出来:理解、核验、签字、兜底。

这篇文章真正想留下的判断只有一句:以后团队最该警惕的,不是 AI 会不会写,而是我们会不会在还没重写责任契约之前,就已经把签字权交了出去。