English ← MyDocs

文档索引

在此获取完整文档索引:https://code.claude.com/docs/llms.txt 使用此文件发现所有可用页面,然后再进一步探索。

让 Claude 持续朝目标工作

使用 /goal 设置完成条件,Claude 会持续工作直到条件满足。

Note

/goal 需要 Claude Code v2.1.139 或更高版本。

/goal 命令设置一个完成条件,Claude 会持续朝该目标工作,无需您每步都提示。每轮结束后,一个小型快速模型会检查条件是否成立。如果不成立,Claude 会开始新一轮而不是将控制权返回给您。条件满足后目标自动清除。

对于具有可验证最终状态的大量工作使用目标:

  • 将模块迁移到新 API 直到每个调用点编译通过且测试通过
  • 实现设计文档直到所有验收标准成立
  • 将大文件拆分为专注的模块直到每个文件在大小预算内
  • 处理标记的问题积压直到队列为空

本页涵盖如何:

与其他自主工作流的比较

三种方法在提示之间保持当前会话运行。根据什么应该开始下一轮来选择:

方法下一轮开始时机停止时机
/goal上一轮结束时模型确认条件已满足
/loop时间间隔过去后您停止它,或 Claude 决定工作已完成
Stop 钩子上一轮结束时您自己的脚本或提示决定

/goal 和 Stop 钩子都在每轮后触发。/goal 是会话范围的快捷方式:您输入条件,它仅对当前会话有效。Stop 钩子存在于您的设置文件中,适用于其范围内的每个会话,并且可以运行脚本进行确定性检查或运行提示进行模型评估。

自动模式 本身在单轮内批准工具调用但不会开始新一轮。当 Claude 判断工作完成时会停止。/goal 添加了一个单独的评估器,在每轮后检查您的条件,因此完成是由新的模型而非正在工作的模型决定的。两者互补:自动模式消除每工具提示,/goal 消除每轮提示。

Tip

上述方法保持当前会话运行。您还可以安排独立于任何打开会话运行的工作,如每晚测试或早晨分类。请参阅调度选项了解云例程和桌面计划任务。

使用 /goal

每个会话可以有一个活跃目标。同一命令根据参数设置、检查和清除目标。

设置目标

运行 /goal 后跟您想要满足的条件。如果已有活跃目标,新的目标会替换它。

/goal all tests in test/auth pass and the lint step is clean

设置目标会立即开始一轮,条件本身作为指令。您不需要发送单独的提示。目标活跃时,◎ /goal active 指示器显示目标已运行多长时间。

每轮结束后,评估器返回一个简短原因,解释条件是否满足。最近的原因显示在状态视图和会话记录中,以便您了解 Claude 接下来要做什么。

Note

目标会持续运行直到条件满足或您运行 /goal clear。不带参数运行 /goal 查看已花费的轮次和令牌。

编写有效条件

评估器根据 Claude 在对话中呈现的内容来判断您的条件。它不会独立运行命令或读取文件,因此将条件编写为 Claude 自己的输出可以证明的内容。"test/auth 中的所有测试通过"是有效的,因为 Claude 运行测试,结果落入会话记录供评估器读取。

跨多轮成立的条件通常具有:

  • 一个可衡量的最终状态:测试结果、构建退出代码、文件计数、空队列
  • 声明的检查方式:Claude 应如何证明,例如 "npm test 退出码为 0" 或 "git status 是干净的"
  • 重要的约束:在此过程中不能更改的任何内容,例如"不修改其他测试文件"

条件最多可达 4,000 个字符。

要限制目标运行时间,请在条件中包含轮次或时间子句,例如 or stop after 20 turns。Claude 每轮报告该子句的进度,评估器从对话中判断。

检查状态

不带参数运行 /goal 查看当前状态。

/goal

如果有活跃目标,状态显示:

  • 条件
  • 已运行多长时间
  • 已评估多少轮
  • 当前令牌花费
  • 评估器的最近原因

如果没有活跃目标但在会话中较早达成了一个目标,状态会显示已达成的条件及其持续时间、轮次计数和令牌花费。

清除目标

运行 /goal clear 在条件满足前移除活跃目标。

/goal clear

stopoffresetnonecancel 作为 clear 的别名被接受。运行 /clear 开始新对话也会移除任何活跃目标。

恢复活跃目标

会话结束时仍然活跃的目标会在您使用 --resume--continue 恢复该会话时恢复。条件会延续,但轮次计数、计时器和令牌花费基线都会在恢复时重置。已达成或已清除的目标不会恢复。

非交互式运行

/goal非交互模式桌面应用远程控制中工作。使用 -p 设置目标会在单次调用中运行循环直到完成:

claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"

使用 Ctrl+C 中断进程以在条件满足前停止非交互式目标。

评估工作原理

/goal 是会话范围基于提示的 Stop 钩子的包装器。每次 Claude 完成一轮时,条件和到目前为止的对话会被发送到您配置的小型快速模型,默认为 Haiku。模型返回是或否的决定和简短原因。"否"告诉 Claude 继续工作,并将原因作为下一轮的指导。"是"清除目标并在会话记录中记录已达成条目。

评估器在您的会话配置的提供商上运行。它不调用工具,因此只能判断 Claude 在对话中已经呈现的内容。

Note

评估令牌按您提供商配置的小型快速模型计费,通常与主要轮次花费相比可以忽略不计。

要求

/goal 仅在您已接受信任对话框的工作区中运行,因为评估器是钩子系统的一部分。当在任何设置级别设置了 disableAllHooks 或在托管设置中设置了 allowManagedHooksOnly 时,/goal 也不可用。在每种情况下,命令会告诉您原因而不是静默不执行。

另请参阅