首页 › tips-tricks › 别拿Codex CLI一问一答:八道暗门

90% 的人用 Codex CLI,就是打开终端、打一行问题、等它回答——把它当成"命令行版的 ChatGPT"。这是巨大的浪费。Codex CLI 真正的价值不在"问答",而在它能自己动手:改文件、跑测试、删旧代码、提交修复。它和纯聊天工具最大的区别,是一整套被默认折叠起来的"自动驾驶开关"——审批策略、沙盒隔离、会话续跑、脚本化输出、MCP 外接。这篇文章把这八道暗门一次性扒开,读完你会知道:为什么海外开发者能让它在 GitHub Action 里无人值守地改 PR,而你还卡在一问一答。


暗门一:AGENTS.md——让 agent 先"读懂你的项目"再动手

大多数人第一次跑 codex ,agent 上来就猜你的测试命令:它可能会跑 npm test,但你项目其实是 pnpm test:unit;它会乱碰 dist/ 目录,因为没人告诉它那是构建产物。

解法是在项目根目录放一个 AGENTS.md 文件。这不是普通的 README——它是专门写给 agent 看的"操作手册"。Codex CLI 启动时会自动读取它(优先级高于普通文档),里面该写:

预期效果:agent 不再瞎猜命令,第一次就能跑对测试;不再误碰生成物,改完就干净。 适用场景:任何多人协作或长期维护的项目;尤其当你发现 agent 总在"常识性命令"上翻车时,八成是缺这个文件。

关键细节:还有两层——全局规则放 ~/.codex/AGENTS.md(或官方的 ~/.codex/instructions.md,你所有项目通用的偏好,比如"永远用中文写注释"),项目级 AGENTS.md 覆盖全局。两层叠加 = 你不用每次重复交代。

💡 信息差:这个文件后来被 Cursor、Aider、Claude Code 等工具陆续兼容,变成了事实标准。谁先写好它,谁的 agent 就先变聪明。


暗门二:三档审批策略——suggest / auto-edit / full-auto

默认模式下,Codex CLI 是个"嘴强王者":它给你看 diff 建议,然后你手动复制粘贴。很多人因此误以为"它不能改代码"。

真相是它有三档审批策略(approval_policy),藏在配置里:

策略 改文件 执行 shell 命令 适合
suggest(默认) 只给建议 不执行 新手、谨慎审查
auto-edit ✅ 自动改 需你逐条确认 日常开发(推荐起步档)
full-auto ✅ 自动改 ✅ 自动执行 重复任务、CI、无人值守

操作:在 ~/.codex/config.toml 里设 approval_policy = "auto-edit",或启动时加参数 codex --full-auto 直接进全自动驾驶。

预期效果:auto-edit 让它直接落地代码改动,你只把控"要不要执行这条命令"这一关——审查负担从"看每一行 diff"降到"看每一条命令",效率翻倍。 适用场景:auto-edit 是性价比最高的甜点档;full-auto 留给下一道暗门。


暗门三:full-auto 的沙盒是真隔离,不是噱头

很多人不敢开 full-auto,怕 agent 跑 rm -rf / 把家给扬了。但 Codex CLI 的 full-auto 模式强制运行在沙盒里,这是它敢"放权"的底气:

沙盒做两件事:文件系统白名单(只能读写项目目录,碰不到 ~/.ssh、~/.aws、系统配置)和网络可控(默认可关,防止 agent 偷偷外发数据或乱装包)。

操作:~/.codex/config.toml 配 sandbox_mode,以及 workspace_auto_enable(进入工作区自动开沙盒)。 预期效果:你可以放心让 agent 跑任何命令——删文件、装依赖、执行测试脚本,翻车了也只在项目目录里翻,一键 git reset 回滚。 适用场景:跑长串重复任务(批量重命名、依赖升级、格式化全仓库)、在 CI 里让它自动改 PR。

⚠️ 注意:沙盒保护的是"项目目录之外"不被破坏;项目目录内的改动仍可能激进,所以务必先 git commit 或在新分支上跑。

flowchart TD
    A[启动 codex] --> B{approval_policy?}
    B -->|suggest| C[只给 diff 建议<br/>你手动应用]
    B -->|auto-edit| D[自动改文件<br/>命令逐条确认]
    B -->|full-auto| E[进入沙盒]
    E --> F[文件系统白名单<br/>只能动项目目录]
    E --> G[网络可控<br/>默认禁止外发]
    F --> H[自动改文件+自动执行命令]
    G --> H
    H --> I[翻车? git reset 即可]
    D --> I

暗门四:codex resume——别让它每次从零猜

这是最被低估、又最该天天用的一道暗门。每次重新打开终端敲 codex,它不知道你昨天在干什么——上下文清零,你得重新解释一遍项目背景。这既费 token 又费时间。

codex resume 会列出你的历史会话让你挑;codex resume --last 直接接上最近一次对话,完整上下文都在。

操作:

codex resume              # 列出历史会话,选一个
codex resume --last       # 直接接上最近的

预期效果:跨天/跨终端续写功能,agent 记得"昨天我们决定用这个方案重构",省下大量重复解释和 token。 适用场景:下班前没收尾的任务、跨设备继续工作、长周期重构任务。

🔑 信息差:--last 这一个 flag,每天能给你省下 10-15 分钟的"重新布道"时间。


暗门五:codex exec --json——把 agent 变成脚本的一个环节

这是从"用工具"到"造流水线"的分水岭。codex exec(非交互模式)不在终端里开聊天,而是接受输入、跑完、退出,并可用 --json 输出结构化结果。

为什么重要?因为它能接 pipe、进 CI、做批处理。几个真实场景:

# 场景1:批量为一批旧 PR 生成修复建议
codex exec "review the diff in this PR and suggest fixes" --json | jq '.[]'

# 场景2:接进 GitHub Action,给新开的 issue 自动开 PR
on: issues
# codex exec 接收 issue 内容,自动在沙盒里改代码、提交 PR

# 场景3:扫描一个目录的 lint 报错,让它批量修

预期效果:你不再"陪聊",而是把 Codex 嵌进自动化管线——这恰好是海外开发者拿它"无人值守改 PR"的核心机制。 适用场景:CI/CD 集成、批量代码任务、需要可复现、可版本控制的 agent 工作流。


暗门六:MCP 服务器——让 Codex 长出手脚

光会改代码还不够。Codex CLI 支持 MCP(Model Context Protocol),可以外接各种工具:数据库、浏览器、内部 API、文档知识库。一旦接上,agent 就能"看见"代码仓库之外的世界。

操作:在 ~/.codex/config.toml 配置 MCP 服务器:

[mcp_servers.my-db]
command = "npx"
args = ["-y", "@some/mcp-postgres"]

(具体服务器用 codex mcp add 添加)

预期效果:agent 能直接查数据库 schema 再写 SQL、能调你的内部 API、能读 Notion 里的需求文档。它从"懂代码"升级成"懂你的业务"。 适用场景:全栈开发(前端 agent 直接查后端 API 定义)、企业内部工具集成、需要查实时数据的场景。

💡 MCP 是 Anthropic 推的开放协议,现在 Codex、Cursor、Claude Code 都支持——你搭一个 MCP 服务器,所有 agent 工具通用,这是复利资产。


暗门七:model_reasoning_effort——调思考强度砍账单

Codex CLI 背后跑的是推理模型(如 GPT-5 系列),思考强度可调,直接影响速度、token 消耗、价格。配置项是 model_reasoning_effort,通常四档:

强度 特点 适合任务
minimal 快、省、浅 改个 typo、加注释、格式化
low 较快 简单 bug、写单元测试
medium 平衡 日常开发(默认甜点)
high 慢、贵、深 复杂架构、难调的 bug

操作:~/.codex/config.toml 设 model_reasoning_effort = "low",或为不同任务配不同 profile(见暗门八)。 预期效果:杂活用 low/minimal 省钱省时间,硬骨头切到 high 保质量。一刀切用 high 是拿顶配跑杂活——典型账单黑洞。 适用场景:任何按 token 付费的 API 用户;尤其批量任务务必压到 low。


暗门八:profiles 多套配置——一键切换工作人格

最后一道暗门,是给前面所有开关做"预设组合"。你可以在 config.toml 里定义多个 profile:

[profiles.fast]
model = "gpt-5"
approval_policy = "auto-edit"
model_reasoning_effort = "low"      # 跑杂活

[profiles.deep]
model = "gpt-5"
approval_policy = "suggest"         # 深度任务,保留审查
model_reasoning_effort = "high"     # 砸算力求质量

[profiles.yolo]
approval_policy = "full-auto"       # 全自动,沙盒兜底
sandbox_mode = "workspace-write"

操作:codex --profile fast "把这个函数加上 JSDoc",codex --profile deep "重构这个认证模块"。 预期效果:不用每次记一堆 flag,一个 --profile 切换整套"模型+审批+思考强度"组合。快活用快档、难活用深档、放手干用 yolo 档。 适用场景:任何人在多种任务类型间反复横跳的日常。


信息差总结:你知道的 vs 别人不知道的

维度 90% 的人 懂暗门的人
用法定位 命令行问答机 无人值守的编码 agent
代码改动 复制粘贴 diff auto-edit 自动落地
安全顾虑 不敢开自动 full-auto + 沙盒放心跑
上下文 每次从零开始 resume --last 续跑
集成方式 只在终端手动用 exec --json 进 CI 管线
工具能力 只会改代码 MCP 外接数据库/API
成本意识 一刀切高思考强度 按任务调 reasoning_effort
切换成本 每次手敲一堆参数 profile 一键切人格

行动指南:今晚就能做

  1. 写一份 AGENTS.md:把你项目的 build/test/lint 命令、目录禁区、代码规范写进去。这是 ROI 最高的一步。
  2. 把审批策略升到 auto-edit:在 ~/.codex/config.toml 配好,体验"代码自动落地"。
  3. 试一次 full-auto:在一个干净的 git 分支上,配好沙盒,让它自己跑一轮测试修复,感受无人值守。
  4. 建两个 profile:fast 和 deep,以后杂活和难题分开跑,直接砍账单。
  5. 接一个 MCP 服务器:哪怕只是接个 filesystem 或 postgres,看 agent 怎么"看见"外部世界。

⚠️ 命令的精确 flag 拼写会随版本微调,务必以你本机 codex --help 和官方仓库文档为准。


参考来源


本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护。 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。


完成摘要(What was done)

下一步计划(What's next)

  1. 【优先】联网配额恢复后(7/18 后)补强:重新跑 Reddit(r/OpenAI、r/ChatGPTCoding)、HN 搜索,补充社区真实使用案例与踩坑细节,加固"暗门三/五/六"的实战数据
  2. 可选:如果需要,我可再就其中某道暗门(如 full-auto 进 CI 做 PR 自动修复)单独展开成一篇 use-cases 实战篇
  3. 去重提示:本轮已用"Codex CLI"切入,后续 Round 请避开该工具,转向未覆盖工具(如 v0 / Lovable / Zed AI / Raycast AI / Cline 等)

注意事项

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入