← 全部极客知识库

主流 Agent 入门教程 / Codex

1. Codex是什么

原文备份 · 第 2 / 27 篇 · 查看极客时间原知识库 ↗

本篇目录 · 20 节

来源:Codex

预计阅读时间:12 分钟
本篇目标:理解 Codex 的定位、工作方式和几种使用入口,知道什么任务适合交给它。

如果你以前用过 ChatGPT,一开始很容易把 Codex 理解成“更会写代码的聊天机器人”。这个理解不能说完全错,但会让你低估它。

普通对话工具通常停留在“告诉你怎么做”:你把报错贴进去,它解释原因,再给你一段代码。至于找到对应文件、修改代码、运行测试和检查结果,通常还得由你自己完成。

Codex 更像一个可以进入工作现场的协作者。只要你把它放进一个项目目录,并授予合适的权限,它就可以读取项目文件、搜索代码、运行命令、修改文件、执行测试,再根据测试结果继续调整。

这也是为什么 Codex 被称为 Coding Agent,而不只是代码生成工具。

一、先用一个例子理解 Codex

假设你接手了一个陌生项目,运行后发现“导出订单”功能报错。

如果使用普通对话工具,你可能要自己完成下面这些事情:

  1. 找到与订单导出有关的文件。
  2. 把部分代码复制到聊天窗口。
  3. 把错误日志也复制进去。
  4. 根据回答修改代码。
  5. 回到终端运行测试。
  6. 如果还有错误,再把新错误复制回去。

使用 Codex 时,你可以在项目目录中启动它,然后直接说:

订单导出功能运行时报错。请先阅读项目说明和相关代码,复现问题,解释根因,
然后给出最小修复方案。修改完成后运行相关测试,不要改动无关文件。

接下来,Codex 可以自己搜索相关文件、查看日志、运行程序、修改代码和执行测试。它会在需要额外权限时停下来询问你,也会把最终修改和验证结果报告给你。

这里真正重要的,不是它一次写出了多少代码,而是它可以围绕一个目标连续完成多步工作。

二、Codex 的基本工作过程

在实际使用中,Codex 通常会经历下面几个步骤:

  1. 理解任务:判断你想完成什么、有哪些限制、怎样才算完成。
  2. 收集上下文:读取目录结构、项目说明、配置文件、代码和测试。
  3. 制订方案:决定先检查哪里、修改哪些文件、如何验证。
  4. 执行操作:搜索内容、运行命令、创建或修改文件。
  5. 验证结果:运行测试、构建程序、检查输出或审查差异。
  6. 汇报结果:说明做了什么、验证了什么、还有哪些风险。

这个过程不会每次都完整出现。让 Codex 修改一句文案时,它可能很快完成;让它升级一个跨越多个模块的功能时,它可能需要反复检查和验证。

你给出的目标越清楚,项目提供的上下文越完整,它越容易沿着正确方向工作。

三、Codex 能做什么

Codex 最擅长处理与代码、项目文件和开发工具有关的任务。

1. 理解陌生项目

它可以读取目录和关键文件,帮你回答:

  • 这个项目是做什么的?
  • 应该怎样启动?
  • 核心模块在哪里?
  • 数据从哪里进入,又流向哪里?
  • 修改某个功能可能影响哪些地方?

2. 开发功能

你可以让它从需求出发,完成方案设计、代码修改、测试补充和文档更新。小功能可以一次完成,复杂功能则适合拆成几个可以独立验收的阶段。

3. 修复问题

Codex 可以根据错误日志和复现步骤运行程序、定位原因、编写回归测试,再完成修复。

比起直接说“帮我修一下”,更可靠的做法是要求它先复现问题,再解释根因。

4. 补充测试和文档

它可以分析现有代码的测试缺口,补充单元测试、集成测试、README、接口说明和变更记录。

5. 审查代码

Codex 可以查看 Git Diff,检查逻辑错误、遗漏的边界情况、测试缺口和潜在风险。它也可以审查尚未提交的本地修改。

6. 处理重复工作

借助非交互模式,Codex 可以进入脚本或持续集成流程,例如分析测试日志、生成发布说明,或者把检查结果输出成结构化 JSON。

四、Codex 不会自动替你承担判断责任

Codex 可以执行很多操作,但最终结果仍然需要人来验收。

下面几类情况尤其需要谨慎:

  • 需求本身含糊,团队也没有达成共识。
  • 修改涉及支付、权限、隐私或生产数据。
  • 项目缺少测试,无法快速判断修改是否正确。
  • Agent 需要访问工作目录之外的文件或外部系统。
  • 一次修改范围很大,同时跨越多个模块。

使用 Codex 的关键能力,不只是“会写提示词”,还包括会限定范围、会检查差异、会运行验证、会在结果不可靠时及时停下来。

后面的教程会一直围绕这套工作方法展开。

五、Codex 的几种使用入口

Codex 并不只有一个界面。不同入口解决的问题不完全相同。

使用入口 更适合的任务 主要特点
Codex CLI 在终端中开发、调试、审查和自动化 离项目和开发工具最近,控制细致,是本教程的重点
桌面客户端中的 Codex 管理本地项目、查看修改、并行处理较长任务 界面直观,适合查看文件变化和管理多个任务
IDE 扩展 围绕当前打开的代码和编辑器上下文工作 适合边阅读代码边提问或修改
Codex Cloud 在云端环境中执行代码任务 不占用本机环境,适合已经配置好的远程项目

为什么先学 Codex CLI

CLI 是理解 Codex 工作方式最直接的入口。

在终端中,你能清楚看到它从哪个目录启动、读取了哪些上下文、运行了哪些命令、获得了什么权限。之后再使用桌面客户端或 IDE 扩展,很多概念就不会显得陌生。

CLI 还可以通过 codex exec 进入脚本和自动化流程,这是图形界面不容易替代的能力。

桌面客户端适合什么人

当前桌面客户端同时提供面向开发工作的 Codex,以及面向文档、表格、演示文稿等交付物的 ChatGPT Work。

程序员可以用 Codex 处理代码项目;产品经理、运营、编辑等非技术用户,则可以在同一个客户端中使用 Work 处理文件整理、数据分析和方案比较。

本教程会把桌面客户端放在最后讲。到那时,你已经理解工作目录、权限和任务上下文,再处理本地文件会更稳妥。

六、我们会开发什么项目

整套教程会围绕一个名为 TaskFlow 的小项目展开。

TaskFlow 是一个本地任务管理工具。第一版只支持添加、查看和完成任务,后面会逐渐增加:

  • 按状态和日期筛选任务;
  • 从 CSV 导入数据;
  • 生成任务统计;
  • 导出 Markdown 报告;
  • 自动测试和发布前检查。

这个项目规模不大,不要求你先掌握复杂框架,但足以覆盖项目规划、功能开发、调试、测试、代码审查、项目规则、多 Agent 和自动化执行。

如果你不是程序员,也不用担心看不懂所有代码。教程的重点是理解怎样把一个真实任务交给 Codex,并判断它是否完成了任务。

七、学习时请保留三个习惯

习惯一:从正确的目录启动 Codex

Codex 会把当前目录视为重要的工作上下文。进入错误目录,轻则让它找不到文件,重则让它看到不该处理的内容。

习惯二:先说明完成标准

不要只说“帮我做个功能”。告诉它功能要解决什么问题、不能改动什么、需要运行哪些测试、最终应该交付什么。

习惯三:每次都检查结果

查看修改的文件,阅读 Git Diff,运行程序和测试。Codex 的总结可以帮助你理解结果,但不能代替验收。

八、开始前的小练习

先不用安装任何东西。请判断下面几项任务是否适合交给 Codex:

  1. 阅读一个陌生项目,说明它如何启动。
  2. 修复一个能够稳定复现的错误。
  3. 在没有任何需求说明的情况下,决定公司下一季度应该开发什么产品。
  4. 根据现有代码补充测试。
  5. 直接连接生产数据库并批量删除历史数据。

前两项和第四项很适合。第三项需要人先明确业务目标,第五项涉及高风险外部操作,不能只凭一句自然语言直接执行。

下一篇,我们会在 Windows、macOS 或 Linux 上安装 Codex CLI,完成登录,然后在一个专门的练习目录中启动它。

参考资料