与 Codex 智能体交互。
提示(Prompts)
Section titled “提示(Prompts)”您通过发送 提示(用户消息)与 Codex 交互,描述您希望它执行的操作。
示例提示:
解释 transform 模块的工作原理,以及其他模块如何使用它。添加一个新的命令行选项 `--json`,用于输出 JSON。当您提交提示后,Codex 会进入一个循环工作流程:它首先调用模型,然后执行模型输出所指示的操作,例如文件读取、文件编辑和工具调用。该过程会在任务完成或您取消时结束。
与 ChatGPT 一样,Codex 的效果取决于你给它的指令质量。以下是我们在提示 Codex 时认为有帮助的一些建议:
- 当 Codex 能够验证自己的工作时,它会产出更高质量的结果。请包含复现问题、验证功能、运行 lint 检查和 pre-commit 检查的步骤。
- 当你把复杂工作拆分为更小、更聚焦的步骤时,Codex 能更好地处理。较小的任务更容易让 Codex 测试,也更容易让你审查。如果你不确定如何拆分任务,可以让 Codex 提出一个计划。
有关提示 Codex 的更多想法,请参阅 workflows。
线程(Threads)
Section titled “线程(Threads)”线程是一个单独的会话:包括你的提示词,以及随后产生的模型输出和工具调用。一个线程可以包含多个提示词。例如,你的第一个提示词可能要求 Codex 实现一个功能,后续提示词可能要求它添加测试。
当 Codex 正在主动处理某个线程时,该线程被称为 “正在运行”。你可以同时运行多个线程,但应避免让两个线程修改相同的文件。你也可以稍后通过继续输入另一个提示词来恢复一个线程。
线程可以在本地运行,也可以在云端运行:
-
本地线程在你的机器上运行。Codex 可以读取和编辑你的文件并运行命令,因此你可以看到发生了哪些更改,并使用你现有的工具。为了降低工作区之外发生意外更改的风险,本地线程会在沙箱中运行。
-
云端线程在隔离[环境]中运行。Codex 会克隆你的仓库,并检出它正在处理的分支。当你想并行运行工作,或从另一台设备委派任务时,云端线程很有用。要在你的仓库中使用云端线程,请先将代码推送到 GitHub。你也可以[从本地机器委派任务],这会包含你当前的工作状态。
在 Codex 应用中,你也可以在不选择项目的情况下启动聊天。聊天不会绑定到已保存的仓库或项目文件夹。可以将它们用于研究、规划、连接工具的工作流,或其他不希望 Codex 从代码库开始的工作。聊天会使用 Codex 管理的 threads 目录作为其工作位置,该目录位于你的 Codex 主目录下。默认情况下,该位置是 ~/.codex/threads。要更改此状态的基础位置,请设置 CODEX_HOME;请参阅 [配置和状态位置]。
CLI 本质:
每启动一个 codex 会话就是一个 thread通过 git worktree 来让每个线程都有独立的工作目录。
上下文(Context)
Section titled “上下文(Context)”当你提交提示词时,请包含 Codex 可以使用的上下文,例如相关文件和图片的引用。Codex IDE 扩展会自动将已打开文件列表和选中的文本范围作为上下文包含进去。
在 agent 工作过程中,它还会从文件内容、工具输出,以及一份持续记录中收集上下文,该记录包含它已经完成的工作和仍需完成的工作。
线程中的所有信息都必须适配模型的上下文窗口,而上下文窗口会因模型而异。Codex 会监控并报告剩余空间。对于较长的任务,Codex 可能会通过总结相关信息并丢弃不太相关的细节,自动压缩上下文。通过重复压缩,Codex 可以在许多步骤中持续处理复杂任务。
Goal 模式
Section titled “Goal 模式”Goal 模式让 Codex 在较长任务中持续围绕一个目标工作。当任务可能需要很多步骤,或者 Codex 需要一个能够持续检查的 “完成定义” 时,可以使用它。

当你设置一个 Goal 后,Goal 文本既会作为起始提示(prompt),也会作为完成标准。Codex 会使用它来决定下一步做什么,以及任务是否已经完成。在 Codex App、IDE 扩展或 CLI 中使用 /goal 启动 Goal 模式。
如果 slash 命令列表中没有出现 /goal,请在 config.toml 中启用 features.goals:
[features]goals = true你也可以在 CLI 中运行 codex features enable goals,或者直接让 Codex 帮你执行。在 Codex App 中,进度会显示在输入框上方,并提供暂停、恢复、编辑或清除 Goal 的控制按钮。
编写 Goal 时,应确保 Codex 能够判断自己是否已经成功完成。好的 Goal 应包含明确的结果、可衡量的目标,或者测试标准。例如:
将这个代码库从 JavaScript 迁移到 TypeScript。应用应能在 strict 模式下成功编译,并且不包含显式的 `any` 类型定义。将首页的可交互时间(Time to Interactive)降低到 1 秒以内。如果 Goal 一开始很难定义清楚,可以先使用 /plan,让 Codex 在开始实现之前帮助你梳理目标。你也可以让 Codex 通过提问来采访你,并起草一个带有明确成功标准的 Goal。
在 Goal 开始后,你依然可以继续引导 Codex。你可以发送后续消息来调整约束条件,例如要求 Codex 使用特定库,或者避免某种实现方式。当你想获取状态总结或解释,但又不想打断主任务时,可以使用 side chat。对于长时间运行的工作,在你即将断开连接前,可以先暂停 Goal,之后再恢复或编辑继续执行。