跳转到主要内容

Codex /goal 怎么用:开启目标模式、管理任务与验收结果

在支持 Goals 的 Codex 中,输入 /goal 加上具体目标,就能让任务围绕同一结果持续推进。命令缺失时先检查版本与 features.goals;完成与否要看测试和交付物,预算耗尽只是停止条件。

LaoZhang AI Team发布于更新于 18 分钟阅读
文章目录
Codex /goal 目标任务与检查步骤示意

Codex /goal 的用法是:在 Codex 对话输入框中输入 /goal <具体目标>,把希望达到的结果和验收方式交给当前对话持续推进。随后用 /goal 查看目标,用 /goal edit 修改目标,用 /goal pause、/goal resume 和 /goal clear 控制后续工作。当前 官方命令文档已经说明这些操作。

如果你看不到 /goal,先确认客户端支持 Goals,再按官方方法开启 features.goals。如果你已经能设置目标,下一步最重要的是写清楚“做到什么才算完成”:修复代码后测试通过、生成的文件符合要求,或调查结论有可核对的证据。运行时间长、Token 用完、助手说“已完成”,都不能单独替代验收。

下面的设置和行为说明依据 2026 年 10 月 7 日的官方资料;示例是为说明写法设计的项目场景,不是一次实际无人值守运行记录。

/goal 是什么,什么任务值得用

/goal 为当前对话保存一个持续目标。一次工作结束后,目标仍在;当任务还没完成且满足继续条件时,Codex 可以根据刚得到的结果选择下一步,不必等你反复发送“继续”。目标属于该对话,不是全局记忆,也不会自动变成项目的 AGENTS.md 规则。官方 Goals 说明对此区分得很清楚。

这种方式适合“终点明确,路线需要边做边查”的工作。例如,一组导入测试失败,你知道最终要恢复正确的导入行为,但还不知道问题出在解析、字段转换还是后续处理。Codex 需要先复现,再修复,再检查相关测试,可能不止一轮。

你的请求更合适的起点原因
解释一段代码、改一个按钮文案普通对话一次明确回答或修改就能交付
想改造模块,但还没确定应保留哪些行为先讨论或规划先确定结果,避免把模糊需求带入长任务
修好一组失败测试,并保持现有数据格式/goal可以用测试持续检查,下一步取决于失败原因
调查间歇性故障,交付复现条件与证据/goal即使最后不能修复,也能事先定义合格的调查结果
“把整个项目都优化一下”先缩小任务没有明确终点,难以判断何时停止

目标不需要列出每一步。你可以让 Codex 自己判断下一处该查什么,但不能省略成功标准。否则它可能做了很多改动,你却无法确认这些改动是否解决了原问题。

没有 /goal 命令时,先检查版本和功能开关

官方说明 Goals 从 Codex 0.128.0 开始提供。这个数字是功能引入版本,不是当前最新版,也不能单凭版本号证明桌面应用、IDE 扩展和 CLI 的实际入口完全一致。版本前提与安装说明提供了以下检查方式。

1. 确认你检查的是正在使用的客户端

CLI 用户在系统终端中检查版本:

bash
codex --version

低于 0.128.0 时,先更新原先使用的安装方式。通过 npm 安装的 CLI,官方示例是:

bash
npm install -g @openai/codex@latest
codex --version

通过 Homebrew cask 安装的,则使用对应方式:

bash
brew update
brew upgrade --cask codex
codex --version

选与你的原安装方式一致的一组即可。若你实际使用桌面应用或 IDE 扩展,终端中另一个 CLI 的版本不能证明那个客户端已经更新;还要检查该客户端的版本和命令列表。

2. 开启 features.goals

当前官方 Follow a goal明确给出了命令不显示时的处理方法:在 Codex 的 config.toml 中启用 Goals。

toml
[features]
goals = true

已有 [features] 时,把 goals = true 放进现有表中,不要再重复创建同名表。CLI 也提供了对应的启用命令,在系统终端中输入:

bash
codex features enable goals

这两种方式用于开启同一个功能,不必两种都做。这里不需要为了 Goals 另加 multi_agent = true,也不要把配置写进 config.yaml 或 settings.toml。开启后回到你正在用的 Codex 客户端,重新检查斜杠命令列表;仍不显示时,再核对当前会话是否读到了该配置。

3. 区分命令入口和系统终端

codex features enable goals 是终端命令;/goal 修复商品导入错误 则输入在Codex 的对话输入框中。不要在 shell 中直接运行 /goal ...,也不要拼成 codex /goal ...。

官方命令页当前也列出了桌面和 IDE 的 /goal 入口,但文档列出功能,不代表每个账户、安装包和版本都已在你的界面中可用。启用开关后仍没有入口时,保留客户端名称、版本、是否能看到其他斜杠命令,以及 Goals 配置;用这些信息继续定位,别直接把问题归结为提示词写得不好。

Codex 版本与命令入口检查的流程示意

设置、查看、编辑、暂停、恢复和清除

支持 Goals 的客户端中,使用以下命令管理当前对话的目标。官方命令说明给出的操作包括:

要做的事在 Codex 对话中输入接下来确认什么
设置目标/goal <目标内容>当前目标记录是否包含你要完成的结果
查看目标/goal目标内容和当前状态是否仍符合本轮任务
修改目标/goal edit修改后的验收条件是否准确,再查看目标确认
暂停目标/goal pause目标进入暂停状态,等待你决定后续工作
恢复目标/goal resume恢复的是正确的目标,原有约束仍适用
移除目标/goal clear当前目标被移除,后续不再围绕它自动继续

目标内容必须非空,长度最多 4,000 个字符。详细需求太长时,可以放在项目中已有的需求文件里,让目标指向准确路径,并在短目标中保留核心结果与验收条件。这样既能控制目标长度,也方便检查细节是否发生变化。

第一次使用时,设置一个范围明确的小目标,再用 /goal 读回记录,比直接丢入整个项目的待办清单更容易检查。任务中途改变时,用 /goal edit 修订目标;不要只在普通消息里宣布一个新终点,却一直保留与之冲突的旧目标。

暂停与清除只控制目标的后续推进。它们不会撤销已经修改的文件,也不能追回已经发出的请求。需要保留当前工作、回退代码或处理外部操作时,要分别检查对应结果,不能把 /goal clear 当作撤销按钮。

一个能验收的目标:修复商品 CSV 导入

假设你的商品管理项目把货号 00127 导入成了 127,部分带逗号的商品名也被拆错了列。与其写“优化导入功能”,不如把目标落到实际行为和现有测试上。

下面假设项目已有 npm test -- <测试文件> 的运行方式;路径和测试脚本都只是示例前提。使用前替换成你项目里真实存在的文件和命令:

/goal 修复商品目录 CSV 导入,保留货号前导零,并正确读取带逗号或引号的商品名。
先阅读 src/catalog/import-csv.ts、tests/catalog/import-csv.test.ts 和 tests/fixtures/catalog/。
只修改导入实现、相关测试和测试样本,保持现有导入结果的字段名与返回类型。
补充回归测试,覆盖货号 00127、带逗号的商品名、字段内双引号,以及带 BOM 的 UTF-8 文件。
每次修改后运行 npm test -- tests/catalog/import-csv.test.ts,再运行项目原有的相关测试。
只有这些用例和原有相关测试均通过才算完成。交付改动文件、实际测试命令和结果、尚未覆盖的情况。
如果问题需要改变重复货号的处理规则,先说明冲突并等待产品决定;不要自行改变该规则。

这个目标让 Codex 有足够空间调查原因,同时把终点固定下来。它可以先看解析库配置,也可以先追踪字段转换;但不能为了让测试通过,把货号字段改成数字,或者改变重复货号的业务规则。

可以把验收项进一步写成下面这样的输入输出对照,放进目标引用的需求文件中:

输入情形应满足的结果能证明什么
货号字段为 00127导入后仍是字符串 00127前导零被保留
商品名字段为 "杯子,蓝色"得到一个完整的商品名字段引号内的逗号没有被当成分隔符
商品名字段为 "12"" 圆盘"字段值包含一个实际的双引号CSV 转义引号被正确解析
文件以 UTF-8 BOM 开头首列表头正确识别,不夹带 BOM编码标记没有污染表头

这些是拟定的测试标准,不是已经通过的测试报告。最终仍要看项目中的测试是否实际执行、输出是否符合预期。只补一个“货号不为空”的断言,证明不了前导零是否保留;只测试普通商品名,也覆盖不了带逗号的字段。

如果你还不知道该改哪些文件,可以先让 Codex 检查失败用例和调用链,形成候选范围,再确认目标。目标里的路径应该帮助定位,不应迫使它无视已发现的真正原因;需要扩大范围时,先说明为什么原范围不足。

Codex 为什么会继续,什么时候会停

按 官方 Goals 机制说明,自动继续需要目标处于活动状态、预算允许,而且当前对话已经空闲。另一个回合还在运行、你有新消息等待处理,或对话还有未结束的工作时,不会简单地再启动一轮。

因此,/goal 不是一个固定周期的无限循环。官方还说明:仅做计划不会触发自动继续;中断会暂停目标;某次继续没有调用工具时,系统会抑制下一次自动继续,避免空转。这些行为说明了为什么“还没做完”不必然等于“马上又跑一轮”。

Codex 长任务从推进、检查到停止的流程示意

对长任务,重点看停止的原因,而不是只看它是否停止:

停止原因你应如何理解下一动作
目标已完成应已有满足验收条件的结果对照测试、文件或最终报告验收
你暂停或中断了目标目标尚未必完成查看当前进度,决定是否恢复
达到预算限制本轮可用预算结束核对已完成部分和剩余工作,再决定后续安排
缺少必要输入或遇到无法继续的阻碍当前条件不足以达到目标补充所需信息,或调整目标范围
目标被清除持续目标记录已移除如需新的任务,重新确定目标

例如,上面的 CSV 用例全部通过,但原有相关测试出现新的失败,目标仍未满足。反过来,已经查到问题原因却还没修复,也只能算调查取得进展。让 Codex 报告“哪些验收项有证据、哪些还没满足”,比只询问完成百分比更有用。

预算到了不等于完成,也不等于美元花费上限

Goal 的预算限制是继续工作的边界。官方要求预算达到限制后停止实质工作,说明进度、阻碍和下一步;不能因为预算用完就把目标标为成功。预算行为说明明确区分了这两件事。

还要区分三种看起来相似的要求:

  • 目标指令:“同类失败尝试三次就停下来说明原因”,告诉 Codex 怎么安排工作。
  • 客户端支持的目标预算:用于限制目标继续,并记录相关用量。
  • 实际账单或套餐额度:由使用的计费账户、模型和用量规则决定。

写进目标的停止要求,并不会自动生成一个强制计费开关。当前这里引用的用户命令文档也没有提供 /goal budget 参数;不要根据 API 字段猜一个 CLI 命令。

如果担心长任务支出,先区分 ChatGPT 套餐用量与 API 按量计费,再设置适合自己的检查点。需要按模型和请求量估算费用时,参见 Codex CLI 长任务的每日 API 成本估算。Goal 的 Token 计数不能直接换算成确定的美元金额或订阅剩余任务数。

开发者接入:目标 API 和聊天命令的区别

自建 Codex 客户端时,官方 app-server 的目标管理接口提供 thread/goal/set、thread/goal/get 和 thread/goal/clear,管理与 TUI /goal 对应的持久目标。

其中 tokenBudget 是接口中的 Token 预算字段,tokensUsed 和 timeUsedSeconds 是用量记录。换成新目标会替换原目标并重置计数;使用当前尚未结束的目标内容,或省略 objective 来更新状态、预算时,会保留用量历史。接入方要先分清“开始另一件事”和“调整同一件事”,否则显示出来的进度可能失去原来的累计口径。

这些是开发者接口,不是需要粘贴到终端的斜杠命令。普通用户按前面的功能开关和对话命令使用 Goals,不需要先启动 app-server。

已有命令,但设置或读取目标失败怎么办

“找不到 /goal”和“命令存在但设置失败”需要分开处理。前者先检查版本、入口和 features.goals;后者不能只凭一句失败提示就断定是功能开关问题。

可以先整理下面几项信息:

  1. 客户端与版本:错误发生在 CLI、桌面应用、IDE,还是自建接入中?
  2. 失败动作:是新建目标、编辑现有目标,还是用 /goal 读取?保留准确错误文字。
  3. 目标内容:是否非空、是否超过 4,000 个字符?这是官方明确要求,可先排除。
  4. 当前对话状态:已有目标吗?查看和编辑是否发生在同一个对话中?
  5. 相关日志:保留时间与涉及目标操作的片段,分享前去掉凭证、私人路径和私有目标内容。

能查看目标、但编辑失败时,先保留原目标及错误,不要急着清除;清除可能让你丢掉继续定位所需的状态。只在某个客户端失败时,也不要把另一个客户端成功读取当成问题已解决。以上是用于缩小排查范围的检查,不是对所有错误根因的统一诊断。

常见问题

Codex goal 模式怎么开启?

在支持 Goals 的版本中,命令不显示时,按官方方法在 config.toml 的 [features] 中加入 goals = true,或在终端运行 codex features enable goals。然后回到当前客户端检查 /goal 入口。版本、客户端及配置读取仍需要对应核对,开启开关不保证所有界面故障都会消失。依据:官方开启方法。

/goal edit 可以修改正在做的目标吗?

当前官方命令文档提供 /goal edit 用于修订目标。修改后再用 /goal 确认记录与新的要求一致。如果只是补充一个约束,说明它如何影响已有结果;如果任务方向已经改变,重新明确验收标准。依据:目标命令说明。

/goal 和计划模式有什么区别?

计划用于确定怎么做;Goal 把要达到的结果保存在当前对话中,支持围绕它继续工作。问题还不清楚时先规划,目标和验收方式明确后再设置 Goal。官方说明仅做计划不会触发目标自动继续。依据:Goals 的继续机制。

可以让 Codex 一直运行到第二天吗?

Goals 能用于需要多轮推进的长任务,但不能承诺固定运行一整晚。暂停、中断、预算限制、缺少输入等都可能让工作停止;本地电脑关机也不能凭 Goal 推断任务会在云端接着跑。先定义能检查的结果、可用资源和停止条件,再按实际状态决定是否继续。依据:官方生命周期说明。

清除目标会回退代码吗?

不会。/goal clear 用于移除当前目标,代码和其他已发生的操作要分别检查。想恢复到修改前的状态,需要查看实际差异并使用项目的版本管理流程;不要把“没有目标了”理解成“工作没有发生”。依据:目标管理命令。

参考来源4

本文引用的外部页面,按正文出现顺序排列。最后更新于 2026年10月7日。

  1. 1.官方命令文档learn.chatgpt.com/docs/developer-commands
  2. 2.官方 Goals 说明developers.openai.com/cookbook/examples/codex/using_goals_in_codex
  3. 3.Follow a goallearn.chatgpt.com/use-cases/follow-goals
  4. 4.app-server 的目标管理接口learn.chatgpt.com/docs/app-server