Skip to content

提示(Prompting)

提示(Prompts)

你通过发送提示(用户消息)来描述你希望 Codex 做什么。

提示示例:

text
解释 transform 模块的工作原理以及其他模块如何使用它。
text
添加一个新的命令行选项 `--json`,输出 JSON 格式。

当你提交提示时,Codex 会进入一个循环:先调用模型,然后执行模型输出指示的操作,如文件读取、文件编辑和工具调用。该过程在任务完成或你取消时结束。

与 ChatGPT 一样,Codex 的效果取决于你给出的指令。以下是一些有用的提示技巧:

  • Codex 在能够验证其工作时会产生更高质量的输出。包括重现问题、验证功能和运行 lint 与预提交检查的步骤。
  • 将复杂任务拆分为更小、更集中的步骤时,Codex 能更好地处理。小任务更容易测试和审查。如果不确定如何拆分任务,可以请 Codex 提出计划。

关于提示 Codex 的更多想法,请参阅工作流

线程(Threads)

线程是一个单一的会话:你的提示加上随后的模型输出和工具调用。一个线程可以包含多个提示。例如,你的第一个提示可能要求 Codex 实现一个功能,后续提示可能要求它添加测试。

当 Codex 正在积极处理时,线程被称为"运行中"。你可以同时运行多个线程,但应避免两个线程修改同一文件。你也可以稍后通过另一个提示继续恢复线程。

线程可以在本地或云端运行:

  • 本地线程在你的机器上运行。Codex 可以读取和编辑你的文件并运行命令,因此你可以看到更改并使用你现有的工具。为降低工作区外意外更改的风险,本地线程在沙箱中运行。
  • 云端线程在隔离的环境中运行。Codex 克隆你的仓库并检出正在处理的分支。当你希望并行运行工作或从另一台设备委派任务时,云端线程非常有用。

在桌面应用中,你还可以在不选择项目的情况下开始聊天。聊天不绑定到已保存的仓库或项目文件夹。可用于研究、规划、连接工具的工作流或其他 Codex 不应从代码库开始的工作。

上下文(Context)

当你提交提示时,请包含 Codex 可以使用的上下文,如相关文件和图片的引用。Codex IDE 扩展会自动包含打开的文件列表和选中的文本范围作为上下文。

当 Agent 工作时,它还会从文件内容、工具输出以及已完成和待完成事项的持续记录中收集上下文。

线程中的所有信息必须适配模型的上下文窗口,大小因模型而异。Codex 会监控并报告剩余空间。对于较长的任务,Codex 可能会通过汇总相关信息并丢弃不太相关的细节来自动压缩上下文。通过重复压缩,Codex 可以在多个步骤中继续处理复杂任务。

目标模式(Goal mode)

目标模式为 Codex 提供一个持久的目标,使其在较长的任务中持续朝着该目标工作。当工作可能需要多个步骤时使用,或者当 Codex 需要一个它可以持续检查的"完成"定义时使用。

当你设定一个目标时,目标文本既作为起始提示,也作为完成标准。Codex 用它来决定下一步做什么以及任务是否完成。

桌面应用IDE 扩展CLI 中使用 /goal 命令启动目标模式。

如果 /goal 没有出现在斜杠命令列表中,请在 config.toml 中启用:

toml
[features]
goals = true

你也可以从 CLI 运行 codex features enable goals,或让 Codex 帮你运行。

编写目标时要让 Codex 能判断是否成功。好的目标包括具体的结果、可衡量的目标或测试标准。例如:

text
将这个代码库从 JavaScript 迁移到 TypeScript。应用应在 strict 模式下编译,且不包含显式的 `any` 类型定义。
text
将首页的可交互时间降低到 1 秒以下。

如果目标难以提前定义,可以先使用 /plan 让 Codex 在实现前制定方案。你也可以请 Codex 先对你提问,然后起草一个带有明确成功标准的目标。

由 Codex 构建