本文为非官方中文翻译,内容以 OpenAI 官方英文文档为准。
官方来源:https://developers.openai.com/codex/prompting
提示词
与 Codex agent 交互
提示词
你通过发送 prompts(用户消息)与 Codex 交互,这些消息描述了你希望它执行的操作。
示例 prompts:
解释 transform 模块是如何工作的,以及其他模块如何使用它。
添加一个新的命令行选项 `--json`,用于输出 JSON。
当你提交一个 prompt 时,Codex 会在一个循环中工作:它调用模型,然后执行模型输出所指示的操作,例如读取文件、编辑文件和调用工具。这个过程会在任务完成或你取消它时结束。
和 ChatGPT 一样,Codex 的效果取决于你给它的指令质量。以下是一些我们认为在向 Codex 提示时很有帮助的建议:
- 当 Codex 能够验证自己的工作时,它会产出更高质量的结果。请包含用于复现问题、验证功能以及运行 linting 和 pre-commit 检查的步骤。
- 当你把复杂工作拆分成更小、更聚焦的步骤时,Codex 处理得更好。较小的任务更容易让 Codex 测试,也更便于你审查。如果你不确定如何拆分任务,可以让 Codex 提出一个计划。
有关如何向 Codex 提示的更多思路,请参阅 workflows。
Threads
thread 是一次单独的会话:你的 prompt,加上随后产生的模型输出和工具调用。一个 thread 可以包含多个 prompts。例如,你的第一个 prompt 可能要求 Codex 实现某个功能,而后续 prompt 可能要求它补充测试。
当 Codex 正在积极处理某个 thread 时,就称该 thread 处于“running”状态。你可以同时运行多个 threads,但要避免让两个 threads 修改同一批文件。你也可以稍后通过继续发送另一个 prompt 来恢复某个 thread。
Threads 可以在本地或云端运行:
- 本地 threads 在你的机器上运行。Codex 可以读取和编辑你的文件,并运行命令,因此你可以看到发生了哪些更改,并使用你现有的工具。为了降低在工作区之外发生意外更改的风险,本地 threads 会在 sandbox 中运行。
- 云端 threads 在隔离的 environment 中运行。Codex 会克隆你的代码仓库,并检出它正在处理的分支。云端 threads 适合在你希望并行运行工作,或从另一台设备委派任务时使用。要将云端 threads 用于你的仓库,请先把代码推送到 GitHub。你也可以从本地机器委派任务,其中会包含你当前的工作状态。
在 Codex 应用中,你也可以在不选择项目的情况下开始聊天。Chats
不会绑定到已保存的代码仓库或项目文件夹。可将其用于研究、
规划、连接工具的工作流,或其他不应让 Codex 从代码库开始的工作。
Chats 使用位于你的 Codex 主目录下、由 Codex 管理的 threads 目录
作为其工作位置。默认情况下,该位置是 ~/.codex/threads。
要更改此状态的基础位置,请设置 CODEX_HOME;参见
Config and state locations。
Context
当你提交一个 prompt 时,请包含 Codex 可以使用的上下文,例如对相关文件和图片的引用。Codex IDE 扩展会自动将打开文件的列表和所选文本范围作为上下文包含进去。
在 agent 工作过程中,它还会从文件内容、工具输出,以及对它已完成内容和仍需完成内容的持续记录中收集上下文。
thread 中的所有信息都必须适配模型的 context window,其大小因模型而异。Codex 会监控并报告剩余空间。对于较长的任务,Codex 可能会通过总结相关信息并丢弃相关性较低的细节,自动对上下文进行 compact。通过反复压缩,Codex 能够在许多步骤中继续处理复杂任务。