标签

AI 翻车案例:注释号称万无一失,上线首日 CPU 飙至 100%

发布时间:2026-08-28 11:17阅读:2

💬 读者 @匿名 留言:

“我们组有个实习生,借助 AI 生成了一段‘看上去毫无破绽’的代码,声称能自动消化所有异常分支。Code Review 时大家觉得流程挺周全,就直接合入了。

结果上线当天,线上环境当场‘崩了’——那段代码在某个 Edge Case 下陷入死循环,疯狂吞噬 CPU,引发服务级雪崩。

事后复盘才明白,AI 确实覆盖了常规异常场景,但它产出的‘Catch-All’兜底逻辑里嵌套了一个递归调用,而终止条件存在缺陷。实习生没有仔细审视,Review 的同事也被代码表面上的完整性给唬住了。最讽刺的是,AI 在注释中还留下了‘此逻辑已涵盖全部已知异常场景’这样的话。

从那以后,我们立下规矩:AI 产出的代码必须经过充分的单元测试覆盖后方可合并。AI 能替你写代码,却不会替你扛生产事故——这个雷最后还是人来踩。”

01

为什么资深工程师也会被 AI“带偏”?

这位读者的踩坑经历,精准切中了当前企业落地 AI Coding 后的最大隐忧:“AI 的表层完美假象(Superficial Competence)”与“代码审查疲劳(Review Fatigue)”的叠加效应。

AI 的过度自信与“伪可靠”语法:大模型极其擅长产出格式工整、异常分支排列规整的代码,甚至会主动附带看似严谨的注释(如“边界已全部处理”),这很容易让开发者和 Reviewer 产生虚假的安全感。

危险的 Catch-All 与暗藏的递归:大模型为满足“兜住一切异常”的泛化诉求,倾向于编写兜底拦截(Catch-All),而兜底逻辑若引入隐式自调用或重试策略,一旦终止条件失守,就会演变成灾难级死循环。

“Done”的标尺被模型劫持:不少团队错把“模型已产出代码”等同于任务完成,却忽略了“未经沙箱与单测验证的代码,在工程层面等同于不可信”。

02

极狐GitLab Duo 会在哪里设防?

第一道防线:前置 Spec 约束与 AGENTS.md 规范注入

痛点根源:实习生给 AI 抛出了模糊诉求(“帮我写一个能兜住所有异常的方法”),倒逼 AI 采用激进且凶险的 Catch-All 策略。

Duo 应对方案:

严禁在异常捕获块中使用无深度限制的重试或递归;

清晰划定 Stop Condition(最大重试上限、超时熔断机制);

在极狐GitLab 中,团队可借助 AGENTS.md 与 Duo Workflow 的 Spec 机制 前置固化工程约束:

Agent 在产出代码前,强制载入团队架构规范,从源头掐灭“无节制 Catch-All”代码的诞生。

第二道防线:Duo 智能代码审查(语义级递归与反模式识别)

痛点根源:人工 Reviewer 面对上百行整齐的代码和笃定的注释时,极易陷入审美疲劳,遗漏递归终止条件的瑕疵。

Duo 应对方案:

Duo Code Review 不仅审视语法结构,更基于代码数据流与调用链路展开上下文语义分析:

当识别到函数在 catch / except 块中再次调用自身,且缺少明确的退出边界时,Duo 会在 MR(Merge Request)行内直接抛出高危预警:

⚠️ Duo Code Review 风险提示:第 42 行识别到潜在的无限递归风险(Unbounded Recursion)。函数在捕获通用异常后尝试自调用重试,但未配置最大重试计数器(Max Retry Limit)。在特定网络超时或参数非法场景下,可能引发栈溢出或 CPU 100% 占用,建议重构为循环重试并引入熔断机制。

第三道防线:Duo 自动生成针对 Edge Case 的边界单测

痛点根源:开发者未针对异常分支编写严密的单元测试。

Duo 应对方案:

极狐GitLab Duo 具备 “基于上下文自动生成单元测试(Generate Tests with Duo)” 的原生能力;

Duo 在剖析代码时,会自动针对每一个 try-catch 分支、边界条件和异常入参,产出对应的 Mock 测试用例(如故意传入异常对象、模拟网络抖动等);

在 Runner 沙箱中执行单测时,死循环会被沙箱超时机制(Timeout)即时捕获并报错,让隐形缺陷在本地验证阶段就原形毕露。

第四道防线:CI/CD 覆盖率门禁与 Branch Protection 强阻断

痛点根源:缺乏硬性门禁,未被测试覆盖的代码被径直 Merge 进主干。

Duo 应对方案:

极狐GitLab 原生的 CI/CD Quality Gates & Branch Protection 构筑终极兜底;

系统可强制配置:新增代码行(尤其是异常处理分支)的单测覆盖率未达到基线(如 85%)、或单元测试未全绿通过前,MR 的 Merge 按钮维持强行锁定状态;

无论是实习生还是资深员工,任何“看上去完美却没测过”的代码,都绝对不可能溜进生产环境。

03

让 AI 担纲生产力,让工程体系守牢底线

正如这位读者所言:“AI 能帮你写代码,但它不会替你承担生产事故的责任。”

在企业级研发场景中:

让 AI 能写出代码,是模型的本事;

让 AI 不搞崩生产环境,是平台的工程功底。

极狐GitLab Duo 的核心设计理念,正是通过前置约束(Spec)+上下文感知审查(Duo Review)+真实环境验证(CI/CD & Tests)+严格权责治理(Governance),为开发者铺就一条稳固的“工程跑道”,把 AI 的强大生产力真正关进受控、安全的制度笼子里。

互动时刻:下一期你想看什么?

你或你的团队在使用 AI 辅助研发时,还踩过哪些“啼笑皆非”或“惊心动魄”的坑?

欢迎在评论区继续留言吐槽!我们将在下一期专题中,挑选最具代表性的翻车案例展开深度技术拆解与破局实战。参与互动同样有机会赢取我们的精美好礼哦!👇