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 会在每轮结束后由独立评估器检查是否达成,直到目标满足或被清除。它适合需要明确终点的复杂任务,能减少人工逐步提示的负担。