21 21
22本页涵盖以下内容:22本页涵盖以下内容:
23 23
24* [比较自主工作流方法](#compare-to-other-autonomous-workflows):`/loop`、Stop hooks 和自动模式24* [比较自主工作流方法](#compare-ways-to-keep-a-session-running):`/loop`、Stop hooks 和自动模式
25* [设置目标](#set-a-goal)和[编写有效的条件](#write-an-effective-condition)25* [设置目标](#set-a-goal)和[编写有效的条件](#write-an-effective-condition)
26* [检查状态](#check-status)、[提前清除](#clear-a-goal)和[非交互式运行](#run-non-interactively)26* [检查状态](#check-status)、[提前清除](#clear-a-goal)和[非交互式运行](#run-non-interactively)
27* 查看[评估如何工作](#how-evaluation-works)和[要求](#requirements)27* 查看[评估如何工作](#how-evaluation-works)和[要求](#requirements)
28 28
29## 比较其他自主工作流29<h2 id="compare-ways-to-keep-a-session-running">
30 比较保持会话运行的方式
31</h2>
30 32
31三种方法可以在提示之间保持当前会话运行。根据应该启动下一个回合的内容进行选择:33三种方法可以在提示之间保持当前会话运行。根据应该启动下一个回合的内容进行选择:
32 34
38 40
39`/goal` 和 Stop hook 都在每个回合后触发。`/goal` 是一个会话范围的快捷方式:你输入一个条件,它仅在当前会话中活跃。Stop hook 存在于你的设置文件中,适用于其范围内的每个会话,可以运行脚本进行确定性检查或运行提示进行模型评估的检查。41`/goal` 和 Stop hook 都在每个回合后触发。`/goal` 是一个会话范围的快捷方式:你输入一个条件,它仅在当前会话中活跃。Stop hook 存在于你的设置文件中,适用于其范围内的每个会话,可以运行脚本进行确定性检查或运行提示进行模型评估的检查。
40 42
41[自动模式](/zh-CN/auto-mode-config)本身在单个回合内批准工具调用,但不会启动新的回合。Claude 在判断工作完成时停止。`/goal` 添加了一个单独的评估器,在每个回合后检查你的条件,因此完成由一个新鲜的模型而不是执行工作的模型决定。这两者是互补的:自动模式消除了每个工具的提示,`/goal` 消除了每个回合的提示。43[Auto mode](/zh-CN/auto-mode-config) 本身在单个回合内批准工具调用,但不会启动新的回合。Claude 在判断工作完成时停止。`/goal` 添加了一个单独的评估器,在每个回合后检查你的条件,因此完成由一个新鲜的模型而不是执行工作的模型决定。这两者是互补的:auto mode 消除了每个工具的提示,`/goal` 消除了每个回合的提示。
42 44
43<Tip>45<Tip>
44 上述方法保持当前会话运行。你也可以安排独立于任何打开的会话运行的工作,例如夜间测试或早晨分类。有关云例程和桌面计划任务的选项,请参阅[调度选项](/zh-CN/scheduled-tasks#compare-scheduling-options)。46 上述方法保持当前会话运行。你也可以安排独立于任何打开的会话运行的工作,例如夜间测试或早晨分类。有关云例程和桌面计划任务的选项,请参阅[调度选项](/zh-CN/scheduled-tasks#compare-scheduling-options)。
45</Tip>47</Tip>
46 48
47## 使用 `/goal`49<h2 id="use-/goal">
50 使用 `/goal`
51</h2>
48 52
49每个会话可以有一个活跃的目标。同一命令根据参数设置、检查和清除它。53每个会话可以有一个活跃的目标。同一命令根据参数设置、检查和清除它。
50 54
51### 设置目标55<h3 id="set-a-goal">
56 设置目标
57</h3>
52 58
53运行 `/goal` 后跟你想要满足的条件。如果已经有一个活跃的目标,新目标会替换它。59运行 `/goal` 后跟你想要满足的条件。如果已经有一个活跃的目标,新目标会替换它。
54 60
64 目标会一直运行,直到条件满足或你运行 `/goal clear`。运行不带参数的 `/goal` 可以查看到目前为止花费的回合和令牌。70 目标会一直运行,直到条件满足或你运行 `/goal clear`。运行不带参数的 `/goal` 可以查看到目前为止花费的回合和令牌。
65</Note>71</Note>
66 72
67### 编写有效的条件73<h3 id="write-an-effective-condition">
74 编写有效的条件
75</h3>
68 76
69[评估器](#how-evaluation-works)根据 Claude 在对话中呈现的内容来判断你的条件。它不会独立运行命令或读取文件,所以将条件写成 Claude 自己的输出可以演示的内容。"所有 `test/auth` 中的测试都通过"之所以有效,是因为 Claude 运行测试,结果出现在记录中供评估器读取。77[评估器](#how-evaluation-works)根据 Claude 在对话中呈现的内容来判断你的条件。它不会独立运行命令或读取文件,所以将条件写成 Claude 自己的输出可以演示的内容。"所有 `test/auth` 中的测试都通过"之所以有效,是因为 Claude 运行测试,结果出现在记录中供评估器读取。
70 78
78 86
79要限制目标运行的时间,在条件中包含一个回合或时间子句,例如 `or stop after 20 turns`。Claude 每个回合都会针对该子句报告进度,评估器从对话中判断它。87要限制目标运行的时间,在条件中包含一个回合或时间子句,例如 `or stop after 20 turns`。Claude 每个回合都会针对该子句报告进度,评估器从对话中判断它。
80 88
81### 检查状态89<h3 id="check-status">
90 检查状态
91</h3>
82 92
83运行不带参数的 `/goal` 可以查看当前状态。93运行不带参数的 `/goal` 可以查看当前状态。
84 94
96 106
97如果没有活跃的目标,但在会话早期实现了一个目标,状态显示已实现的条件及其持续时间、回合计数和令牌支出。107如果没有活跃的目标,但在会话早期实现了一个目标,状态显示已实现的条件及其持续时间、回合计数和令牌支出。
98 108
99### 清除目标109<h3 id="clear-a-goal">
110 清除目标
111</h3>
100 112
101运行 `/goal clear` 可以在条件满足之前移除活跃的目标。113运行 `/goal clear` 可以在条件满足之前移除活跃的目标。
102 114
106 118
107`stop`、`off`、`reset`、`none` 和 `cancel` 被接受为 `clear` 的别名。运行 `/clear` 启动新对话也会移除任何活跃的目标。119`stop`、`off`、`reset`、`none` 和 `cancel` 被接受为 `clear` 的别名。运行 `/clear` 启动新对话也会移除任何活跃的目标。
108 120
109### 使用活跃目标恢复121<h3 id="resume-with-an-active-goal">
122 使用活跃目标恢复
123</h3>
110 124
111当会话结束时仍然活跃的目标会在你使用 `--resume` 或 `--continue` 恢复该会话时恢复。条件会保留,但回合计数、计时器和令牌支出基线在恢复时都会重置。已经实现或清除的目标不会恢复。125当会话结束时仍然活跃的目标会在你使用 `--resume` 或 `--continue` 恢复该会话时恢复。条件会保留,但回合计数、计时器和令牌支出基线在恢复时都会重置。已经实现或清除的目标不会恢复。
112 126
113### 非交互式运行127<h3 id="run-non-interactively">
128 非交互式运行
129</h3>
114 130
115`/goal` 在[非交互式模式](/zh-CN/headless)、[桌面应用](/zh-CN/desktop)中工作,并通过[远程控制](/zh-CN/remote-control)工作。使用 `-p` 设置目标会在单个调用中运行循环至完成:131`/goal` 在[非交互式模式](/zh-CN/headless)、[桌面应用](/zh-CN/desktop)中工作,并通过[远程控制](/zh-CN/remote-control)工作。使用 `-p` 设置目标会在单个调用中运行循环至完成:
116 132
120 136
121使用 Ctrl+C 中断进程以在条件满足之前停止非交互式目标。137使用 Ctrl+C 中断进程以在条件满足之前停止非交互式目标。
122 138
123## 评估如何工作139<h2 id="how-evaluation-works">
140 评估如何工作
141</h2>
124 142
125`/goal` 是会话范围的[基于提示的 Stop hook](/zh-CN/hooks#prompt-based-hooks)的包装器。每次 Claude 完成一个回合时,条件和到目前为止的对话都会发送到你配置的[小型快速模型](/zh-CN/model-config),默认为 Haiku。模型返回一个是或否的决定和一个简短的原因。"否"告诉 Claude 继续工作,并包括原因作为下一个回合的指导。"是"清除目标并在记录中记录一个已实现的条目。143`/goal` 是会话范围的[基于提示的 Stop hook](/zh-CN/hooks#prompt-based-hooks)的包装器。每次 Claude 完成一个回合时,条件和到目前为止的对话都会发送到你配置的[小型快速模型](/zh-CN/model-config),默认为 Haiku。模型返回一个是或否的决定和一个简短的原因。"否"告诉 Claude 继续工作,并包括原因作为下一个回合的指导。"是"清除目标并在记录中记录一个已实现的条目。
126 144
130 评估令牌在为你的提供商配置的小型快速模型上计费,与主回合支出相比通常可以忽略不计。148 评估令牌在为你的提供商配置的小型快速模型上计费,与主回合支出相比通常可以忽略不计。
131</Note>149</Note>
132 150
133## 要求151<h2 id="requirements">
152 要求
153</h2>
134 154
135`/goal` 仅在你已接受信任对话框的工作区中运行,因为评估器是 hooks 系统的一部分。当在任何设置级别设置了 [`disableAllHooks`](/zh-CN/hooks#disable-or-remove-hooks) 时,或当在托管设置中设置了 [`allowManagedHooksOnly`](/zh-CN/settings#hook-configuration) 时,`/goal` 也不可用。在每种情况下,命令会告诉你原因,而不是默默地什么都不做。155`/goal` 仅在你已接受信任对话框的工作区中运行,因为评估器是 hooks 系统的一部分。当在任何设置级别设置了 [`disableAllHooks`](/zh-CN/hooks#disable-or-remove-hooks) 时,或当在托管设置中设置了 [`allowManagedHooksOnly`](/zh-CN/settings#hook-configuration) 时,`/goal` 也不可用。在每种情况下,命令会告诉你原因,而不是默默地什么都不做。
136 156
137## 另请参阅157<h2 id="see-also">
158 另请参阅
159</h2>
138 160
139* [使用 `/loop` 重复运行提示](/zh-CN/scheduled-tasks#run-a-prompt-repeatedly-with-%2Floop):按时间间隔重新运行,而不是直到条件满足161* [使用 `/loop` 重复运行提示](/zh-CN/scheduled-tasks#run-a-prompt-repeatedly-with-%2Floop):按时间间隔重新运行,而不是直到条件满足
140* [基于提示的 hooks](/zh-CN/hooks-guide#prompt-based-hooks):当你需要自定义评估逻辑时编写你自己的 Stop hook162* [基于提示的 hooks](/zh-CN/hooks-guide#prompt-based-hooks):当你需要自定义评估逻辑时编写你自己的 Stop hook