News

什么是 Codex(Codex CLI)?

用通俗方式介绍 Codex:一个开源的终端式编码助手,支持制定计划、打补丁、执行命令与受控审批,帮助你在本地仓库中高效完成开发任务。

什么是 Codex(Codex CLI)?

Codex 是一个面向本地/私有仓库的开源编码助手。它能在受控环境中阅读文件、生成计划、执行命令并直接以补丁的形式修改代码,适合“给定目标 → 自动完成具体改动”的开发方式。

Codex 是什么?

Codex(Codex CLI)是一个在终端中使用的“代理式”编码工具。和普通对话式 AI 不同,Codex 不只给建议,还能在你的仓库里真正“动手”:

  • 读仓库上下文:按需检索文件结构与内容,理解现有代码与配置。
  • 生成执行计划:将任务分解为清晰步骤,逐步推进并同步给你。
  • 打补丁改代码:通过补丁(apply_patch)精确修改/新增文件,变更一目了然、易审阅。
  • 运行命令:调用 shell 做查找、格式化、构建或测试,并汇报结果。
  • 受控与可追踪:在沙箱/审批策略下执行关键操作,避免误删与越权。

它非常适合日常工程化工作:修复小问题、批量替换、重命名与重构、补文档、加脚手架、跑测试与格式化等。

工作方式(简要流程)

  1. 明确目标:你用自然语言描述要做什么和成功标准。
  2. 环境侦测:Codex 浏览目录、读取关键文件,理解约束(如 Contentlayer 配置、lint 规则等)。
  3. 计划分解:产出一组可执行步骤,并在执行前后保持同步更新。
  4. 最小化变更:通过 patch 精准修改,避免不相关改动;必要时运行命令验证。
  5. 复盘与交接:总结改动点、后续建议或可选的下一步。

看看补丁长什么样

下面是一个简化的补丁示例,展示 Codex 如何新增/修改文件:

*** Begin Patch
*** Add File: hello.txt
+Hello, Codex!
*** Update File: src/config.ts
@@
-export const ENABLE_FEATURE = false;
+export const ENABLE_FEATURE = true;
*** End Patch

补丁的优势:机器可读、便于代码审查、可局部回滚,也能被 CI 记录和审计。

命令执行与沙箱/审批

  • 命令执行:Codex 可调用 rgsedtscnpm run test 等命令来搜索、构建和验证。
  • 沙箱策略:运行环境通常限制写入目录与网络访问,降低风险。
  • 审批流程:对潜在破坏性或越权操作,会请求审批后再执行,保证你始终掌控节奏。

最佳实践

  • 明确目标与边界:说明要改哪些目录、输出形态、验证方式。
  • 小步快跑:鼓励先出计划与最小可行修改,再逐步扩展范围。
  • 上下文就近:提供相关文件路径/片段,减少歧义与猜测。
  • 要求打补丁:优先让 Codex 提交 patch,而不是粘贴大段代码。
  • 验证闭环:让它运行与你变更最相关、最小集的测试或构建命令。

适用场景与非适用场景

  • 很适合:

    • 修改/新增文档、配置与脚本。
    • 小型重构、依约替换、批量格式化。
    • 搭建 CLI/脚手架、生成样板代码。
    • 给已有代码补测试、补类型、补错误处理。
  • 不太适合:

    • 需要完整产品策略、复杂跨团队对齐的改造项目。
    • 高风险的迁移(例如大规模数据库 schema 变更)且缺乏回滚/灰度方案。

与“聊天式 AI”有何不同?

  • 能执行:不止回答,更能“落实”到具体的文件改动和命令输出。
  • 可审计:以计划与补丁为主线,过程留痕、可回看、好协作。
  • 受控安全:沙箱与审批确保在可控范围内操作你的仓库。

实用技巧(来自官方与社区)

  • 善用计划与小步提交:用 update_plan 维护“一步在做、其余排队”的短计划,按步骤产出最小可行补丁,便于快速审阅与回滚。
  • 写好执行前置说明:在运行命令前用 1–2 句“preamble”概括即将进行的操作,最好把多条相关命令按主题合并说明,减少噪音。
  • 精准打补丁:使用 apply_patch 时务必包含操作头(Add/Update/Delete)与必要上下文;多处改动分块提交,避免“大补丁”难以审阅。
  • 搜索更快:在仓库检索文本优先用 rg(ripgrep),查文件用 rg --files;读取大文件请分段(≤250 行),终端输出通常有 10KB/256 行上限。
  • 优先本地验证:变更后优先运行与你修改最相关、最小集的测试/构建命令,确认通过再扩大范围,避免无关失败。
  • 沙箱与审批心智模型:默认“workspace‑write + on‑request”,网络默认关闭;涉及网络或越权写入时先请求审批。批量/破坏性操作要先沟通再执行。
  • 配置常用模式:在 ~/.codex/config.toml 里保存 profile,例如“full_auto(工作区可写+按需审批)”“readonly_quiet(只读且不打扰)”。
  • 非交互自动化:用 codex exec "…" 执行一次性任务;用 --cd/-C 指定工作根目录,避免先手动 cd
  • 记忆与约束:在仓库根放 AGENTS.md 写清代码风格、命名、目录约定与“禁止事项”;子目录可放更细的 AGENTS.md 覆盖局部规则。
  • 交互技巧:
    • @ 触发工作区内文件模糊搜索,Enter/Tab 直接插入路径。
    • 粘贴图片或用 --image 传图,结合“解释错误/图示”类任务更高效。
    • Esc → Esc 快速回到上一次用户消息进行编辑重放。
  • 官方参考:

总结

Codex 把“从需求到改动”的路径缩短为“任务 → 计划 → 补丁/验证”。对日常工程工作而言,它就像一个可靠的小伙伴:按约束做事、用补丁说话、用结果验证。把目标说清楚,把边界圈出来,你就能稳稳地把它用在生产力的一线。