把大型任务交给 AI 时,它总会在中途停下来,问:“还有 3 个测试失败,要继续吗?”
每次输入“好,继续”本身就成了任务。如果你暂时离开,工作就会停在那里。
Claude Code 的 /goal 通过声明条件解决了这个问题。设置达成条件后,Claude 会持续跨轮工作,直到条件满足。
如果 Claude Code 第 5 篇 的 /rewind 是安全网,那么 /goal 就是完成任务的装置。
工作原理:另有评判者
官方 /goal 文档 的说明抓住了核心。每轮结束时,一个小而快速的独立模型会检查条件是否满足。如果未满足,Claude 不会返回给用户,而是开始下一轮。
这不是由工作模型自评“完成了”的结构。第三方评判模型(以 Claude API 为准是 Haiku)会在每轮进行判断,并留下简短理由。与主要任务相比,评估 token 的数量可以忽略不计。
条件满足后,目标会自动解除。
基本用法
在 /goal 后输入条件,轮次就会立即开始。不需要额外的提示词。
/goal test/auth所有测试通过且 lint 干净
启用期间,◎ /goal active 会显示已用时间。
/goal(不带参数):查看条件、已用时间、轮次、token 用量和最近的判断理由/goal clear:在条件满足前解除目标(stop、cancel等也可用)
每个会话只能有一个目标。设置新目标会替换现有目标。
写好条件就完成了一半
评判模型不会直接执行命令或读取文件,只会根据 Claude 留在对话中的输出进行判断。
因此,条件必须能够通过 Claude 的输出来证明。官方文档建议包含三个要素。
- 一个可度量的完成状态:测试结果、构建退出码或空队列
- 明确验证方法:例如“npm test 以 0 退出”这样的确认方式
- 需要遵守的约束:例如“不要修改其他测试文件”
如果担心无限运行,可以在条件中加入“或在 20 轮后停止”这样的条款。不过,这不是系统强制的上限,而是评判模型根据对话中的进度报告进行判断的条件之一。
权限是另一回事
/goal不会同时开放权限。在默认权限模式下,每次未获允许的工具调用仍然会询问确认。
如果想无人值守地完成任务,通常会搭配 auto mode。auto mode 移除工具审批提示,而 /goal 移除轮次之间的提示。
也整理一下它与类似机制的区别。/loop是按时间间隔重新执行,/goal则是持续到条件满足为止。
即使会话中断,目标也会保留
如果会话结束时目标仍处于启用状态,使用 --resume 或 --continue 恢复时,条件会原样还原。只有轮次、计时器和 token 基准会重新开始。
如果不想使用终端,也可以在无头模式下运行。
claude -p "/goal 本周合并的所有项目 PR都会反映到 CHANGELOG.md"
调用一次后,循环会一直运行到条件满足。默认输出在完成前不会打印任何内容,因此看起来可能像卡住了。要查看进度,请添加 --output-format stream-json --verbose。
总结
/goal 是替你按下“继续”的命令。声明条件后,独立评判模型会在每轮进行判断,工作会持续到完成。
关键在于条件设计。明确可度量的完成状态和验证方法,并将轮次限制条款一并写入条件。
下一篇将介绍把整个会话放到后台运行的 /background 和 /tasks。继完成装置之后,这次我们讨论分工装置。
来源与确认标准
- Claude Code 官方文档 — Keep Claude working toward a goal(Anthropic,确认于 2026-08-14)

![[Claude Code #6] /goal:为 AI 设置达成条件的方法 封面图](/assets/images/posts/328b90d9-62a2-4671-b597-b1fe9b5355e9/claude-code-goal-completion.jpg)