Agent coordination
目標
ゴール
ゴールとは、現在の OpenClaw セッションに関連付けられた、永続的な目標のことです。 長時間にわたる作業について、エージェントとオペレーターが共通の目標を持てるようにしますが、その目標をバックグラウンドタスク、リマインダー、Cron ジョブ、常設指示に変えるものではありません。
ゴールはセッション状態です。セッションキーとともに移動し、プロセスの再起動後も保持され、/goal、モデル向けのゴールツール、TUI のフッターに表示されます。
クイックスタート
/goal start get CI green for PR 87469 and push the fix/goal/goal edit get CI green for PR 87469, push the fix, and update docs/goal pause waiting for CI/goal resume/goal complete pushed and verified/goal clearstart は省略可能です。/goal get CI green for PR 87469 でもゴールが作成されます。これは、/goal の後に続くテキストが既知のアクション語でない場合、新しい目標として扱われるためです。
ゴールの用途
セッションに具体的な成果があり、多数のターンにわたって表示し続ける必要がある場合にゴールを使用します。
- PR の完了作業:修正、検証、autoreview、プッシュ、PR の作成または更新。
- デバッグ作業:バグの再現、担当範囲の特定、パッチの適用、修正の実証。
- ドキュメント作業:関連ドキュメントの確認、新しいページの作成、相互リンクの追加、ドキュメントビルドの検証。
- メンテナンスタスク:現在の状態の確認、範囲を限定した変更、適切なチェックの実行、変更内容の報告。
ゴールはタスクキューではありません。作業を切り離して実行する場合、スケジュールに従って繰り返す場合、管理されたサブ作業に分岐する場合、またはポリシーとして永続化する場合は、TaskFlow、タスク、Cron ジョブ、常設指示を使用します。
コマンドリファレンス
引数なしの /goal は、現在のゴールの概要を表示します。
GoalStatus: activeObjective: get CI green for PR 87469 and push the fixTokens used: 12kToken budget: 12k/50k Commands: /goal edit <objective>, /goal pause, /goal complete, /goal clear| コマンド | 効果 |
|---|---|
/goal または /goal status |
現在のゴールを表示します。 |
/goal start <objective> |
現在のセッションに新しいゴールを作成します。 |
/goal set <objective>、/goal create <objective> |
start のエイリアスです。 |
/goal <objective> |
新しいゴールを作成します(認識済みのアクション語ではない任意のテキスト)。 |
/goal edit <objective> |
現在の目標を書き換えます。ステータスとトークン集計は維持されます。 |
/goal pause [note] |
アクティブなゴールを一時停止します。 |
/goal resume [note] |
一時停止中、ブロック中、使用量制限中、または予算制限中のゴールを再開します。 |
/goal complete [note] |
ゴールを達成済みにします。 |
/goal done [note] |
complete のエイリアスです。 |
/goal block [note] |
ゴールをブロック中にします。 |
/goal blocked [note] |
block のエイリアスです。 |
/goal clear |
セッションからゴールを削除します。 |
1 つのセッションに同時に存在できるゴールは 1 つだけです。現在のゴールをクリアするまでは、2 つ目のゴールを開始しようとすると Goal error: goal already exists で失敗します。
/goal start はトークン予算フラグを受け取りません。予算は、モデル向けの create_goal ツールでのみ設定できます。
ステータス
active:セッションがゴールの達成に取り組んでいます。paused:オペレーターがゴールを一時停止しました。/goal resumeで再びアクティブになります。blocked:エージェントまたはオペレーターが実際の阻害要因を報告しました。新しい情報や状態が利用可能になったとき、/goal resumeで再びアクティブになります。budget_limited:設定されたトークン予算に達しました。/goal resumeを実行すると、同じ目標について新しい予算期間で取り組みを再開します。usage_limited:将来の使用量制限による停止状態のために予約されています。/goal resumeを実行すると、同じ方法で取り組みを再開します。complete:ゴールを達成しました。完了したゴールは終了状態です。別のゴールを開始する前に/goal clearを使用してください。
/new と /reset は新しいセッションコンテキストを意図的に開始するため、現在のセッションのゴールをクリアします。
トークン予算
ゴールには、任意の正のトークン予算を設定できます。これは create_goal ツールの token_budget パラメーターを通じて設定します。予算は、ゴール作成時のセッションの最新トークン数を基準に測定されます。ゴール開始時にセッションのトークンスナップショットが古いか不明な場合、OpenClaw は次の最新スナップショットを待ってそれを基準値として使用するため、ゴール作成前に使用されたトークンは計上されません。
使用量が予算に達すると、ゴールは budget_limited に移行します。これによってゴールが削除されたり目標が消去されたりすることはありません。再開またはクリアされるまでゴールへの取り組みが停止していることを、オペレーターとエージェントに示します。再開すると、現在の最新トークン数を基準に新しい予算期間が開始されます。
トークン予算はセッションゴールのガードレールであり、請求上限ではありません。プロバイダーのクォータ、コストレポート、コンテキストウィンドウの動作には、引き続き通常の OpenClaw の使用量およびモデル制御が適用されます。
モデルツール
OpenClaw はエージェントハーネスに 3 つのゴールツールを公開します。
| ツール | 目的 |
|---|---|
get_goal |
現在のセッションゴール(ステータス、目標、トークン使用量、トークン予算)を読み取ります。 |
create_goal |
ユーザーまたはシステムの指示で明示的に要求された場合にのみゴールを作成します。セッションにゴールがすでにある場合は失敗します。 |
update_goal |
ゴールを complete または blocked にします。 |
モデルがゴールを密かに一時停止、再開、クリア、置換することはできません。これらは /goal とリセットコマンドを通じたオペレーターまたはセッションの制御として維持されるため、エージェントは目標を密かに変更することなく、達成または実際の阻害要因を報告できます。
update_goal でゴールを complete にするのは、目標が実際に達成された場合に限ります。ゴールを blocked にするのは、同じ阻害条件が少なくとも 3 回連続したゴールターンで再発した後に限ります。通常の困難や仕上げ不足を理由にしてはいけません。
各ターンのゴールコンテキスト
アクティブなゴールがあるすべてのユーザーまたはチャットターンには、次のユーザーロールのコンテキスト行が含まれます。
Active goal: <objective> — advance it or update its status (get_goal/update_goal).OpenClaw は長い目標を切り詰めて、この行を簡潔に保ちます。一時停止中、ブロック中、予算制限中、使用量制限中、完了済みのゴールは挿入されないため、ゴールが再開されるまでオペレーターによる停止が維持されます。
Control UI
Web の Control UI は、チャット入力欄の上にコンパクトなピルとしてゴールを表示します。ステータスアイコン、ステータスラベル(例:Pursuing goal)、切り詰められた目標、リアルタイムの経過時間タイマーが表示されます。
ピルにはインラインコントロールがあります。
- 鉛筆は入力欄に
/goal edit <objective>を事前入力し、目標を書き換えて送信できるようにします。 - 一時停止 / 再開は現在のステータスに応じて、
/goal pauseと/goal resumeを切り替えます。 - ゴミ箱は
/goal clearを送信します。 - 山形アイコンはピルを展開し、目標の全文、最新のステータスメモ、トークン使用量、経過時間を表示します。
入力欄から送信できない間(たとえば Gateway 接続が切断されている場合)、アクションボタンは非表示になりますが、展開用の山形アイコンは引き続き機能します。
TUI
TUI のフッターでは、アクティブなセッションのゴールが、エージェント、セッション、モデルの各フィールドの横、トークンとモードのインジケーターの前に表示され続けます。
フッターの例:
- トークン予算があるアクティブなゴールでは
Pursuing goal (12k/50k)。 - 一時停止中のゴールでは
Goal paused (/goal resume)。 - ブロック中のゴールでは
Goal blocked (/goal resume)。 - 使用量制限中のゴールでは
Goal hit usage limits (/goal resume)。 - 予算制限中のゴールでは
Goal unmet (50k/50k)。 - 完了したゴールでは
Goal achieved (42k)。
フッターは意図的に簡潔になっています。目標の全文、メモ、トークン予算、利用可能なコマンドを確認するには /goal を使用してください。
チャネルの動作
/goal は、TUI やテキストコマンドを許可するチャット画面など、コマンドに対応した OpenClaw セッションで機能します。ゴールの状態はトランスポートではなくセッションキーに関連付けられるため、同じセッションキーを共有する 2 つの画面では同じゴールが表示されます。
ゴールの状態は配信指示ではありません。チャネル経由の応答を強制したり、キューの動作を変更したり、ツールを承認したり、作業をスケジュールしたりすることはありません。
トラブルシューティング
| メッセージ | 意味 |
|---|---|
Goal error: goal already exists |
セッションにはすでにゴールがあります。/goal で確認し、完了している場合は /goal complete を使用するか、別の目標を開始する前に /goal clear を使用してください。 |
Goal error: goal not found |
セッションにはまだゴールがありません。/goal start <objective> で開始してください。 |
Goal error: goal is already complete |
ゴールは終了状態です。別の目標を開始または再開する前にクリアしてください。 |
トークン使用量に 0 と表示されるか、古い値に見える場合、アクティブなセッションにまだ最新のトークンスナップショットがない可能性があります。OpenClaw がセッション使用量とトランスクリプトから算出した合計を記録すると、使用量が更新されます。