目标
目标 是附加到当前 OpenClaw 会话上的一个持久目标。 它为代理和操作者提供一个共享的长期工作目标, 而不会把该目标变成后台任务、提醒、cron 作业或 固定指令。 目标是会话状态:它会随会话键移动,跨进程重启保留, 并会出现在/goal、面向模型的目标工具以及 TUI
页脚中。
分离的命令完成后会返回到其源用户可见线程,因此
即使命令执行使用了单独的沙盒策略会话,下一轮仍会继续看到
相同的目标。
快速开始
start 是可选的:/goal get CI green for PR 87469 也会创建一个目标,
因为任何位于 /goal 之后且不是已知动作词的文本都会被视为一个
新目标。
目标的用途
当一次会话有一个具体的结果,并且需要在多个回合中保持可见时,请使用目标:- 一个 PR 收尾:修复、验证、自动审查、推送,并打开或更新 PR。
- 一次调试运行:复现 bug,确定所属的范围,打补丁,并证明修复有效。
- 一次文档处理:阅读相关文档,编写新页面,建立交叉链接,并验证文档构建。
- 一项维护任务:检查当前状态,进行有界更改,运行正确的检查,并报告发生了什么变化。
命令参考
/goal 不带参数时会打印当前目标摘要:
在一个会话中同一时间只能存在一个目标。创建第二个目标会失败,
并显示
Goal error: goal already exists,直到当前目标被清除为止。
/goal start 不接受 token 预算标志;预算只能通过面向模型的 create_goal 工具设置。
状态
active:会话正在追求目标。paused:操作员已暂停目标;/goal resume会使其再次激活 。blocked:代理或操作员报告了一个真实的阻塞;当有新的信息或状态可用时,/goal resume会使其再次激活。budget_limited:已达到配置的 token 预算;/goal resume会使用新的预算窗口,从同一目标重新开始追求。usage_limited:保留用于未来的使用限制停止状态;/goal resume会以相同方式重新开始追求。complete:目标已达成。已完成的目标是终态;在开始另一个目标之前,请使用/goal clear。
/new 和 /reset 会清除当前会话目标,因为它们会刻意
启动全新的会话上下文。
Token 预算
目标可以设置一个可选的正向 token 预算,通过create_goal 工具的 token_budget 参数进行设置。该预算从目标创建时会话的最新 token 计数开始计算。如果目标开始时,会话只有过时或未知的 token 快照,OpenClaw 会等待下一次最新快照,并将其作为基线,因此在目标创建之前花费的 token 不会计入该目标。
当用量达到预算时,目标会进入 budget_limited 状态。这不会删除目标或抹除其目标;它只是告诉操作者和代理,该目标在恢复或清除之前不再被积极推进。恢复后,会在当前最新 token 计数处开始一个新的预算窗口。
Token 预算是会话-目标级别的保护栏,而不是计费上限。提供方配额、成本报告以及上下文窗口行为仍然使用标准的 OpenClaw 用量和模型控制。
模型工具
OpenClaw 向代理运行环境暴露了三个目标工具:
模型不能静默暂停、恢复、清除或替换目标。这些仍然是通过
/goal 和重置命令进行的操作员/会话控制,因此代理
可以报告已完成或真正的阻塞,而不会悄悄改变
目标。
update_goal 只有在目标确实达成时才应将目标标记为 complete。只有在相同的阻塞条件连续至少三个目标轮次中反复出现后,才应将目标标记为 blocked,而不是因为普通的困难或缺少润色就进行标记。更新目标状态不会发送聊天回复;代理仍必须提供用户所请求的最终回复。
每次回合的目标上下文
每个具有激活目标的用户/聊天回合都包含这一用户角色上下文行:控制 UI
Web 控制 UI 会在聊天输入框上方以紧凑的胶囊形式显示目标: 一个状态图标、状态标签(例如Pursuing goal)、截断后的
目标,以及实时经过的计时器。
该胶囊带有内联控制:
- 铅笔 会预填充输入框为
/goal edit <objective>,以便 可以改写目标并提交。 - 暂停 / 恢复 会根据当前状态在
/goal pause和/goal resume之间切换。 - 垃圾桶 会发送
/goal clear。 - 下拉箭头 会展开胶囊,显示完整目标、最新状态 注释、token 使用量和经过时间。
TUI
TUI 页脚会在 token/模式指示器之前,将当前会话的目标显示在 agent、session 和 model 字段旁边。 页脚示例:Pursuing goal (12k/50k)表示带有 token 预算的活动目标。Goal paused (/goal resume)表示已暂停的目标。Goal blocked (/goal resume)表示已阻塞的目标。Goal hit usage limits (/goal resume)表示受使用量限制的目标。Goal unmet (50k/50k)表示受预算限制的目标。Goal achieved (42k)表示已完成的目标。
/goal 查看完整目标、
说明、token 预算以及可用命令。
通道行为
/goal 可在支持命令的 OpenClaw 会话中使用,包括允许文本命令的 TUI 和聊天界面。目标状态附加在会话密钥上,而不是传输通道上,因此共享同一会话密钥的两个界面会看到相同的目标。
目标状态不是投递指令:它不会强制通过某个通道回复,不会改变队列行为,不会批准工具,也不会安排工作。
故障排查
如果令牌用量显示为
0 或看起来是旧的,则当前活动会话可能还没有
新的令牌快照。随着 OpenClaw 记录会话使用情况和基于转录的总计,使用量会刷新。