Claude Code v2.1.139 出了一个新功能:/goal。
很多 ai 都会有主动降智的行为,比如你给出一个大任务,它干完一轮就停了,你得手动说"继续",它又干一轮又停了,你来来回回催好几趟,跟个猪一样,赶一下动一下。
/goal 能解决这个问题。你设一个完成条件,Claude 每干完一轮,系统自动检查条件有没有满足。没满足就继续干,满足了就自动停。
下面我展开讲讲。
基本用法
bash
/goal 做一个移动端界面适配的检查,用webapp-testing这个skills。出现了适配性的bug就修复,直到满足 webapp-testing
的检查标准。
设完之后 Claude 立刻开始干活,你会看到一个 ◎ /goal active 的状态指示器,显示目标已经运行了多久。

每一轮结束后,系统会用一个小模型(默认 Haiku)评估条件是否满足,给出一个简短的 reason,这就是"评估器"。你可以在状态面板和对话记录里看到这个 reason,知道 Claude 在朝哪个方向努力。
最后成功完成了任务

官方在文档里给了几个/goal 适合场景的例子:
- 把一个模块迁移到新 API,直到所有调用点编译通过、测试全过
- 按照设计文档实现功能,直到所有验收标准满足
- 把一个大文件拆成聚焦的小模块,直到每个文件都在大小限制内
- 清理 issue 列表,直到队列为空
所以,有明确终态的、可验证的大任务,就可以用 /goal 。
和 /loop、Stop Hook 的区别
Claude Code 里有三个"让 Claude 持续工作"的机制,我们引用一下官方文档的介绍

可以看到,/goal 是"跑到目标为止",/loop 是"每隔多久跑一次",Stop Hook 是"你自己定规则"。
另外,"auto mode 自动批准工具调用" 解决的是单轮内的权限问题,不跨轮。/goal 解决的是跨轮的自动续跑。两者可以互补:auto mode 去掉每个工具的确认弹窗,/goal 去掉每轮结束后的手动续跑。
怎么写好一个 goal 条件
这是 /goal 好不好用的关键。
评估器只会看对话记录里已有的内容来判定条件是否满足,它不会自己跑命令或读文件。所以你的条件要写成 Claude 的输出能证明的东西。
一个好的条件通常包含三个要素:
1. 一个可衡量的终态
2. 一个验证方式
3. 需要保持不变的约束
举几个例子:
bash
# 好:具体、可验证
/goal npm test 退出码为0,且没有修改其他测试文件
# 好:有明确的检查方式
/goal CHANGELOG.md 里包含本周每个已合并 PR 的条目
# 好:包含时间约束
/goal test/auth 下所有测试通过且 lint 无报错,或超过 20 轮后停止
# 不好:太模糊
/goal 修好这个 bug
条件最长 4000 字符,想限制运行时间可以在条件里加 or stop after 20 turns 之类的约束。
常用操作
bash
# 查看当前 goal 状态
/goal
# 清除活跃的 goal
/goal clear
# stop、off、reset、none、cancel 也能用
查看状态会显示:条件内容、已运行时间、已评估轮数、当前 token 消耗、评估器最近一次的 reason。
会话恢复:如果你退出会话时 goal 还在跑,下次用 --resume 或 --continue 恢复会话时,goal 会自动恢复。轮数、计时、token 消耗会重置,但条件不变。
非交互模式也支持 /goal:
bash
claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"
这种一条龙跑到底的,适合 CI/CD 场景。Ctrl+C 中断。
底层浅析
/goal 的底层是一个 session 级的 prompt-based Stop Hook。
每轮 Claude 干完活之后,系统把条件和到目前为止的对话记录发给一个小模型(默认 Haiku),让它判断:条件满足了没有?
- 不满足:把 reason 喂给 Claude 作为下一轮的指导,继续干
- 满足:清除 goal,在对话记录里记录达成
所以你看到的那条 reason 不只是给你看的,Claude 也会参考它来决定下一轮怎么干。
/goal 要求你的 workspace 已经接受了 trust dialog(就是第一次在某个目录跑 Claude Code 时弹出的那个信任确认),因为评估器依赖 hooks 系统。如果你在 managed policy 里设了 disableAllHooks,/goal 就不可用。这两种情况下命令都会告诉你原因,不会静默失败。
写在最后
/goal 把重复的人工监督变成自动化的条件判定,以前你要当监工,每轮完了手动说继续,现在设好目标 Claude 自己跑到完。
使用goal记得把 CC 升级到 v2.1.139+
如果你喜欢我的文章,请点点赞、点点关注~