
这次我们不聊 Codex 的基本安装而是聊一个更实际的问题为什么同样是 Codex有人能稳定改完一个模块、跑通全部测试有人却越聊越乱、改错文件甚至不知道该怎么让它遵守项目规范。Codex 是 OpenAI 开源的终端编程智能体能读仓库、改代码、执行命令、跑测试、操作 Git本质上是一个跑在终端里的 AI 工程师。它的能力上限很高但能不能发挥出来取决于你怎么给它规则、怎么下任务、怎么管理上下文。这篇文章围绕“让 Codex 越来越聪明”给出 6 个可直接落地的技巧每个技巧都带配置文件、命令或提示词示例覆盖 AGENTS.md、config.toml、任务描述、会话管理、自动化测试和生态接入。如果你已经见过“unable to locate the codex cli binary”、模型不支持、接口请求失败这类报错最后还有一份排查清单可以直接对照。全文偏实操建议边看边在自己的项目里验证。1. Codex 核心能力速览能力项说明项目类型OpenAI 开源的 AI 编程智能体终端 CLI / Agent主要功能阅读代码仓库、生成与修改代码、执行终端命令、运行测试、Git 操作、代码审查运行方式终端 TUI 交互、codex exec 非交互、IDE 插件、ChatGPT 桌面端联动默认模型GPT-5 系列 Codex 专用模型具体以登录账号可用列表为准模型扩展支持配置 OpenAI 兼容的第三方模型服务例如 DeepSeek 或公司内部网关硬件门槛很低推理在云端完成本地不依赖 GPU 和独立显卡支持平台macOS、Linux、Windows一般建议在 WSL 或 Git Bash 中使用启动方式安装后终端输入 codex进入 TUI 后再输入 /login 登录接口能力codex exec 支持脚本化调用可接入批处理流水线批量任务支持循环调用 codex exec、会话恢复、结果日志落盘典型场景日常编码、重构、补测试、修 bug、技术债清理、代码审查从表格能看出Codex 的门槛不在硬件而在配置和使用方式。云端推理意味着本地显存、显卡这些都不用纠结真正决定体验的是规则文件写没写、模型配没配、任务描述清不清楚、上下文管没管好。下面从环境开始逐步展开 6 个技巧。2. 环境准备与安装部署Codex CLI 的安装方式以官方 README 为准常见有三种。如果本机已经有 Node.js最简单的是通过 npm 安装npm install -g openai/codexmacOS 用户也可以使用 Homebrewbrew install codexRust 环境常用的方式是从源码编译cargo install codex --git https://github.com/openai/codex安装完成后先确认版本codex --version然后在终端输入 codex 启动在 TUI 中输入 /login 完成账号登录。登录过程会引导你在浏览器中授权授权成功后CLI 会保存本地凭据。如果你更习惯在 VS Code 插件或 ChatGPT 桌面端里使用 Codex这些客户端通常会复用本机的 Codex CLI因此安装路径和系统 PATH 必须一致否则就会遇到“找不到 codex 可执行文件”的报错。Codex 的配置目录默认在用户主目录下的 .codex 文件夹例如 macOS/Linux 是 ~/.codexWindows 是 %USERPROFILE%.codex。这个目录里主要放三类东西config.toml全局配置文件控制模型、权限、沙盒策略、第三方模型服务等AGENTS.md全局规则文件对所有项目生效sessions 目录会话历史Codex 用它实现断点恢复。项目根目录下也可以放 .codex/config.toml 和 AGENTS.md它们会与全局配置叠加。理解了这个目录结构后面的技巧就好展开了。3. 技巧一用 AGENTS.md 把项目规则固化下来Codex 每次进入新会话对项目的理解都来自对话上下文和它能读到的文件。如果你每次都要重新解释“这个项目是什么技术栈、用什么命令测试、代码风格是什么”那它的表现一定不稳定。AGENTS.md 的作用就是给 Codex 一份“入职手册”让它在工作开始前先读取项目规则。AGENTS.md 是纯 Markdown 文本一般放在项目根目录也可以放到子目录里对局部代码生效。全局规则放在 ~/.codex/AGENTS.md会作用于所有项目。一个有效的 AGENTS.md 应该包含四类信息项目概览、常用命令、代码约定、当前任务进展。下面是一个后端项目的示例# AGENTS.md ## 项目概览 这是一个 FastAPI 后端服务数据库使用 PostgreSQLORM 是 SQLAlchemy 2.x。 目录结构 - app/main.py 应用入口 - app/api/ HTTP 路由 - app/services/ 业务逻辑层 - app/models/ 数据库模型 - tests/ 测试目录 ## 常用命令 - 安装依赖pip install -r requirements.txt - 启动服务uvicorn app.main:app --reload --port 8000 - 运行测试pytest tests/ -q - 代码检查ruff check app/ ## 代码约定 - 新增接口必须编写 Pydantic schema禁止直接返回 ORM 对象 - 对外返回统一使用 {code, message, data} 结构 - 数据库迁移文件放在 alembic/versions/ - 业务代码中不允许拼接 SQL必须走 ORM - 所有对外接口必须包含中文注释。 ## 当前进展 - 已完成用户模块尚未处理订单模块 - 订单模块的数据库表结构在 alembic/versions/20250101_init.py 中待确认。写 AGENTS.md 时有几个要点。第一规则要可执行不要写“代码要优雅”这种抽象表述要写“必须在 xx 目录下新增迁移文件”这种 Codex 能直接照做的指令。第二把命令写全Codex 拿到“运行测试”这个指令时能直接看到 pytest tests/ -q 而不是自己猜。第三规则是需要迭代的当 Codex 在某次任务中踩坑后你可以顺手把教训补进 AGENTS.md下一次会话它就不会再犯。实际验证 AGENTS.md 是否生效也简单。比如在 AGENTS.md 里写“所有新增 Python 文件必须包含 author 注释”然后让 Codex 新建一个模块文件看它是否遵守。如果遵守说明规则链路是通的如果不遵守检查文件路径是否放对或者当前会话是否加载了旧版本规则。4. 技巧二用 config.toml 管住模型、权限和输出习惯config.toml 是 Codex 行为控制的核心用户级配置放在 ~/.codex/config.toml项目级配置放在项目根目录 .codex/config.toml。日常使用中最值得关注的是三块模型选择、权限审批、第三方模型服务。先看一个最小可用的用户级配置示例# ~/.codex/config.toml model gpt-5.1-codex approval_policy on-request sandbox_workspace_write true [model_providers.deepseek] name deepseek base_url https://api.deepseek.com/v1 env_key DEEPSEEK_API_KEY wire_api chat第一行指定默认模型。Codex 的模型命名通常以 gpt-5-codex、gpt-5.1-codex 这类后缀结尾但具体到不同账号可用模型列表可能不一样。不要凭印象填写模型名进入 TUI 后用 /model 命令查看当前可用项再写进配置否则启动时可能直接报模型不受支持。approval_policy 控制 Codex 在执行危险操作前是否需要征求你的同意。建议保持 on-request 这类“请求审批”的模式不要为了省事把所有权限都放开。sandbox_workspace_write 表示允许 Codex 在工作区写文件这个开关和沙盒模式配合使用能让 Codex 在“能写但可控”的范围内工作。再看第三方模型服务。Codex 支持通过 model_providers 配置 OpenAI 兼容的服务比如 DeepSeek 或公司内部的统一网关。配置时需要注意 env_key 对应的环境变量要真实存在且密钥不要直接写在 config.toml 里而是通过环境变量注入。wire_api 字段控制请求走 chat 协议还是 responses 协议不同服务支持程度不一样配置后要先用一个简单任务验证再投入正式使用。项目级配置只放团队需要统一的模型、权限和 MCP 设置密钥和环境变量一律走全局配置或 CI 密钥管理。5. 技巧三把需求拆成可验收的任务描述Codex 的输出质量很大程度取决于你的任务描述。很多人习惯说“帮我优化一下登录逻辑”这种描述留给 Codex 的自由度太大它可能改接口签名、动数据库字段、顺手重构一堆无关代码。结果就是输出不稳定你还要花更多时间审查。更稳妥的做法是把任务拆成五个部分背景、目标、约束、验收标准、风险点。背景告诉 Codex 为什么要做目标限定改动范围约束防止它越界验收标准可以变成自动化检查风险点提醒它注意调用方。下面是一个可复制的提示词模板帮我重构 app/services/user_service.py 中的 get_user_profile 函数。 背景该函数目前一次查询返回全部字段前端实际只用到其中 6 个字段。 目标减少查询字段和响应体大小提升接口性能。 约束 1. 不得改变函数签名 2. 保持现有单元测试通过 3. 对外返回的字段名不改。 验收标准 1. 新增 profile_fields 参数默认包含 6 个常用字段 2. 添加 pytest 用例覆盖默认参数和自定义字段两种场景 3. 运行 pytest tests/test_user_service.py 全部通过。 风险点先全局搜索 get_user_profile 的引用确认没有其它调用方依赖返回全量字段。这个提示词看起来长但每个字段都在约束 Codex 的行为边界。在实际工作中如果你不想每次都输入这么长的文本可以把常用任务模板整理成 AGENTS.md 里的规则或者用 codex exec 跑非交互式单次任务。codex exec 运行 pytest修复所有失败的测试用例并解释每个修复原因 --full-autocodex exec 适合脚本化和 CI 场景--full-auto 表示全自动执行但第一次使用建议先不要加这个参数而是在交互模式下观察 Codex 的每一步操作。任务描述的另一个原则是一次只做一件事。把“修 bug、补测试、做重构”拆成三次对话比让 Codex 一次全干要可靠得多。6. 技巧四管好会话上下文别让 Codex “越聊越笨”Codex 的会话会携带历史上下文这是双刃剑。一方面历史能让它记住之前的决定另一方面超长会话会占满上下文窗口导致注意力分散表现为越聊越容易改错文件、答非所问甚至忽略你在最新消息里的明确指令。这其实不是模型变笨了而是上下文管理出了问题。常用的上下文管理手段有四种。第一一个任务一个会话任务完成就退出新任务新开会话第二会话中途发现上下文太长使用 /compact 命令把历史压缩成摘要释放空间第三用 /model 命令切换模型比如在简单文件修改时切换到响应更快的模型处理大范围重构时再切回更强的模型第四用 /clear 清空当前会话适合在切换任务主题时使用。如果你需要长时间工作也可以利用 Codex 的会话恢复能力。中断后重新进入 TUI用 resume 相关命令查看历史会话并恢复现场这样即使终端重启工作进度也不会丢失。具体命令在不同版本有差异进入 TUI 后输入 /help 可以查看当前版本支持的全部斜杠命令。另外要提醒的是上下文管理不只是“省空间”更是控制成本和延迟。长会话意味着每次请求都要携带更多历史 token接口响应会变慢费用也会上升。如果你在用第三方模型服务这一点会尤其明显。合理的做法是相关的文件让 Codex 自己读无关的历史尽早清掉不要让整个项目的对话都堆在同一个会话里。7. 技巧五让 Codex 自己跑测试用反馈闭环提升准确率Codex 的聪明程度很大程度上取决于反馈闭环。只让它写代码、你再去人工测效果一般让它写完代码后自己跑测试、把报错贴回来继续修效果会明显提升。原因是错误信息本身就是最高质量的上下文Codex 看到 pytest 的具体报错后能定位到具体行号并自我修正。下面是一个典型的工作流。先在 AGENTS.md 里写清楚测试命令然后通过 codex exec 启动“写测试 跑测试 修复”的循环codex exec 为 utils/date_parser.py 补充单元测试运行 pytest直到所有测试通过 --full-auto为了让这个过程更安全建议配合 Git 使用。每次让 Codex 动手前先创建一个新的分支完成后审查 diff确认没有非预期改动后再合并git checkout -b codex-fix codex exec 修复 README 中提到的登录 bug --sandbox workspace-write git diff --stat git diff这个流程的核心不是让 Codex 一次性成功而是让它通过“执行命令、看到报错、修改代码、再次执行”的循环不断靠近正确答案。实际使用中经常会发现第一次跑测试可能有 3 个失败用例Codex 看到报错后能修好 2 个剩下 1 个因为理解偏差需要你补充说明。这时候把你的说明补进 AGENTS.md下一次它就不会再犯同样的错误。需要特别提醒的是全自动模式--full-auto意味着 Codex 可以自主执行命令并修改文件风险较高。首次尝试请先使用带审批的模式观察它对测试命令、Git 命令和文件写入的处理方式确认可靠后再考虑自动化。涉及删除文件、重置数据库、推送远端分支这类高风险操作一定要保留人工确认环节。8. 技巧六接入自定义模型与工具生态扩展工作流Codex 的价值不只体现在终端聊天里它还可以通过配置接入自定义模型服务和 MCP 工具从而融入你已有的开发流水线。模型服务方面上一节已经介绍了 model_providers 的基本写法。实际配置时要注意几个坑。第一base_url 必须指向真实可用的 OpenAI 兼容接口不同服务的路径规则可能不一样第二wire_api 决定走 chat 还是 responses 协议如果你配置的服务只支持其中一种选错就会请求失败第三模型名称要和目标服务对齐否则会出现类似“gpt-5.6-sol 模型不受支持”的报错。这类报错通常不是 Codex 的问题而是你填的模型名不在当前账号或当前服务商的可用列表中解决办法是换成服务商提供的真实模型名。MCP 是另一个值得投入的方向。通过 MCP 服务器Codex 可以调用外部工具比如数据库查询、项目看板、内部 API 网关。配置方式是在 config.toml 中加入 mcp_servers 段[mcp_servers.github] command npx args [-y, modelcontextprotocol/server-github] env { GITHUB_TOKEN env:GITHUB_TOKEN }上面的 GitHub 服务器只是一个示例实际使用时要根据你要接入的工具替换 command、args 和 env。配置完成后在 TUI 中使用 MCP 相关命令确认服务器连接状态然后让 Codex 执行一个需要该工具的任务来验证。MCP 的接入门槛不高但每个服务器的依赖和权限配置差异很大建议一次只接入一个工具跑通后再扩展。如果你在 VS Code 或 ChatGPT 桌面端使用 Codex还要注意客户端与 CLI 的联动。这类客户端报“无法定位 codex 可执行文件”时通常是因为安装目录没有加入系统 PATH或者客户端配置里指定的 CLI 路径不对。解决方法是把 codex 的安装路径加入 PATH或在客户端设置中手动指定可执行文件路径然后重启客户端。9. 功能验证从简单任务到批量任务技巧是否真的生效需要用任务来验证而不是凭感觉。下面是一套由浅入深的验证流程。第一步验证规则生效。在 AGENTS.md 里写入一条明确规则比如“新增 Python 文件必须包含 author 注释”然后让 Codex 创建新文件检查是否遵守。第二步验证模型配置。进入 TUI 输入 /model确认当前模型与你预期一致再输入 /help确认常用命令都可用。第三步验证第三方模型服务。用一个最简单的任务测试自定义 provider比如“用一句话说明这个项目的 main 函数做了什么”观察请求是否成功、返回质量是否达标。如果失败优先检查 base_url、wire_api 和模型名。第四步验证批量任务。Codex 的 codex exec 适合批量处理。可以把一批小任务写进一个文本文件配合 Shell 循环逐个执行while read -r task; do echo 开始处理: $task codex exec $task --skip-git-repo-check 21 | tee -a batch.log echo 完成: $task done tasks.txt批量场景下一定要加日志落盘也就是上面用 tee 把输出写到 batch.log否则某个任务失败时你无法定位是哪一个。执行完检查 batch.log统计成功和失败的任务数量。批量任务还要注意接口限流如果并发过大建议在循环中加 sleep 控制频率。第五步验证代码质量。把 Codex 的改动合并到主分支前至少要过两关一是测试通过二是人工审查 diff。不要让 Codex 的代码绕过 review 直接上线。这里提醒一句批量调用云端的 AI 编程服务时会把你的代码片段发送到远端推理是否允许这么做、由谁审核最好提前和团队确认清楚涉及敏感项目时要格外谨慎。10. 常见问题与排查方法问题现象可能原因排查方式解决方案客户端提示无法定位 codex 可执行文件安装目录不在系统 PATH或客户端设置的 CLI 路径不对在终端执行 which codex 确认路径把安装目录加入 PATH或在客户端设置中手动指定路径后重启登录后接口仍提示无权限登录凭据过期、API Key 失效或账号权限不足查看 /login 状态和环境变量重新执行 /login或更新 API Key 环境变量指定模型后报模型不受支持模型名不在当前账号或当前服务商可用列表用 /model 查看可用模型换用可用模型名不要凭印象填写调用 /responses 接口时本地网络转发报错网络出口不稳定或本机网络转发配置异常检查网络连通性确认能正常访问目标服务域名修正网络配置或更换网络环境后重试会话越长越容易改错文件上下文过长历史干扰新指令使用 /compact 压缩历史或新开会话一个任务一个会话把模糊指令写具体codex exec 在非 Git 目录运行失败默认要求项目是 Git 仓库查看报错中是否包含 git 相关提示在项目目录执行 git init或按提示添加跳过检查的参数第三方模型服务请求失败base_url、wire_api 或模型名配置错误查看请求返回的错误信息对齐服务商的接口文档逐个字段核对批量任务中途卡住接口限流、任务描述冲突或单个任务超时查看 batch.log 定位卡住的任务降低并发频率、拆分任务、给循环加超时控制上面列举的是高频问题实际排查时建议保持一个习惯先看日志再改配置。Codex 的所有报错信息里都包含了定位线索直接把报错原文粘给模型或者搜索通常比盲目改配置更高效。尤其是模型名和协议相关的问题报错里往往已经写明了原因。11. 最佳实践与合规提醒技巧能不能沉淀成长期收益取决于使用习惯。下面几条是团队落地时最容易见效的实践也顺带提醒合规边界。第一规则先行。新项目开始使用 Codex 前先花 15 分钟写一份 AGENTS.md把技术栈、命令、约定写清楚。这个投入能显著减少后续每次对话的重复解释成本。第二权限分级。日常开发保持沙盒写文件和审批模式高危操作单独开会话并明确告诉 Codex“只允许执行只读操作”。不要在无人值守的流程里使用全自动模式处理生产环境文件。第三代码审查不可省。Codex 生成代码后必须人工 review重点看它是否改了任务范围之外的文件、是否引入了未授权的依赖、是否绕过既有架构规范。第四数据与版权合规。使用 Codex 时代码片段会被发送至云端模型服务。如果项目代码涉及商业机密、用户隐私或未公开功能需要先确认服务的隐私政策和数据处理条款。接入第三方模型服务例如 DeepSeek 或公司内部网关时同样要确认服务商的数据留存策略并尽量使用公司批准的接入渠道。不要因为本地跑着终端就默认数据是安全的。第五敏感内容边界。不要使用 Codex 生成钓鱼代码、恶意脚本、破解工具或任何绕开安全限制的代码也不要让它处理你无权修改的代码库。AI 编程工具是效率放大器但责任始终在使用者身上。第六批处理要留痕。批量任务必须写日志、加失败重试、统计成功率。一次批量修改几十个文件如果中途失败没有日志几乎无法复盘。12. 总结与下一步回到最开始的问题怎么让 Codex 越来越聪明答案并不是换更强的模型而是把六件事做扎实。用 AGENTS.md 固化项目规则用 config.toml 管住模型与权限用五要素任务描述约束输出用会话管理保持上下文干净用自动化测试形成反馈闭环用自定义模型和 MCP 扩展它的能力边界。这六件事做下来Codex 从“偶尔灵光”变成“稳定可用”是完全可以实现的。最容易踩的坑有三个一是模型名乱填导致启动失败二是全自动模式没有审批直接改文件三是不写 AGENTS.md 导致每次对话都在重复解释规则。建议你从技巧一和技巧二开始先给自己的主力项目写一份 AGENTS.md再检查一遍 config.toml 的模型和权限设置然后跑一个最小的 codex exec 任务验证闭环。之后再逐步尝试 MCP 和批量任务。后续可以继续探索的方向包括把 Codex 接入 CI/CD 流水线实现自动代码审查初筛、为团队维护一套共享的项目规则模板、用 MCP 对接内部文档和监控系统。Codex 这类 AI 编程智能体正在快速迭代尽早形成一套适合自己的使用范式会比跟风换工具更值得。这篇文章涉及的配置命令在不同版本可能有差异实际操作时以你自己的 codex --help 和官方文档输出为准。