AI 编程与智能体

[Claude Code #6] /goal:为 AI 设置达成条件的方法

Claude Code /goal 设置达成条件后,会由独立的评判模型在每轮进行判断,直到条件满足才继续工作。本文整理条件写法、与 auto mode 的组合,以及无头模式下的完整执行。

4 分钟阅读
[Claude Code #6] /goal:为 AI 设置达成条件的方法 封面图

把大型任务交给 AI 时,它总会在中途停下来,问:“还有 3 个测试失败,要继续吗?”

每次输入“好,继续”本身就成了任务。如果你暂时离开,工作就会停在那里。

Claude Code 的 /goal 通过声明条件解决了这个问题。设置达成条件后,Claude 会持续跨轮工作,直到条件满足。

如果 Claude Code 第 5 篇/rewind 是安全网,那么 /goal 就是完成任务的装置。

工作原理:另有评判者

官方 /goal 文档 的说明抓住了核心。每轮结束时,一个小而快速的独立模型会检查条件是否满足。如果未满足,Claude 不会返回给用户,而是开始下一轮。

这不是由工作模型自评“完成了”的结构。第三方评判模型(以 Claude API 为准是 Haiku)会在每轮进行判断,并留下简短理由。与主要任务相比,评估 token 的数量可以忽略不计。

条件满足后,目标会自动解除。

Claude Code /goal 轮次重复与评判模型判断循环图
持续循环,直到条件满足

基本用法

/goal 后输入条件,轮次就会立即开始。不需要额外的提示词。

/goal test/auth所有测试通过且 lint 干净

启用期间,◎ /goal active 会显示已用时间。

  • /goal(不带参数):查看条件、已用时间、轮次、token 用量和最近的判断理由
  • /goal clear:在条件满足前解除目标(stopcancel 等也可用)

每个会话只能有一个目标。设置新目标会替换现有目标。

写好条件就完成了一半

评判模型不会直接执行命令或读取文件,只会根据 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

一只手写下“WRITE THE CONDITION”和目标条件检查清单的插图
完成状态、验证方法、约束。条件应包含这三项

总结

/goal 是替你按下“继续”的命令。声明条件后,独立评判模型会在每轮进行判断,工作会持续到完成。

关键在于条件设计。明确可度量的完成状态和验证方法,并将轮次限制条款一并写入条件。

下一篇将介绍把整个会话放到后台运行的 /background/tasks。继完成装置之后,这次我们讨论分工装置。

来源与确认标准

延伸阅读

Claude Code 系列

相关主题