
给 Codex 戴上紧箍, 治一治 AI 的过度发挥
一句话看懂:开发者发现 AI 编程助手(如 Codex)在代码修改中频繁“过度发挥”——擅自兼容字段、重构组件、抽离工具函数,导致代码难以维护。为此,有团队总结了一套名为 codex-dev-norms 的项目级规则,用来约束 AI 的“热心”行为,确保它只做最小、最必要的事。
事件核心:发生了什么
据掘金社区一位开发者的实践分享,他在使用 Codex 写代码时,频繁遇到 AI“补过头”的问题:
- 过度兼容:接口字段明明是
title,AI 自动加了data.title || data.name || data.label,把明确契约变成一场猜谜。 - 过度重构:用户只要求改一个按钮文案,AI 顺手抽了 hook、拆了 utils、加了类型、优化结构。
- 过度抽象:看到代码重复就急于封装,忽视业务含义的差异。
- 编码问题:在中文项目中,AI 可能将中文写成 Unicode 转义字符,或默认使用错误的文件编码(如 GBK vs UTF-8)。
- 缺少改动边界感:AI 不清楚哪些文件不能动、哪些字段不能猜、哪些重复可以保留。
为此,该开发者整理了一套名为 codex-dev-norms 的 skill 文件,将项目约定拆分为多个 reference(如 code-change-boundary、api-integration、frontend-implementation 等),引导 AI 在动手前先读取并遵守规则。
为什么重要
这暴露了当前 AI 编程工具的一个结构性矛盾:AI 写代码的速度远超人类审查速度。传统人工 Code Review 越来越像“AI 善后现场”,而单纯靠 Prompt 提醒(“只做最小改动”)极易遗忘,一旦漏说,AI 就“恢复出厂设置”。
codex-dev-norms 这类方案的意义在于:把团队约定从“口头提醒”固化为可执行的“入职手册”,让 AI 在每次工作时都能读取项目边界。这不是限制 AI 的能力,而是为“它该做什么、不该做什么”建立明确的工程纪律。
更深层看,它也折射出大模型在真实业务场景中的核心问题:AI 擅长“生成”,但不擅长“克制”——它没有线上事故的心理阴影,没有团队约定意识,也没有“这个项目现在需要的是修复,不是翻新”的判断力。因此,单纯提升模型能力无法完全解决工程问题,需要补充一层“规则层”来约束其行为。
对用户/开发者/创作者的影响
对于使用 Codex、Cursor、GitHub Copilot 等 AI 编程工具的开发者,这个实践有以下启示:
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
- 不要依赖 Prompt 反复提醒:将规则固化到项目根目录下的
AGENTS.md、CLAUDE.md或 Codex skill 文件中,让 AI 自动读取。 - 最小改动原则优先:明确告诉 AI“只改题目指定的内容”,不要因为“更干净”而扩大范围。
- API 字段必须严格遵从定义:禁止 AI 自动补别名或写
a || b || c式兼容。 - 关注编码与中文环境:特别是 Windows 项目,要求 AI 在读写文件前确认编码,中文直接输出中文而非 Unicode 转义。
- 状态与业务逻辑必须有归属:不要将局部状态放到全局 store,不要将业务规则分散到各个 controller。
对于使用 AI 编程的企业团队,这套规则可以作为 项目级配置模板 使用,减少代码中“过度兼容”带来的技术债。
值得关注的后续
- 项目级规则是否会成为 AI 编程工具的标配?目前 codex-dev-norms 仍是个体实践,但类似 AGENTS.md、CLAUDE.md 等文件正在被 GitHub Copilot、Claude Code 等工具原生支持,未来可能成为每个项目的“入职手册”。
- 规则文件能否与团队 CI/CD 流程集成?如果 AI 修改后的代码可以自动对照规则文件进行合规检查(例如校验是否新增了未经定义的字段别名),将进一步降低审查负担。
- 是否会引发对 AI 过度抽象的行业反思?工程界长期推崇“抽象与复用”,但 AI 助手的过度抽象让开发者重新审视:哪些重复在业务上是有意义的,应被保留而非消除。


