Codex 生成代码不等于交付:用测试和审查识别 AI 编程幻觉

发布时间:2026/11/9 9:29:51

Codex 生成代码不等于交付:用测试和审查识别 AI 编程幻觉 Codex 生成代码不等于交付用测试和审查识别 AI 编程幻觉OKOK大家好欢迎大家来到大鹏 AI 教育我是张大鹏。AI 编程最危险的时刻往往不是它明显报错而是代码看起来非常专业类型标注齐全、注释流畅、函数命名合理甚至还能跑起来但业务含义是错的。这篇文章不用抽象口号而是用一个折扣计算函数做边界实测先明确业务契约再检查差异、运行测试、做人工裁决。最终目标不是证明 Codex 会不会犯错而是建立一条“即使 AI 犯错错误也难以进入交付物”的工程链路。来源与证据知识依据RuyiBookCourse 中《Codex 智能体工程》“AI 代码审查与责任边界”和“用 Codex 建立 Python 交付闭环”用于确定审查、测试和人工责任边界。实践依据本文的折扣函数与边界测试已在本地执行pytest结果为3 passed不是仅凭代码外观推断正确性。官方资料OpenAI Codex 开发者文档。什么才算 AI 编程幻觉在编码场景里幻觉不只是假造不存在的 API。以下情况都值得警惕编造仓库中并不存在的函数、配置或文件路径误解金额、时间、权限等业务语义为了让测试变绿而删除关键断言修改了需求之外的模块给出“已验证”结论却没有运行对应命令忽略版本差异套用过期参数把静态检查通过等同于业务正确。这些问题有一个共同点输出形式像答案但证据不足。先写业务契约再让 AI 写代码假设需求是“计算折扣后的价格”至少要先确定price不能为负数discount_rate使用0到1的比例20% 折扣表示支付原价的 80%金额统一保留两位小数非法输入必须明确失败。如果只说“写一个折扣函数”AI 可能把discount_rate20理解成 20%也可能把折扣金额直接累加到总价。需求没有表达清楚时错误不全是模型问题还是任务契约把关键判断权让了出去。一个看起来合理的错误实现fromdecimalimportDecimaldeffinal_price(price:Decimal,discount_rate:Decimal)-Decimal:returnprice*discount_rate函数能运行类型也没有报错。但输入100和0.20时得到20这到底是折扣金额还是最终应付金额如果业务要的是最终价格正确结果应该是80。这种错误靠语法检查发现不了因为代码在语法层面完全成立。修复后的实现fromdecimalimportDecimaldeffinal_price(price:Decimal,discount_rate:Decimal)-Decimal:ifprice0:raiseValueError(price must be non-negative)ifnotDecimal(0)discount_rateDecimal(1):raiseValueError(discount_rate must be between 0 and 1)return(price*(Decimal(1)-discount_rate)).quantize(Decimal(0.01))这里没有追求复杂而是把业务边界直接写进代码输入范围明确公式明确金额精度明确。测试不能只覆盖快乐路径第一条测试验证核心业务含义fromdecimalimportDecimalfromdiscountimportfinal_pricedeftest_twenty_percent_discount()-None:assert(final_price(Decimal(100),Decimal(0.20))Decimal(80.00))再补充非法边界importpytestpytest.mark.parametrize(rate,[Decimal(-0.01),Decimal(1.01)],)deftest_rejects_invalid_discount_rate(rate:Decimal)-None:withpytest.raises(ValueError):final_price(Decimal(100),rate)本地真实运行$ python -m pytest -q test_discount.py ... [100%] 3 passed三条测试并不多却分别保护了核心结果与上下边界。测试的价值不在数量而在是否对应真实风险。测试通过仍然不代表可以交付AI 可能通过改变测试来“解决”失败。例如把期望值从80.00改为20.00流水线会变绿但业务错误被合法化了。因此测试结果必须和代码差异一起审查gitdiff-- discount.py test_discount.py python-mpytest-qtest_discount.py审查时至少回答代码变化是否只在授权范围内测试断言是否仍然表达原始业务要求是否新增了没有解释的依赖或网络访问是否处理了边界值和异常路径命令输出能否证明文章声称的结果用四层测试覆盖不同风险真实项目可以把验证分成四层单元测试验证纯业务规则和边界契约测试验证模块、API 或制品字段的兼容性集成测试验证数据库、文件系统和外部适配器端到端测试验证少量关键业务闭环。不要为了显得“工程化”而把所有情况都塞进端到端测试。测试越接近底层业务规则通常越快、越稳定也越容易定位问题。端到端测试只保留最关键的成功与失败路径。建立可审计的验证记录让 Codex 完成任务时不要只要一句“已修复”。要求它保留修改了哪些文件差异为什么符合需求新增或更新了哪些测试实际运行的命令和退出码关键输出尚存风险哪些判断需要人工批准。一个可用的完成报告可以是修改discount.py、test_discount.py 验证python -m pytest -q test_discount.py 结果3 passed退出码 0 未验证未连接真实订单数据库 人工检查确认 discount_rate 的业务定义为比例这比“测试都通过了”多不了几行却能让下一位审查者知道证据覆盖到哪里、没有覆盖到哪里。权限边界也是幻觉控制的一部分如果 AI 可以任意修改文件、访问网络、读取凭据并直接发布那么一次错误判断的影响会被放大。更稳妥的做法是按任务开放最小权限代码审查默认只读本地开发只写当前工作区网络访问按域名或任务开放凭据不进入提示词、日志和测试夹具发布、付款、删除数据等高影响动作保留人工批准测试失败时停止而不是自动放宽边界。权限不是用来阻止 AI 工作而是把错误限制在可恢复范围内。三类常见误区误区一让同一个 AI 生成、审查并批准生成者天然容易沿用自己的假设。至少要把“生成”和“最终裁决”分开关键变更由人确认。误区二没有发现就等于没有问题一次 AI 审查没有输出发现只能说明它在当前上下文中没有识别到问题不能证明系统安全或业务完全正确。误区三用 Linter 重复替代业务审查格式、未使用变量和简单类型问题交给确定性工具AI 审查应关注跨文件语义、错误路径、权限和需求偏差。可以直接复用的交付门每次 AI 编程完成后按顺序检查固定需求和不可改变的边界查看最终差异而不是只看 AI 摘要运行聚焦测试运行静态检查和必要的完整测试检查日志中是否包含秘密记录未验证项由责任人决定是否发布。其中任何一步缺少证据就应该把状态写成“未验证”或“需要确认”而不是“完成”。总结Codex 生成代码不是交付终点而是验证流程的输入。识别 AI 编程幻觉的核心不是猜模型什么时候会错而是用业务契约、差异审查、分层测试、最小权限和人工批准建立证据链。只要每个结论都能追溯到代码、命令输出和责任人即使模型偶尔犯错错误也很难悄悄穿过发布门。参考资料RuyiBookCourse《AI 代码审查与责任边界》“修复与验证”RuyiBookCourse《用 Codex 建立 Python 交付闭环》“测试金字塔要对应风险层级”OpenAI Codex 文档https://developers.openai.com/codex/
延伸阅读

更多相关文章

2026/11/9 9:29:49

西安选培训机构避坑全攻略:看准这 4 点不踩雷!

在西安这座科教资源密集的城市,各类培训机构层出不穷,从职业技能到兴趣深造,选择面广但门槛参差。不少人冲着 “高薪就业”“快速入门” 报班,最终却遭遇师资注水、退费无门、学完与市场脱节的窘境。 其实挑选靠谱机构有章可循&am…

2026/11/8 21:27:16

部署SoulChat服务:本地服务器与云端平台的高效实现教程

部署SoulChat服务:本地服务器与云端平台的高效实现教程 【免费下载链接】SoulChat 中文领域心理健康对话大模型SoulChat 项目地址: https://gitcode.com/gh_mirrors/so/SoulChat SoulChat是中文领域领先的心理健康对话大模型,能够提供专业的情感支…

2026/10/26 17:45:21

一个关于水壶的笑话

一个程序员走进厨房,拿起水壶准备烧水。 同事问:"你干嘛呢?" 程序员:"我要烧一壶水。" 同事:"那你得先检查水壶里有没有水。" 程序员愣了一下,把水壶放下,走…

2026/11/9 9:29:26

考个电工证贵吗考试真题与备考技巧

电工证考前押题怎么搞?实操考试心里没底怕挂科?南阳卧龙区从业者都这么做 实操考试心里没底怕挂科?南阳卧龙区的水利工程从业者都懂,电工证考试不光是理论,实操也是一关。尤其对新手来说, 考前押题…

2026/11/9 9:29:26

昭通巧家县电工证通过率揭秘:实操考试心里没底怕挂科?全攻略来了

昭通巧家县电工证通过率揭秘:实操考试心里没底怕挂科?全攻略来了 实操考试心里没底怕挂科?这几乎是每个想考昭通巧家县电工证的考生都会遇到的困扰。特别是对于刚转岗的许昌从业者,面对高压电、低压电、实操操作等考试内容,心里没底是常态。但别担心,这…

2026/11/9 9:29:26

莱芜高级电工证怎么考2026河南最新政策出炉,别再被中介坑了

莱芜高级电工证怎么考2026河南最新政策出炉,别再被中介坑了 你是不是正愁不知道哪里报名考莱芜高级电工证,怕被中介骗钱?2026年河南最新政策已经明确,报考流程、费用、条件都有新变化,咱们今天就讲清楚,带你一步步避开那些坑。…

2026/11/9 9:29:26

电工证网上复审入口出官方回应来了,鹤壁中小施工企业怎么避坑

电工证网上复审入口出官方回应来了,鹤壁中小施工企业怎么避坑 你是不是也遇到过这种情况,不知道去哪报名怕被中介坑?电工证网上复审入口出,官方回应说可以在应急管理部官网直接办理,但你真的了解流程吗?今天就从鹤壁中小施工企业负责人的角度,手把手教…

2026/11/9 9:24:25

安宁考电工证到哪里考 低压电工证报名门槛低吗

安宁考电工证到哪里考 低压电工证报名门槛低吗 你是不是也担心自己学历不够,考不了电工证?别慌,今天就告诉你 安宁考电工证到哪里考 ,还有 官方报名入口 怎么找,别再被中介骗钱了。 一、安宁考电工证到哪里考?官方报名入口其实就在这…

2026/11/9 0:37:55

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/9 0:03:09

建设厅的特种工有哪些含金量高?别交完钱考不过

建设厅的特种工有哪些含金量高?别交完钱考不过 怕考不过白交培训费?别急,先搞清楚建设厅的特种工有哪些含金量高的证,再决定是不是值得投入时间和金钱。 建设厅的特种工证是建筑行业里最基础、也最实用的证书之一,涉及多个作业类别,每种证的 含金量…

2026/11/9 0:03:09

荆门市电工证报名怎么考才靠谱 全国通用证别交冤枉钱

荆门市电工证报名怎么考才靠谱 全国通用证别交冤枉钱 怕考不过白交培训费?荆门市电工证报名前必须知道这些避坑指南。别看网上一堆培训机构广告,真要报个电工证,很多人被坑得一塌糊涂。特别是那些打着“包过”旗号的,最后不是考试不过,就是证不是全国通…

2026/11/9 0:03:09

高空电工作业过程通过率揭秘:怎么选靠谱机构不被坑

高空电工作业过程通过率揭秘:怎么选靠谱机构不被坑 不知道去哪报名怕被中介坑?你不是一个人。现在特种作业证报名渠道五花八门,从线下培训机构到线上代理,真假难辨。尤其是像高空电工作业这类高风险、高门槛的作业类型,证书含金量和考试通过率直接影响你…

2026/11/9 6:30:27

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/7 14:50:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑