Appearance
提示(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 先对你提问,然后起草一个带有明确成功标准的目标。