Documentation Index
Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
/goal 命令设置一个完成条件,Claude 会在没有你逐步提示的情况下持续朝着这个目标工作。每个回合后,一个小型快速模型会检查条件是否满足。如果不满足,Claude 会开始另一个回合,而不是将控制权返回给你。一旦条件满足,目标会自动清除。
对于具有可验证的最终状态的实质性工作,使用目标:
- 将模块迁移到新 API,直到每个调用站点都能编译并通过测试
- 实现设计文档,直到所有验收标准都满足
- 将大文件拆分为专注的模块,直到每个模块都在大小预算内
- 处理标记的问题积压,直到队列为空
比较其他自主工作流
三种方法可以在提示之间保持当前会话运行。根据应该启动下一个回合的内容进行选择:/goal 和 Stop hook 都在每个回合后触发。/goal 是一个会话范围的快捷方式:你输入一个条件,它仅在当前会话中活跃。Stop hook 存在于你的设置文件中,适用于其范围内的每个会话,可以运行脚本进行确定性检查或运行提示进行模型评估的检查。
自动模式本身在单个回合内批准工具调用,但不会启动新的回合。Claude 在判断工作完成时停止。/goal 添加了一个单独的评估器,在每个回合后检查你的条件,因此完成由一个新鲜的模型而不是执行工作的模型决定。这两者是互补的:自动模式消除了每个工具的提示,/goal 消除了每个回合的提示。
使用 /goal
每个会话可以有一个活跃的目标。同一命令根据参数设置、检查和清除它。
设置目标
运行/goal 后跟你想要满足的条件。如果已经有一个活跃的目标,新目标会替换它。
◎ /goal active 指示器显示目标已运行多长时间。
每个回合后,评估器返回一个简短的原因,解释条件是否满足。最近的原因出现在状态视图和记录中,所以你可以看到 Claude 接下来要朝着什么工作。
目标会一直运行,直到条件满足或你运行
/goal clear。运行不带参数的 /goal 可以查看到目前为止花费的回合和令牌。编写有效的条件
评估器根据 Claude 在对话中呈现的内容来判断你的条件。它不会独立运行命令或读取文件,所以将条件写成 Claude 自己的输出可以演示的内容。“所有test/auth 中的测试都通过”之所以有效,是因为 Claude 运行测试,结果出现在记录中供评估器读取。
在许多回合中保持的条件通常具有:
- 一个可测量的最终状态:测试结果、构建退出代码、文件计数、空队列
- 一个陈述的检查:Claude 应该如何证明它,例如”
npm test退出 0”或”git status是干净的” - 重要的约束:在此过程中必须不改变的任何内容,例如”没有其他测试文件被修改”
or stop after 20 turns。Claude 每个回合都会针对该子句报告进度,评估器从对话中判断它。
检查状态
运行不带参数的/goal 可以查看当前状态。
- 条件
- 已运行多长时间
- 已评估多少个回合
- 当前令牌支出
- 评估器最近的原因
清除目标
运行/goal clear 可以在条件满足之前移除活跃的目标。
stop、off、reset、none 和 cancel 被接受为 clear 的别名。运行 /clear 启动新对话也会移除任何活跃的目标。
使用活跃目标恢复
当会话结束时仍然活跃的目标会在你使用--resume 或 --continue 恢复该会话时恢复。条件会保留,但回合计数、计时器和令牌支出基线在恢复时都会重置。已经实现或清除的目标不会恢复。
非交互式运行
/goal 在非交互式模式和通过远程控制中工作。使用 -p 设置目标会在单个调用中运行循环至完成:
评估如何工作
/goal 是会话范围的基于提示的 Stop hook的包装器。每次 Claude 完成一个回合时,条件和到目前为止的对话都会发送到你配置的小型快速模型,默认为 Haiku。模型返回一个是或否的决定和一个简短的原因。“否”告诉 Claude 继续工作,并包括原因作为下一个回合的指导。“是”清除目标并在记录中记录一个已实现的条目。
评估器在你的会话配置的任何提供商上运行。它不调用工具,所以它只能判断 Claude 已经在对话中呈现的内容。
评估令牌在为你的提供商配置的小型快速模型上计费,与主回合支出相比通常可以忽略不计。
要求
/goal 仅在你已接受信任对话框的工作区中运行,因为评估器是 hooks 系统的一部分。当在任何设置级别设置了 disableAllHooks 时,或当在托管设置中设置了 allowManagedHooksOnly 时,/goal 也不可用。在每种情况下,命令会告诉你原因,而不是默默地什么都不做。
另请参阅
- 使用
/loop重复运行提示:按时间间隔重新运行,而不是直到条件满足 - 基于提示的 hooks:当你需要自定义评估逻辑时编写你自己的 Stop hook
- 自动模式:自动批准工具调用,以便每个目标回合无人值守运行
- 调度比较:独立于任何打开的会话按计划运行工作