Skip to main content

目标

目标 是附加到当前 OpenClaw 会话上的一个持久目标。 它为代理和操作者提供一个共享的长期工作目标, 而不会把该目标变成后台任务、提醒、cron 作业或 固定指令。 目标是会话状态:它会随会话键移动,跨进程重启保留, 并会出现在 /goal、面向模型的目标工具以及 TUI 页脚中。 分离的命令完成后会返回到其源用户可见线程,因此 即使命令执行使用了单独的沙盒策略会话,下一轮仍会继续看到 相同的目标。

快速开始

start 是可选的:/goal get CI green for PR 87469 也会创建一个目标, 因为任何位于 /goal 之后且不是已知动作词的文本都会被视为一个 新目标。

目标的用途

当一次会话有一个具体的结果,并且需要在多个回合中保持可见时,请使用目标:
  • 一个 PR 收尾:修复、验证、自动审查、推送,并打开或更新 PR。
  • 一次调试运行:复现 bug,确定所属的范围,打补丁,并证明修复有效。
  • 一次文档处理:阅读相关文档,编写新页面,建立交叉链接,并验证文档构建。
  • 一项维护任务:检查当前状态,进行有界更改,运行正确的检查,并报告发生了什么变化。
目标不是任务队列。当工作需要脱离主会话运行、 按计划重复、拆分成受管子工作,或者作为策略持续存在时,请使用 Task Flowtaskscron jobsstanding orders

命令参考

/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,而不是因为普通的困难或缺少润色就进行标记。更新目标状态不会发送聊天回复;代理仍必须提供用户所请求的最终回复。

每次回合的目标上下文

每个具有激活目标的用户/聊天回合都包含这一用户角色上下文行:
OpenClaw 通过截断较长的目标来保持这一行的简洁。已暂停、已阻塞、受预算限制、受用量限制以及已完成的目标不会被注入,因此,操作员的停止指令会一直生效,直到该目标恢复为止。

控制 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 记录会话使用情况和基于转录的总计,使用量会刷新。

相关内容