Claude的goal机制
在 Claude Code 文档中,goal是一种会话级别的机制,用来让 Claude 持续朝着某个目标条件努力,直到条件满足为止。
🔑 基本概念
/goal 命令:设定一个完成条件,Claude 会自动在多个回合中持续工作,直到条件成立。
评估机制:每次回合结束后,一个小型快速模型(如 Haiku)会检查条件是否满足。
自动清除:一旦条件满足,goal 会自动结束。
⚙️ 使用场景
适合有明确终点的任务,例如:
模块迁移到新 API,直到所有调用编译并通过测试。
执行设计文档,直到所有验收标准满足。
拆分大文件,直到每个模块符合大小限制。
清空已标记的任务队列。
📌 与其他机制的比较
/goal:基于条件触发,直到条件满足才停止。
/loop:基于时间间隔触发,直到手动停止或任务完成。
Stop hook:在每轮结束后触发,适用于所有会话,可运行脚本或提示进行检查。
Auto mode:自动批准工具调用,但不会开启新回合;与 /goal 互补。
🛠️ 使用方法
设定目标:
/goal <条件>,立即开始执行。查看状态:
/goal不带参数可查看当前条件、运行时长、回合数、token 消耗和最近的评估原因。清除目标:
/goal clear或相关别名可提前移除目标。恢复目标:如果会话结束时目标仍在,使用
--resume或--continue可恢复。非交互运行:支持在桌面应用或远程控制中运行,甚至一次性执行到完成。
🎯 写有效条件的技巧
明确的终点状态(如测试结果、构建退出码、文件数、队列为空)。
明确的检查方式(如
npm test exits 0)。必要的约束条件(如“不修改其他测试文件”)。
可设置运行上限(如“最多 20 回合”)。
✅总结:Goal 是一种会话内的自动化机制,通过/goal命令设定条件,Claude 会在每轮结束后由独立评估器检查是否达成,直到目标满足或被清除。它适合需要明确终点的复杂任务,能减少人工逐步提示的负担。