要在真实项目中让codex一次性生成多个文件代码,须建立文件边界意识、依赖流向控制和生成顺序约束:先用codex init扫描技术栈并mention目标文件,再通过/plan分步拆解任务,最后按依赖顺序串行生成或用codex apply批量提交,并以自动测试验证收口。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在真实项目中让 Codex 一次性生成多个文件的代码,而不是零散补丁或单个函数,必须打破“聊天式提问”惯性,建立文件边界意识、依赖流向控制和生成顺序约束。
先锁定目标文件范围,再启动生成
打开终端进入项目根目录,执行 codex init。这一步会自动扫描 package.json、pyproject.toml 或 requirements.txt,识别技术栈和目录规范,后续所有生成都基于此上下文,避免生成 Node.js 代码却放在 Python 项目里。
用 /mention @src/api/auth.ts @src/utils/request.ts 显式声明两个核心文件。Codex 不会主动猜你改哪几个——没被 mention 的文件默认只读,【未 mention 的文件即使名字相关也不会被修改或引用】。
如果项目根目录下没有 AGENTS.md,Codex 可能按通用规则生成,比如默认用 axios 而非你项目实际用的 custom-fetch 封装库。现在立刻新建 AGENTS.md,写入一行:HTTP_CLIENT: src/utils/request.ts。这比每次重复说“用 request.ts 里的 fetcher”更可靠。
用 /plan 强制分步拆解,拒绝“一口吞”
输入指令:/plan 新增 OAuth2.0 第三方登录支持,需改动 auth 流程、添加 callback 路由、生成 access token 工具函数。
等待 Codex 返回结构化计划,它会列出:① 新增文件(如 src/auth/providers/google.ts)、② 修改文件(如 src/api/auth.ts 中的 login 方法)、③ 依赖注入点(如 router.ts 新增 /auth/callback/:provider)、④ 风险项(如 session 存储方式是否兼容)。
检查计划里是否包含 【未 mention 过的文件路径】。如果有,立即追问:“请移除对 config/secrets.ts 的修改,该文件受权限管控不可写”。不要跳过这步直接执行——90% 的跨文件逻辑错乱源于计划阶段未拦截错误依赖。
确认无误后,回复“执行计划第1步”,Codex 将只生成 google.ts 并保存到对应路径,不碰其他文件。
多文件协同生成的三种落地方式
方法一:按依赖顺序串行生成
先生成底层工具(如 token 解析函数 → 保存为 src/auth/jwt.ts),再生成调用它的中间层(如 auth provider → google.ts),最后生成顶层入口(如路由守卫逻辑 → router.ts)。每步生成后手动运行 codex diff 查看变更,确认无意外覆盖。
方法二:用 /compact 清理冗余上下文再重试
若上一轮生成导致会话过长、响应变慢或开始胡乱引用旧文件,输入 /compact。Codex 会自动摘要历史交互,丢弃已确认完成的步骤描述,只保留当前待办任务和关键约束。这步能显著降低幻觉率,尤其在生成超过5个文件时。
方法三:CLI 模式下用 codex apply 批量提交
在终端执行 codex apply --files "src/auth/*.ts" --strategy=merge。该命令会把当前会话中所有已生成但未写入的 .ts 文件,按 merge 策略(保留原文件头部注释、仅替换函数体)批量落地。注意:此操作不可逆,【执行前必须确保所有文件已通过 codex diff 验证】。
验证与收口:让 Codex 自己跑测试
生成全部文件后,不手动点开每个文件检查。直接输入:请运行 npm test -- --testPathPattern=auth。
Codex 会自动执行命令,捕获输出。若测试失败,它不会甩锅给你,而是:① 定位报错行、② 分析是新代码缺陷还是老代码环境问题、③ 给出最小修复补丁(例如只改 google.ts 中的 scope 字段拼接,不动 jwt.ts)。
等终端返回 “PASS ✅ 32 tests passed” 后,执行 codex execpolicy set read-only。这步将权限切回只读模式,防止后续闲聊中误触发文件修改。











