1. 引子
"/goal also lands in Codex CLI 0.128.0. Our take on the Ralph loop: keep a goal alive across turns. Don't stop until it's achieved." —— Felipe Coury,OpenAI Codex 团队成员,于 2026 年 4 月 30 日 X 上发布[1]
这不是又一个 slash command。它是 OpenAI 第一次把"长程目标"作为一等公民写进 Codex 的核心运行时——而不是一个套在 codex exec 外面的 bash while 循环。新增了一张 SQL 表 thread_goals[2]、一组带 untrusted_objective 隔离标签的 prompt 模板[3]、三个故意"残废"的 model tool(模型只能 mark complete,不能自己 pause/clear 目标)[4]、以及一套带"零工具调用即停"的续跑抑制机制[5]。功能在 codex-rs/features/src/lib.rs 中标注为 Stage::UnderDevelopment、default_enabled: false[6]——也就是说默认不开,要在 ~/.codex/config.toml 里手动 [features]\ngoals = true[7]。
写这篇文章前,我把 openai/codex 仓库里跟 /goal 相关的 6 个 PR(#18073-#18077, #20082)一行行读完[8][9][10][11][12][13]。三个核心判断,先标不确定性:
- 判断 A(高置信):
/goal不是 prompt engineering,是把 agent loop 的"何时停"决策权从 prompt 移到了运行时。证据:核心循环逻辑(Session::goal_continuation_candidate_if_active[5])在 Rust 端判断"是否启动续跑 turn",模型只能通过update_goal(status="complete")请求停止,最终决定权在用户和系统。 - 判断 B(中置信):
/goal解决的是"agent 走神",不是"context 太短"。continuation.md模板里那段 200 多字的 Completion Audit Protocol[3] 表明 OpenAI 假设的失败模式是"模型自以为做完了",而不是"模型忘了在做什么"。 - 判断 C(低置信,需观察):实验阶段不开默认开关,可能不只是技术保守。在 issue #20591 里,0.128.0 用户首次试用
/goal就吃到 HTTP 400[14];issue #20536 抱怨官方 docs 完全没列/goal[15];社区已经有goal-maker这种"给 /goal 打补丁防走神"的 skill[16]。这不像一个准备好的 GA 功能。