跳转到内容

如何限制 Codex 只改你指定的范围

如何限制 Codex 只改你指定的范围

Section titled “如何限制 Codex 只改你指定的范围”

Codex 最大的常见问题之一,不是不会改,而是改得太多。

尤其是用户只说一句:

帮我顺便优化一下

这四个字,特别容易把范围带跑。

所以这一篇专门解决一件事:

怎样把任务范围写清楚,让 Codex 只在你允许的边界里动。

前置教程:一次 Codex 任务的完整闭环
如果你还没有建立完整工作顺序,先完成前置教程,再回到本篇。

依据来源:OpenAI Codex 官方手册中关于范围限制、审批、沙箱、diff 审查和最小修改原则的说明。

跟着本篇做完后,你应该能做到:

  1. 把任务范围拆成“优先改哪里”和“绝对不能动什么”。
  2. 让 Codex 在超范围前先停下来问。
  3. 限制它只改一个文件、一个目录或一个模块。
  4. 区分“本次任务必需修改”和“顺手优化”。
  5. 在范围失控后把它收回来。

最常见有 4 种原因:

  1. 你没说优先改哪个文件。
  2. 你没说哪些东西绝对不能动。
  3. 你没说超范围时要先问。
  4. 你把多个任务揉成了一条提示词。

例如:

帮我把首页做好看一点,顺便把标题结构、样式、SEO 也优化下。

这类任务本身就不是一个范围。

第 1 种限制方法:先指定“优先修改位置”

Section titled “第 1 种限制方法:先指定“优先修改位置””

最常用的写法是:

优先只修改 src/pages/index.astro。

或者:

优先只修改 README.md。

或者:

优先只改登录页面相关文件,不要动后端。

这叫“首选修改区”。

它不是 100% 锁死,但已经能让 Codex 明白你希望它先从哪里下手。

第 2 种限制方法:写清“最多改到哪”

Section titled “第 2 种限制方法:写清“最多改到哪””

仅有“优先修改”还不够,你还要补一句上限:

如果必须修改其他文件,请先说明原因,等我确认后再继续。

这句话非常实用。

它的作用是把“默认可以扩散”变成“默认不能扩散”。

第 3 种限制方法:把禁止项单独列出来

Section titled “第 3 种限制方法:把禁止项单独列出来”

推荐直接写成清单:

禁止事项:
1. 不要安装新依赖。
2. 不要修改构建配置。
3. 不要修改数据库结构。
4. 不要重构无关组件。
5. 不要提交 Git。

如果是前端任务,还可以补:

6. 不要顺手调整全站样式系统。

如果是后端任务,还可以补:

6. 不要改无关接口。

第 4 种限制方法:明确“这是单任务,不是打包任务”

Section titled “第 4 种限制方法:明确“这是单任务,不是打包任务””

比如你当前只是修一个按钮文案,就不要把别的东西混进去。

错误示例:

帮我把按钮文案改一下,顺便把移动端样式、SEO、加载性能也看看。

正确示例:

本次任务只处理按钮文案,不处理移动端样式、SEO 和性能。

第 5 种限制方法:超范围必须先问

Section titled “第 5 种限制方法:超范围必须先问”

这是最关键的一句之一:

如果你发现需要修改多个文件、多个页面或配置文件,请先停下来说明原因,不要直接继续。

你也可以写得更严格:

如果本次修改超出 1 个文件,请先暂停并列出原因、涉及文件和影响范围。

一份可以直接复制的范围限制模板

Section titled “一份可以直接复制的范围限制模板”
请完成这次任务,但严格限制修改范围。
任务目标:
【这里写具体目标】
范围限制:
1. 优先只修改【文件路径或目录】。
2. 如果必须修改其他文件,请先说明原因。
3. 本次任务不要扩展到其他页面、其他模块或其他接口。
禁止事项:
1. 不要安装依赖。
2. 不要修改构建配置。
3. 不要修改数据库结构。
4. 不要重构无关代码。
5. 不要提交 Git。
如果你发现任务无法在这个范围内完成,请先停下来告诉我:
- 为什么做不到
- 还需要涉及哪些文件
- 每个文件的作用是什么
不要先改再说。
只处理首页主标题文案。
优先只修改首页文件。
不要改样式、布局、SEO、导航和其他页面。
如果需要改多个文件,请先停下来说明原因。
本次任务只修登录按钮点击后的报错提示。
不要顺手改注册流程、接口封装和表单样式。
如果你判断问题在多个组件之间,请先列出涉及文件再继续。
本次任务只处理用户登录接口的参数校验。
不要修改数据库结构,不要改注册接口,不要重构用户服务。
如果需要改多个类,请先说明每个类和本次修复的关系。
本次任务只补 README 使用说明。
不要修改代码、脚本、依赖和配置文件。
如果你发现 README 信息不足,请先列出你缺少哪些事实。

如果 Codex 已经超范围了,怎么收回来

Section titled “如果 Codex 已经超范围了,怎么收回来”

先不要让它继续改。

直接回复:

你这次修改已经超出原始范围了。
请先不要继续修改文件,只回答下面几件事:
1. 哪些文件属于本次任务必需修改。
2. 哪些文件属于你顺手扩展出来的改动。
3. 每个超范围文件为什么会被修改。
4. 哪些文件建议撤回。

等它说明白,再决定要不要让它撤回无关改动。

你可以直接写:

本次任务只允许修改 1 个文件。
如果做不到,请不要修改,先告诉我原因。

这对第一次练习、改文案、补 README 特别好用。

用户自己怎么检查范围有没有失控

Section titled “用户自己怎么检查范围有没有失控”

你只需要看这 4 个问题:

  1. 修改文件数量是不是超了。
  2. 有没有不在任务里的配置文件变化。
  3. 有没有顺手做了你没要求的优化。
  4. 它有没有在超范围前先问你。

如果这 4 个问题里有两个以上出问题,就说明这次范围控制不合格。

建议接着看:

因为范围控制之后,下一步就是看它会不会把结果检查和汇报也做好。