概览
当任务需要 Codex 跨多个轮次持续工作,直到达到可验证的停止条件时,请使用 `/goal`。
适合场景
- 具有明确成功条件和验证循环的长期编码工作。
- 代码迁移、大型重构、部署重试循环、实验、游戏以及侧项目,这些场景中 Codex 可以持续取得有范围界定的进展。
- 需要运行长期实验且具有明确成功标准的团队。
设置一个长期运行目标
/goal 在不停下的情况下完成[目标],直到达到[可验证的结束状态]。
简介
当你希望 Codex 持续朝着一个持久目标工作,而不是在一次普通对话轮次后停止时,请使用 /goal。它适用于那些具有明确目标、验证循环,并且 Codex 有足够空间在无需你逐步引导的情况下持续推进的工作。使用 /goal 后,Codex 可以在不需要你输入的情况下独立工作数小时。
使用 /goal <objective> 设置目标,使用 /goal 查看当前目标;当你需要控制运行时,可以使用 /goal pause、/goal resume 或 /goal clear。
如果斜杠命令列表中没有出现 /goal,请在 config.toml 中启用 features.goals:
[features] goals = true
你也可以从 CLI 运行 codex features enable goals,或者让 Codex 来运行它。
选择合适的工作
一个好的目标应当比一次提示更大,但比一个开放式待办列表更小。它应该定义 Codex 需要完成什么、不应该改动什么、如何验证进展,以及何时停止。
以下场景很适合:
- 目标技术栈、等价性检查和约束条件都很明确的代码迁移
- Codex 可以在每个检查点后运行测试的大型重构
- Codex 可以持续改进一个可运行产物的实验、游戏或原型
避免将目标用于一份松散且彼此无关的工作清单。
设置循环
- 明确一个目标和一个停止条件。
- 告诉 Codex 它必须优先阅读哪些文件、文档、issue、日志或计划。
- 定义哪些命令或产物可以证明进展。
- 告诉 Codex 按检查点推进,并保持一份简短的进度日志。
- 在运行期间使用
/goal检查状态。 - 当运行完成、受阻或需要改变方向时,暂停、恢复或清除目标。
关键在于这个约定。Codex 在开始之前就应该知道“完成”意味着什么。如果目标是迁移,“完成”可能意味着新路径通过契约测试,且旧路径仍然具备回滚能力。如果目标是游戏或原型,“完成”可能意味着应用能够构建、启动,并且符合输入参考或预期行为。
让 Codex 帮你:先通过对话说明你想构建什么,然后让它直接设置一个目标并开始工作。
让 Codex 独立工作
在目标执行期间,要求简洁的进度报告,这会让整个运行过程更值得信赖。一份有用的状态更新会说明当前检查点、已验证的内容、剩余事项,以及 Codex 是否受阻。 如果状态开始变得含糊,与其添加更多一次性的指令,不如收紧目标。明确告诉 Codex 下一步最重要的是哪个检查点、用哪个命令来证明它,以及什么情况应该让它暂停。
当 Codex 跟随一个目标工作时,它可以独立运行很多小时,而你无需频繁查看。它会在确信自己已经达到停止条件时停止运行,因此你可以把 /goal 视为一个无需持续监控的后台任务。
示例目标
迁移
无论你是在将游戏迁移到新的技术栈、将移动应用迁移到新的平台,还是将代码库迁移到新的框架,你都可以使用 /goal 让 Codex 执行迁移:
原型创建
无论你是在从零开始创建一个新应用、一个新游戏,还是一个新功能,你都可以使用 /goal 让 Codex 完成一个打磨良好的首个版本。你可以使用 PLAN.md 文件来指导首个版本的创建,精确描述你想构建的内容。
提示词优化
当你有一套评测集时,可以使用 /goal 根据评测结果优化提示词。Codex 可以检查失败项、更新提示词、重新运行评测,并持续迭代,直到分数提升或达到你的停止条件。
