
摘要
Codex CLI 是 OpenAI 推出的本地编码代理,它通过自然语言与内置工具协同完成复杂的编程任务。/goal 模式是 Codex 在 2026 年新增的长时任务模式,用于“以持续目标驱动的代理化工作流”。它将原本一次性交互的 CLI 会话升级为可持续的计划→执行→测试→审阅循环。本文聚焦于 /goal 模式的原理、架构、配置、运行机制、适用场景以及限制,并结合官方文档和社区测试案例进行分析。
1 引言
传统的 Codex 会话通常在响应一个问题后就结束。当任务需要多轮迭代或跨多个文件操作时,用户必须反复提供指令。为了解决这一痛点,OpenAI 在 Codex v0.128.0 版本引入了 /goal 模式。该模式允许用户为 Codex 定义一个持久目标(objective),代理会在目标完成前持续运行,并在内部循环中自我检查输出以确保达成目标。博客评测指出 /goal 可以让用户“把一个长跑任务交给 Codex 后走开”,代理会循环执行计划、编码、测试和审阅,直到满足停止条件或达到配额[1]。
2 /goal 模式概述
2.1 概念与特点
- 持久目标:用户在 CLI 中使用 /goal <objective> 提供一个明确的目标(objective)。代理会记录该目标,后续回合会围绕该目标展开。
- 循环执行:/goal 触发一个内部循环:制定计划(plan)、执行代码(act)、运行测试(test)并自我审阅(review)。该循环会反复进行,直到检测到目标已经达成或者达到预算限制[1]。
- 验证与自我审计:代理会通过运行测试、评估指标(例如 Lighthouse 指标)、查看文件状态等方式检查自己是否完成了任务,并在未完成时继续迭代[2]。
- 区别于 /plan:/plan 主要用于生成初步行动计划,而 /goal 更像自动驾驶;一旦目标设置完成,代理会持续推进直到完成目标[3]。
2.2 核心优势
- 减少人工介入:长时间任务不需要用户频繁参与。代理会根据目标持续执行,直到满足完成条件或达到预算限制。
- 持久化状态与恢复:即使会话中断或需要暂停,代理可以恢复目标并继续执行。
- 自我监督:目标模式强调“检查自身结果是否达标”,代理不会随意结束任务,会在达到用户指定的验证条件后才宣告完成[2]。
3 架构与系统组成
/goal 模式在 Codex 架构中涉及 CLI、配置文件、TUI 和应用服务器(app-server)多个组件:
- CLI 客户端:负责与用户交互,支持 /goal 命令。用户通过 codex 命令启动 CLI,并使用 -–goal 指令或 slash 命令设置目标。
- 配置文件:通过编辑
~/.codex/config.toml,在[features]表中启用goals = true来激活该特性[4]。 - 目标生命周期管理:Codex 在后台维持一个“目标表”(goal table),记录目标文本、状态、已消耗 token 和时间等信息。用户通过 /goal 查看或更新目标。
应用服务器(app server):当 CLI 启用了 capabilities.experimentalApi 时,可调用 thread/goal 系列接口管理持久化目标。文档列举了三类接口:
- thread/goal/set:为线程设置目标,会返回目标对象并触发
thread/goal/updated通知[5]。 - thread/goal/get:读取当前线程的目标[5]。
- thread/goal/clear:清除目标并触发
thread/goal/cleared通知[6]。
目标对象包含 objective、status、tokenBudget、tokensUsed、timeUsedSeconds 等字段。目标必须非空且长度不超过 4000 字符,新目标会重置使用情况记录[7]。
验证循环:代理根据目标内容生成计划并执行;完成后运行测试脚本或验证程序,判断是否达到目标;如果未达到则继续迭代,直到满足停止条件或达到配置的 token / 时间预算[2]。
4 配置与启用
要在本地启用 /goal:
- 版本要求:需要 codex-cli 0.128.0 或以上版本。旧版本不包含 /goal 功能[8][9]。
- 升级程序:使用
npm install -g @openai/[email protected]等方式升级到最新版本[10]。 - 修改配置文件:编辑
~/.codex/config.toml,在[features]表中加入goals = true[4]。 - 重启 Codex:升级和配置完成后需重新启动 Codex CLI 或桌面应用,以便载入新配置[11]。
启用后,在 CLI 会话中输入 /goal <目标描述> 即可设置目标。若仅输入 /goal,则会返回当前目标的状态。/goal pause 与 /goal resume 分别用于暂停和恢复当前长任务[12]。
5 运行机制
当用户设置目标后,Codex 会启动一个“目标循环”。该循环的运作机理如下:
- 制定计划:代理调用 /plan 或自动生成执行步骤,明确任务步骤和顺序。
- 执行操作:代理按计划修改代码、编辑文档或运行命令;这部分操作可能调用外部工具或脚本。
- 测试与验证:代理运行测试套件、评估指标(如 Lighthouse)、检查文件输出、运行 CLI 命令等,以验证是否达到目标[2]。
- 审阅与迭代:代理分析测试结果并决定下一步行动;若未满足条件,则调整计划并继续迭代。代理会向用户报告进展并在完成后标记目标为完成。
- 预算与退出条件:目标对象含
tokenBudget和timeUsedSeconds,代理会跟踪已消耗的 token 和时间,若超过预算则提前结束[5]。用户可为目标设定预算或通过 /goal pause 暂停执行。 - 持久化状态与恢复:目标存储在线程中,即使 CLI 会话中断,使用
thread/goal/get可以恢复目标状态并继续执行。
6 适用场景
根据官方案例与社区实践,/goal 适用于以下类型的任务:
| 场景 | 示例与解释 |
|---|---|
| 迁移与重构任务 | 如“将代码从 Node 14 升级到 Node 20 并确保测试通过”或“重构 auth 目录以提高覆盖率”[13]。代理会循环执行修改、运行测试和验证。 |
| 测试驱动开发(TDD)任务 | 例如按照 PLAN.md 中定义的里程碑逐步实现队列功能,并保持测试通过[13]。 |
| 自动部署和重试 | 在部署任务中,如果健康检查失败,/goal 会自动重新部署直到通过[13]。 |
| 性能优化 | 通过运行 Lighthouse 指标或其他性能测试来提升网站性能,直到满足目标阈值[14]。 |
| 依赖升级与兼容性修复 | 持续修改代码、运行测试并解决失败项,直到目标版本兼容。 |
6.1 不适用场景
- 探索性设计与架构决策:涉及抽象判断或创意构思的工作缺乏可验证的结束条件;官方建议使用 /plan 或正常对话而非 /goal[15]。
- 需要人工审核的任务:例如用户体验或视觉设计评估,代理无法自行判断完成度。
- 目标模糊或无法量化:如“让网站更好看”,没有明确的测试标准[16]。
7 命令与 API 使用
7.1 CLI 命令
- /goal <objective>:在当前会话中设置目标并启动长任务[17]。
- /goal:查看当前目标的状态及进度[17]。
- /goal pause 与 /goal resume:暂停或恢复正在执行的目标任务[12]。
需要注意的是,官方文档目前只支持以上几种形式;不要伪造未文档化的子命令如 /goal audit 或 /goal complete[18]。
7.2 App-server API
当启用 capabilities.experimentalApi 时,开发者可以直接调用应用服务器管理目标:
- thread/goal/set:设置目标;必须传入非空
objective,长度不超过 4000 字符。若提供新的objective,则会重置 token 使用情况[5][7]。 - thread/goal/get:查询当前目标的状态和统计信息[5]。
- thread/goal/clear:清除目标;发出
thread/goal/cleared通知[6]。
返回的目标对象包含 status(如 active、paused、completed)、tokenBudget(预算上限)、tokensUsed 和 timeUsedSeconds 等字段[5]。开发者可以根据这些指标动态调整目标预算或停止条件。
8 局限性与风险
虽然 /goal 提供了强大的自动执行功能,但仍有一些局限:
- 版本与功能漂移:公共文档更新可能滞后于 CLI 发布,需要结合 Release Notes 和本地命令列表判断是否支持目标模式[19]。
- 资源消耗:长时间运行会消耗大量 tokens 和时间配额;建议为每个目标设置合适的 tokenBudget,并监控 tokensUsed[5]。
- 缺乏人工判断能力:代理只能根据测试和量化指标判断完成度,无法处理需要主观判断的任务,仍需人工复核[15]。
- 安全与合规:目标模式在执行命令和修改代码时需要适当的权限控制;开发者应注意配置沙箱和安全策略。
9 总结与展望
/goal 模式是 Codex 的一次重要升级,它将短期问答式的协作方式扩展到长时自动工作流,为开发者提供了持久目标管理、自我检查和预算控制的能力。通过设置清晰的目标并提供可量化的验收条件,Codex 能够在无须人工干预的情况下完成复杂任务,如版本迁移、自动部署、性能优化等。博客实测显示,该模式在多小时的任务中表现稳定,高效利用了 agentic 环[1][14]。
展望未来,随着 app-server API 与 MPC(Multi-Process Collaboration)工具的完善,/goal 模式可能扩展到更多 IDE、桌面和 Web 场景,支持跨线程或跨项目的目标管理。结合测试覆盖率工具、性能分析器和持续集成系统,/goal 有望成为编码代理的常态工作模式,帮助团队完成长期且可量化的目标。
参考资料
- [1] [2] [3] [4] [8] [10] [11] [12] [13] [14] [15] [16] [17] [18] Codex /goal: How It Works, Setup, and What I Tested
https://www.jdhodges.com/blog/codex-goal-feature-review/ - [5] [6] [7] App Server – Codex | OpenAI Developers
https://developers.openai.com/codex/app-server - [9] [19] Codex /goal: What It Does, How to Use It, and Why It May Be Missing | LaoZhang AI Blog
https://blog.laozhang.ai/en/posts/codex-goal


评论