7 minute read

/goal 是 OpenAI 在 Codex CLI 0.128.0(2026 年 4 月 30 日发布)中新增的一条命令。它不是又一个普通的提示词模板,而是 Codex 内部新增了一整套目标生命周期管理机制——给一个目标,Codex 会自己一轮接一轮往下推进,真正实现无人值守。社区里已经出现连续运行 21 小时、烧掉 9 亿 token 的案例。这篇笔记把我自己踩过的坑、固定下来的工作流、配套的 Skill 全都整理成保姆级教程。

🚀 本篇笔记所对应的视频:


一、/goal 是什么,以及它为什么重要

/goal 是 OpenAI 在 Codex CLI 0.128.0(2026 年 4 月 30 日发布)中新增的一条命令。官方更新日志的原话是:

Added persisted /goal workflows with app-server APIs, model tools, runtime continuation, and TUI controls for create, pause, resume, and clear.

翻译成大白话就是:/goal 不是又一个普通的提示词模板,而是 Codex 内部新增了一整套目标生命周期管理机制。它由四个层面共同构成:

  1. 持久化层 — 把目标作为一个独立于对话历史的状态存起来,带状态机(active / paused / achieved / unmet / budget_limited
  2. App-server RPCthread/goal/{get, set, clear} 三个接口,让客户端可以读写目标状态
  3. 模型工具get_goalcreate_goalupdate_goal 三个工具,让模型可以查询和声明完成,但不能自己暂停/清空/篡改
  4. 运行时延续(continuation)+ TUI — 每一轮空闲时,Codex 会自动注入一段”延续提示词”让模型决定下一步,直到目标达成、被暂停、被清空或者烧到 token 上限才停

这套机制最直观的效果就是:给一个目标,Codex 会自己一轮接一轮往下推进,真正实现无人值守。社区里已经出现连续运行 21 小时、烧掉 9 亿 token 的案例;我自己测试中也跑过几个小时不间断的批量重构任务。

如果你之前听说过 Ralph Loop(用脚本反复让 agent 跑同一个目标的工作流),/goal 就是 OpenAI 把它做进了 Codex 内核里。OpenAI 总裁 Greg Brockman 在 X 上的原话是:“codex now has a built in Ralph loop++”。比起外部脚本驱动的 Ralph Loop,内置版本的优势在于:目标可以跨会话恢复、token 预算是一等公民、暂停/恢复是原生命令,而且不需要每轮重建上下文,产出质量明显更稳。


二、/goal 解决了哪些以前解决不了的问题

理解 /goal 价值的关键,是它到底解决了什么以前没办法解决的问题。我归纳为四点:

1. 目标本身的持久化

普通 prompt 是写在 Codex 的对话流里的。一旦上下文超过阈值触发 /compact,或者你切换会话,prompt 就可能被压缩、被覆盖、被丢失。/goal 不一样,它把”目标”作为独立的 thread 状态存起来,跟对话历史是两回事。所以:

  • /compact 压缩对话历史,不会破坏 goal 状态
  • 关掉终端,下次 codex resume <id> 还能续上之前的 goal
  • 多天跨度的长任务也能撑住

注意一个已知问题:Issue #19910 报告,如果 /compact 发生在一轮模型调用执行的中间,延续提示词不会被重新注入,下一个 agent 可能丢掉目标和审计要求。如果你计划做超长任务,尽量让自动 compaction 落在轮次边界而不是手动压缩。

2. 内置的”完成审计”

这是 /goal 最低估的部分,但也是最关键的部分。

每一轮空闲后,Codex 会自动向模型注入一段叫 continuation.md 的提示词(源码在 codex-rs/core/templates/goals/continuation.md)。这段提示词的核心要求是这样的(直译关键段落):

在判定目标已达成之前,执行一次”完成审计”:

  • 把目标重述为具体的交付物或成功标准
  • 构建一份提示词到产物的清单,把每一条显式要求、每一个编号项、每一个具名文件、命令、测试、门禁、交付物映射到具体证据
  • 检查相关文件、命令输出、测试结果、PR 状态等真实证据
  • 不要把代理信号当成完成证据:测试通过、清单填满、verifier 跑成功、写了大量代码 —— 这些只是辅助信号,不能单独作为完成依据
  • 把不确定视作未达成;继续验证或继续工作

以及一段非常关键的反偷懒规则:

不要依赖你的意图、阶段性进度、已耗费精力、对早前工作的记忆、或一个看上去合理的最终答案,作为完成的证明。只有审计显示目标确实已达成、且没有遗留必需工作时,才能调用 update_goal 标记完成。

这套机制是在解决一个具体的痛点:模型在长任务中习惯”sandbag”(早早声称做完然后偷懒)。/goal 把这种倾向用机制压住了 —— 但前提是你给的目标必须能被映射成一份清单。

3. Token 预算的软停止

/goal 支持设置 token 预算上限。一旦烧到上限,Codex 不会粗暴中断当前轮次,而是注入另一段提示词 budget_limit.md,让模型把当前任务收尾:总结已完成的进度、列出剩余工作、给出下一步建议,然后停下。

对于无人值守场景,这意味着即使你设错了预期或者目标比想象中复杂,你也能在第二天打开终端时拿到一份能看懂的进度报告,而不是一堆半成品和没了的 token。

4. 完整的生命周期控制

/goal 提供四条 TUI 命令:

命令 作用
/goal <objective> 创建或替换当前目标
/goal 显示当前目标摘要(状态、目标内容、耗时、token 用量)
/goal pause 暂停延续
/goal resume 恢复暂停的目标(早期叫 /goal unpause,后来 PR #20082 改名了)
/goal clear 清空当前目标

注意:暂停/恢复/清空/预算限制状态的转换,模型自己改不了,只能由用户或运行时触发。这是设计上的安全边界 —— 模型唯一能自己做的状态变更是”标记完成”,而且这个动作还得通过完成审计。


三、什么场景适合用 /goal,什么场景不要用

/goal 很强,但不是所有任务都该用它。盲目用反而费 token、跑偏、卡死。我的判断标准是这样的:

✅ 适合用 /goal

  • 重复性 + 持续性的批量任务:批量修 bug、批量重命名、批量生成测试用例、批量补文档
  • 覆盖式任务:QA 一个完整流程、把整个 repo 的某个表面摸完(类型严格化、文档同步、安全扫描)
  • 明确的工程任务:迁移一个模块、把一个 feature 从老仓库移植到新仓库、按规格文档实现一个完整功能
  • 长程探索:代码考古、架构梳理(只生成报告,不动代码)
  • 基于规格文档的实现:配合 OpenSpec 这类工具,把 spec 直接交给 /goal

❌ 不要用 /goal

  • 单轮就能完成的小任务 —— 比如让 Codex 写个冒泡排序。直接用普通 prompt,杀鸡用牛刀只会更慢更费 token。
  • 说不清”完成长什么样”的探索性任务 —— 比如 /goal 给我开发一个背单词 APP。没有验收标准,Codex 会幻想出一个目标然后认真去实现,但实现出来的不是你要的。
  • 需要用户不断决策的任务 —— 比如产品决策、商业取舍、UX 偏好。这些必须人来拍板,Agent 替不了。
  • 破坏性、不可回滚的操作 —— 删数据库、删大量文件、做不可逆的迁移。/goal 的特点是会自己往下推进,这种场景下风险会被放大。
  • 需要快速迭代的原型阶段 —— 几分钟就能跑出来的原型,直接做就行,套上 /goal 反而徒增开销。
  • Plan 模式下 —— ⚠️ 这是个最容易踩的坑。Issue #20656 已经报告:在 /plan 模式下,即使你看到 UI 上显示 “Goal active”,Codex 实际上不会自动延续。源码里 should_ignore_goal_for_mode 函数在 Plan 模式下直接跳过 goal 延续。所以如果你要用 /plan 做规划,先退出 Plan 模式再启动或恢复 /goal

四、启用 /goal

/goal 目前是实验性功能,默认关闭,需要手动开启。

方法 1:改配置文件

打开 ~/.codex/config.toml,加上下面这段:

[features]
goals = true

如果你想完整体验所有相关功能(尤其是 /plan 配合 /goal),可以把协作模式也打开:

[features]
goals = true
collaboration_modes = true

保存,然后重启 Codex/goal 就可用了。

方法 2:让 Codex 自己改

如果你不熟悉配置文件的位置和写法,可以直接在 Codex 里用自然语言描述,比如:

请帮我开启 Codex 0.128 新增的 /goal 命令。
配置文件位置:~/.codex/config.toml
需要在 [features] 段下加上 goals = true。
如果文件不存在请创建,如果 [features] 段不存在请新增。

Codex 会自动帮你完成。改完别忘了重启。

验证

启动后输入 /,如果在斜杠命令补全列表里能看到 /goal,说明已经启用。也可以直接输入 /goal 回车,如果显示”暂无目标”或者类似的状态摘要,就是好了。


五、/goal 提示词的核心心法

我在最初使用 /goal 的时候,踩过一个最典型的坑:直接 /goal 加一句简短描述就回车走人。结果几个小时回来一看,Codex 跑了一堆事情,但跑的根本不是我要的;甚至有时候会陷入静默卡死状态。

后来我把这个事情想清楚了:/goal 对提示词的要求,比普通对话高一个数量级。原因是它的内置审计机制 —— continuation.md 要把你的目标映射成一份”提示词到产物”的清单,如果你用的是模糊词(”全部”、”所有”、”彻底”、”清理一下”、”提升一下”),清单根本建不起来,审计就会退化成”测试跑过了就算完成”这种代理信号 —— 然后你就得到一个声称完成、实际跑偏的结果。

所以 /goal 真正发挥威力的前提,是你要能写出可被映射成清单的目标。

五段式黄金模板

经过这段时间的实践,我固定下来一套五段式模板,几乎所有 /goal 我都按这个写:

/goal <一句话描述目标>

Scope: <作用范围 — 改哪些文件/子系统/feature 区域,其他不要碰>

Constraints:
- <硬性约束 1 — 比如"不要修改数据库 schema">
- <硬性约束 2 — 比如"保持现有公开 API 不变">
- <硬性约束 3 — 项目类型相关的默认规则>

Done when:
1. <可验证的产物 1 — 引用具体文件名或命令>
2. <可验证的产物 2>
3. <可验证的产物 3>
...

Stop if:
- <机械可识别的停止条件 1 — 比如"需要新依赖">
- <机械可识别的停止条件 2 — 比如"需要修改 MUST NOT 列表中的文件">

Use a token budget of <N> tokens for this goal.

每一段的要点:

  • Objective:一句话说清要做什么。避开虚词:全部、所有、彻底、improve、optimize、clean up —— 这些词无法映射成清单,会让审计失效。
  • Scope:画一条边界。Codex 是会扩散的,你不画它就乱跑。
  • Constraints:硬性规则,违反就停。约束一定要”可机械识别”,比如”不动 project.pbxproj“就比”不要破坏现有结构”好。
  • Done when:验收清单。每一条最好引用一个具体文件路径或者一个具体命令(npm testpytest -qtsc --noEmit 都比”测试通过”明确)。
  • Stop if:停止条件。这个比 Done when 更重要,它防止 Codex 钻牛角尖或越界。
  • Token budget:必给。这是 Codex 唯一一个一等公民的成本治理机制 —— 没设预算 = 没有软停止 = 万一跑飞就只能眼睁睁看着烧 token。

一个具体例子

/goal 把 src/data/words.json 里的词库扩展到 1000 个唯一词条。

Scope: 只改 src/data/words.json,其他文件不要动。

Constraints:
- 词条 schema 保持不变(id / word / phonetic / meaning / example)
- 不允许重复词条(以 word 字段为准去重)
- 只能用真实的、常见的英语单词,不要生造

Done when:
1. words.json 包含恰好 1000 个唯一词条
2. 所有词条 schema 校验通过(用 tools/validate.js 跑一遍)
3. 在终端输出最终词条数和文件大小

Stop if:
- 需要修改 words.json 以外的任何文件
- 需要新增 npm 依赖
- 出现 schema 校验失败超过 3 次

Use a token budget of 80000 tokens.

这个目标可以被审计 —— 每一条 Done when 都对应一个能跑的检查;每一条 Stop if 都是机械可识别的;Scope 把作用面锁死了。这种 goal Codex 跑起来准确率明显不一样。


六、三种典型工作流

下面是我目前固定下来的三种 /goal 用法。从简单到复杂,按任务规模选用。

工作流 A:/goal 直接用 — 适合中等任务

适合任务边界清楚、自己能写出五段式模板的场景。直接在 Codex 里输入完整的 /goal <五段式提示词>,回车,然后该干嘛干嘛去。

跑起来后,你随时可以:

  • /goal(不带参数)查看当前进度:状态、耗时、token 用量
  • /goal pause 暂停
  • /goal resume 恢复
  • /goal clear 中止

这是最常用的形态。70% 的任务我都是这样跑的。

工作流 B:/plan + /goal — 适合复杂任务

如果任务复杂、需求还比较模糊、自己也没想清楚验收标准,直接 /goal 是不行的,要先用 /plan 把方案讨论清楚。

完整流程:

  1. 进入 Plan 模式(/plan 或者 Shift+Tab 切换)
  2. 输入相对模糊的需求,比如”把这个 APP 做成可商业化的水平”
  3. Codex 会和你互动,问关键决策(变现方式、差异化主线、目标用户等),它会基于你的回答生成完整计划
  4. 计划生成后,Codex 会给你三个选项:立即执行 / 清空上下文再执行 / 保持在 Plan 模式
  5. 选第三项,然后用 Shift+Tab 退出 Plan 模式
  6. 这时再输入 /goal 执行上面的开发计划,加上 Done when / Stop if / token budget

为什么要先选”保持 Plan 模式”再手动退出?因为前两个选项会立刻执行,但执行的不是 /goal 模式,享受不到延续和审计;而你直接在 Plan 模式里输入 /goal,会落入 Issue #20656 的坑(看上去激活了但其实不延续)。所以必须先退出 Plan 模式,再下 /goal

工作流 C:OpenSpec + /goal — 适合规格驱动开发

这是最适合 /goal 的工作流之一。Spec-Driven Development(SDD)的思路是:先把需求写成规格文档(包含 proposal、specs、design、tasks),然后让 AI 严格按规格实现。规格文档天然就是一份审计清单 —— 把它喂给 /goal,完成审计能精准地工作。

OpenSpec 是 Fission-AI 团队开发的开源 SDD 工具(MIT 协议,GitHub 上 37k stars),它的工作方式是这样的:

You: /opsx:propose add-dark-mode
AI:  Created openspec/changes/add-dark-mode/
     ✓ proposal.md — 为什么要做、改了什么
     ✓ specs/      — 需求和场景
     ✓ design.md   — 技术方案
     ✓ tasks.md    — 实现清单
     Ready for implementation!

完整工作流:

1. 安装 OpenSpec

OpenSpec 需要 Node.js 20.19.0+。安装命令:

npm install -g @fission-ai/openspec@latest

进入项目目录,初始化:

cd your-project
openspec init

OpenSpec 会在项目里生成 openspec/ 目录,并把适配你 AI 工具的指令写到对应的位置(它支持 20+ 种 AI 工具,Codex 也在里面)。

2. 用 OpenSpec 生成规格文档

在 Codex 里直接输入(/opsx:propose 是 OpenSpec 安装后注册的斜杠命令):

/opsx:propose 为这个项目新增 Cohere Rerank 作为第五个 Rerank provider

Codex 会调用 OpenSpec,把你的需求拆解成 proposal.mdspecs/design.mdtasks.md。这一步不会动你任何源代码,只是把”要做什么”写清楚。

3. 用 /goal 执行规格

规格文档生成完后,在 Codex 里:

/goal 严格实现 openspec/changes/add-cohere-rerank/ 中描述的变更。

First action: 先读 proposal.md / specs/ / design.md / tasks.md / AGENTS.md 这五个文件,
报告每个文件的字数和关键章节标题,等我确认后再开始实现。

Scope: design.md 里的 "MUST NOT modify" 列表严格遵守。

Constraints:
- AGENTS.md 中的所有 iron rules 不可违反
- 不允许新增 npm 依赖
- 镜像现有 4 个 Rerank provider 的代码风格

Done when:
1. tasks.md 中的每一项都打勾,引用对应文件路径
2. 每条 SHALL 都有对应的通过测试,引用测试名
3. 每个 GIVEN/WHEN/THEN 场景都有集成测试覆盖
4. `npx tsc --noEmit` 退出码 0
5. `npm test` 退出码 0,粘贴汇总输出
6. README.md 在 provider 表格里加上新一行
7. CHANGELOG.md 在 Unreleased 段加条目

Stop if:
- 任何任务需要修改 MUST NOT 列表中的文件
- SHALL 之间出现冲突(暂停,让我决定)
- 需要 npm install 新依赖
- 现有 Rerank provider 测试出现失败

Use a token budget of 120000 tokens.

注意第二行的 First action:这是个非常关键的小技巧。它强制 Codex 在动手前先把规格文件全部读一遍并向你报告确认 —— 防止 Codex 用 @filename 等不可靠引用方式假装”知道”了规格,实际上没读全。

这种工作流跑出来的产物质量最稳。我自己测试中,中等规模的 feature(类似新增一个 provider 这种 200~400 行的改动)基本都能一次跑通,跑完直接是个能 review 的 PR。


七、用 goal-prompt-builder 把上面这些自动化

写好五段式提示词需要练习。如果不熟练,或者懒得每次手写,可以用我开发的 goal-prompt-builder —— 一个专门用来生成 /goal 提示词的 Claude Skill,仓库在:

https://github.com/win4r/goal-prompt-builder (MIT 协议)

它解决什么

/goal 内置的 continuation.md 审计机制非常强,但前提是你的目标文本能被映射成清单。这个 skill 的核心目的就是:保证生成的目标文本一定可以被映射成审计清单

它内部是怎么工作的

按 README 描述,skill 触发后会走 6 步:

  1. 选择交互模式 — 步进式 / 完整描述式 / 混合式(默认)
  2. 自动检测项目类型 — 通过看文件系统(package.jsonCargo.toml*.xcodeproj 等)或者抓 GitHub README,顺便读 AGENTS.md / CLAUDE.md
  3. 挑选场景模板 — 内置 7 套(refactor / SDD feature / batch / archaeology / UI audit / gatekeeper / custom)
  4. 收集 5 段输入 — Objective / Scope / Constraints / Done when / Stop if
  5. 预测审计友好度 — 内部打分,如果分数低于 70 直接拒绝渲染,要求你补充信息
  6. 渲染输出 — 一段可以直接粘贴的 /goal 提示词,加一段简短的设计说明

它内部有一组硬规则(从 continuation.md 倒推出来的):

  • 拒绝模糊动词 — improve、optimize、clean up、all、everything、全部、彻底 这些词会触发反推,要求你换成可验证的描述
  • 强制要求 token budget — 没预算就没软停止,潜在跑飞
  • 强制回归保护 — 任何动到测试覆盖代码的目标,自动加上”不许改测试让它通过”的 stop-if
  • SDD 类目标强制 read+report 优先 — 防止 @filename 引用不准
  • brownfield 项目强制探测 MUST NOT 列表 — scope creep 第一大原因
  • 审计友好度 < 70% 直接拒绝渲染

我用这个 skill 之后,日常写 /goal 的速度快了非常多 —— 简单任务一两分钟就能从一句话需求走到一个可用的 5 段式提示词。

怎么安装

按 README,有三种方式:

方式 1:一行命令安装

curl -L -o /tmp/goal-prompt-builder.skill \
  https://github.com/win4r/goal-prompt-builder/raw/main/goal-prompt-builder.skill
mkdir -p ~/.claude/skills
unzip -o /tmp/goal-prompt-builder.skill -d ~/.claude/skills/
rm /tmp/goal-prompt-builder.skill

方式 2:克隆并软链

git clone https://github.com/win4r/goal-prompt-builder.git
ln -s "$(pwd)/goal-prompt-builder/goal-prompt-builder" ~/.claude/skills/goal-prompt-builder

方式 3:让 Codex 自己装(视频演示中用的方式)

如果你不熟命令行,直接在 Codex 里描述安装需求:

请帮我安装这个 skill:https://github.com/win4r/goal-prompt-builder
按 README 的安装方式装到默认位置。

Codex 会自己执行下载、解压、放到对应目录。装完后重启 Codex,skill 就生效了。

注意:这个 skill 是用 Claude Skills 格式构建的,默认安装位置是 ~/.claude/skills/。具体在哪个客户端能被识别,以你客户端文档为准 —— README 明确列出的兼容客户端是 Claude Code、Claude Desktop、以及支持 Skills 的 Claude.ai。

怎么用

安装重启后,skill 会被以下短语自动触发,不需要手动调:

  • “help me write a /goal for …”
  • “design a goal for X”
  • “review my goal command”
  • “我要用 /goal 来…”
  • 任何提到长任务 + Codex 的对话

最简单的用法是丢一个一句话需求进去,比如:

我想用 /goal 给这个项目增加 Cohere Rerank 作为第五个 Rerank provider

skill 会:

  • 自动检测出这是 Node/TypeScript 项目(看 package.json
  • AGENTS.md / CLAUDE.md 提取项目特定的规则
  • 问你几个关键问题(token 预算、是否有 SDD 规格、是否有要保护的 MUST NOT 文件)
  • 输出一段五段式 /goal + 一段设计说明,告诉你为什么这样写

把输出粘贴到 Codex 的输入框,回车,任务就跑起来了。


八、几个非常容易踩的坑

这些是我自己踩过、或者社区在 GitHub Issue 里报告过的坑。直接列出来,贴在显示器旁边比什么都管用。

坑 1:Plan 模式下 /goal 不延续

现象:UI 上显示 “Goal active”,但 Codex 不会自己往下推进,看上去像卡死了。

原因:Issue #20656。源码里 should_ignore_goal_for_mode(mode) -> mode == ModeKind::Plan。Plan 模式下 goal 延续被静默跳过。

对策:用 /plan 做规划时不要同时启动 /goal。规划完先退出 Plan 模式(Shift+Tab),再下 /goal

坑 2:中途 /compact 把 goal 上下文搞丢

现象:跑了一段时间,模型突然好像”忘了”目标的细节,开始做不相关的事,或者过早声称完成。

原因:Issue #19910。如果 /compact 发生在一轮模型调用执行的中间,延续提示词不会被重新注入,后续 agent 丢掉目标和审计要求。

对策:长任务不要手动 /compact。设一个相对宽松的 token 预算,让自动 compaction 落在轮次边界上。

坑 3:第一条消息就发 /goal,之后 resume 列表里找不到这个会话

现象codex resume 列表、Codex Desktop 的 recents 里都看不到这个 thread,但 thread 本身没丢,知道 ID 还能打开。

原因:Issue #20792。/goal-first 的 thread 在列表里被遗漏了。

对策新 thread 第一条消息别用 /goal。先随便发一句话,比如 “Working on the OAuth migration goal”,再用 /goal

坑 4:目标里出现”全部 / 所有 / 彻底 / improve”

现象:跑了几个小时回来,声称做完了,但你一看实际改动只是边边角角,核心问题没动。

原因:这些词没法被 continuation.md 映射成清单,审计退化成”测试跑过 = 完成”。

对策:换具体的数字或可验证的状态。”修 5 个真实可复现的 bug”、”覆盖 README 列出的 3 条用户路径”、”pytest 0 失败 0 跳过” —— 这些都比”修复所有 bug”强一万倍。

坑 5:不设 token 预算

现象:任务跑飞,token 烧光也没人提醒,等回来一看账单不对劲。

对策永远设 token budgetUse a token budget of <N> tokens for this goal.。烧到上限会触发软停止,让模型把工作收尾,而不是裸停。

坑 6:破坏性操作不加保护

现象:让 Codex 做迁移,跑着跑着把数据库 schema 改了 / 把不该删的文件删了。

对策:破坏性操作不要用 /goal。必须用的话,Constraints 里明确写”不要执行 rm -rf“、”不要修改数据库 schema”、”任何 destructive migration 暂停问我”,并且把对应内容也写进 Stop if。


九、控制命令速查

操作 命令
创建/替换目标 /goal <objective>
查看当前目标摘要 /goal(不带参数)
暂停 /goal pause
恢复 /goal resume
清空 /goal clear
退出 Plan 模式 Shift+Tab
跨会话恢复 thread codex resume <id>

状态标识:

  • pursuing / active — 正在自主推进
  • paused — 被手动暂停
  • achieved / complete — 完成审计通过,目标达成
  • unmet — 未达成
  • budget_limited — token 预算耗尽,软停止中

十、启动前 checklist

每次发 /goal 之前,过一遍这个清单:

  • 对项目的上下文我先聊过一轮了吗?(背景、关心的模块、已排除的方向、AGENTS.md / CLAUDE.md 是否已读)
  • 我的目标可以被映射成一份清单吗?
  • 验收标准是具体数字 / 可验证状态,还是”全部 / 所有 / 彻底”这种虚词?
  • Stop if 段写了吗?它能不能机械可识别?
  • Token budget 设了吗?
  • 这个任务真的需要 /goal 吗?(单轮能干完的别用)
  • 我现在不在 Plan 模式吧?
  • 这是 thread 的第一条消息吗?如果是,先发一条非 /goal 消息再说

跑起来之后:

  • 第一轮输出对得上我的目标吗?对不上立刻 /goal pause,补上下文,再 /goal resume
  • 中间需要的话用 /goal 查进度
  • 长任务不要手动 /compact
  • 重要节点考虑挂 hook(自动 commit、自动跑测试)

十一、一些更宏观的观察

最近半年,prompt 写法明显在变化:

  • 以前 —— 一步一步指挥(”先做 A,再做 B,然后 C”)
  • 现在 —— 声明结果(”我要这个,完成标准是 X、Y、Z,达到 X / Y / Z 才算完成”),然后让 Agent 自己规划

/goal 是这个方向走得最远的产物之一。它把”过程指挥”压到最低、把”结果声明”提到最高,然后用一套内置审计机制保证模型不偷懒。

但反过来,这也提高了对”会写需求”的要求。模型越来越能干,但它干得好不好,反过来更依赖你能不能把”到底要啥”说清楚。会写需求这件事,正在重新变成稀缺技能。

以前 prompt 糊一点没事,反正它也只跑几秒钟;现在它能跑一整天,你那条糊掉的 goal,换来的就是一整天的糊产出。

/goal 的真正价值不在于”它能跑一整天”,而在于它把”AI 真的能替你跑一整天”这件事,从一个需要外部脚本 + 反复试错的工程,变成了一条可以直接在终端里下的命令。剩下的事,是把目标写清楚。

Comments