是什么
/goal 命令设置一个完成条件,Claude 在每轮结束后由独立的小型模型评估条件是否满足,未满足则自动开始下一轮,直到条件成立。适合有明确可验证终态的实质性工作,无需用户手动触发每一步。需要 v2.1.139+。
核心机制
评估机制:每轮结束后,条件和对话历史发送给配置的小型快速模型(默认 Haiku),返回 yes/no 和原因。“no” 时将原因作为下一轮的指导,“yes” 时清除目标并记录完成。
与其他自主工作流的区别:
/goal:每轮结束后评估条件,条件满足时停止/loop:按时间间隔触发,手动停止或 Claude 判断完成- Stop Hook:每轮结束后运行自定义脚本或 Prompt 判断
与 Auto Mode 互补:Auto Mode 消除单轮内的工具调用确认,/goal 消除轮次间的手动触发。两者结合实现完全自主运行。
有效条件的特征:
- 一个可测量的终态(测试结果、构建退出码、文件数量)
- 明确的验证方式(“
npm testexits 0”) - 必要的约束条件(“不修改其他测试文件”)
- 可选的边界条件(“或在 20 轮后停止”)
非交互式运行:
claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"关键细节
- 设置目标:
/goal <condition>(立即开始第一轮) - 查看状态:
/goal(显示条件、运行时长、轮次、token 消耗、最近评估原因) - 清除目标:
/goal clear(别名:stop/off/reset/none/cancel) - 每个会话只能有一个活跃目标,新目标替换旧目标
- 条件最长 4,000 字符
- 评估 token 消耗极少,相对于主轮次可忽略不计
关联
- scheduled-tasks —
/loop按时间间隔触发 - hooks — Stop Hook 自定义评估逻辑
- headless — 非交互式运行模式
实践要点
- 条件要写成 Claude 的输出可以证明的形式,评估器不独立运行命令
- 适合场景:模块迁移直到所有测试通过、按设计文档实现直到验收标准满足、处理 Issue 积压直到队列清空
- 需要在已接受 workspace trust 的目录中使用(评估器是 Hooks 系统的一部分)
disableAllHooks或allowManagedHooksOnly设置会导致/goal不可用- 会话恢复时(
--resume)活跃目标会恢复,但轮次计数和 token 基线重置