Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
スケジューリングを探していますか?適切な仕組みを選ぶには Automation を参照してください。このページはバックグラウンド作業のアクティビティ台帳であり、スケジューラーではありません。
すべてのエージェント実行がタスクを作成するわけではありません。Heartbeat ターンと通常の対話チャットは作成しません。すべての cron 実行、ACP 生成、サブエージェント生成、CLI エージェントコマンドは作成します。
TL;DR
- タスクはスケジューラーではなく記録です。cron と Heartbeat が作業を_いつ_実行するかを決め、タスクは_何が起きたか_を追跡します。
- ACP、サブエージェント、すべての cron ジョブ、CLI 操作はタスクを作成します。Heartbeat ターンは作成しません。
- 各タスクは
queued → running → terminal(succeeded、failed、timed_out、cancelled、または lost) を進みます。 - Cron タスクは、cron ランタイムがまだジョブを所有している間はライブのままです。 メモリ内のランタイム状態がなくなった場合、タスク保守はタスクを lost としてマークする前に、まず永続化された cron 実行履歴を確認します。
- 完了はプッシュ駆動です。切り離された作業は完了時に直接通知するか、 リクエスターのセッション/Heartbeat を起こせるため、ステータスのポーリングループは たいてい不適切な形です。
- 分離された cron 実行とサブエージェント完了は、最終的なクリーンアップ帳簿の前に、子セッションで追跡されているブラウザータブ/プロセスをベストエフォートでクリーンアップします。
- 分離された cron 配信は、子孫サブエージェント作業がまだ排出中の間は古い中間の親返信を抑制し、配信前に最終的な子孫出力が到着した場合はそれを優先します。
- 完了通知はチャネルに直接配信されるか、次の Heartbeat 用にキューに入れられます。
openclaw tasks listはすべてのタスクを表示します。openclaw tasks auditは問題を表面化します。- ターミナル記録は 7 日間保持され、その後自動的に削除されます。
クイックスタート
- 一覧表示と絞り込み
- 調査
- キャンセルと通知
- 監査と保守
- タスクフロー
タスクを作成するもの
| ソース | ランタイム種別 | タスク記録が作成されるタイミング | デフォルト通知ポリシー |
|---|---|---|---|
| ACP バックグラウンド実行 | acp | 子 ACP セッションを生成するとき | done_only |
| サブエージェントのオーケストレーション | subagent | sessions_spawn 経由でサブエージェントを生成するとき | done_only |
| Cron ジョブ (全種別) | cron | 各 cron 実行 (メインセッションと分離実行) | silent |
| CLI 操作 | cli | Gateway 経由で実行される openclaw agent コマンド | silent |
| エージェントメディアジョブ | cli | セッションに基づく music_generate/video_generate 実行 | silent |
cron とメディアの通知デフォルト
cron とメディアの通知デフォルト
メインセッションの cron タスクは、デフォルトで
silent 通知ポリシーを使用します。追跡用の記録は作成しますが、通知は生成しません。分離された cron タスクもデフォルトは silent ですが、独自のセッションで実行されるため、より見えやすくなります。セッションに基づく music_generate と video_generate の実行も silent 通知ポリシーを使用します。それでもタスク記録は作成されますが、完了は内部ウェイクとして元のエージェントセッションに返されるため、エージェントはフォローアップメッセージを書き、完成したメディアを自分で添付できます。グループ/チャネルの完了は通常の可視返信ポリシーに従うため、ソース配信で必要な場合、エージェントはメッセージツールを使用します。ツールのみの経路で完了エージェントがメッセージツール配信の証拠を生成できない場合、OpenClaw はメディアを非公開のままにするのではなく、完了フォールバックを元のチャネルに直接送信します。同時 video_generate のガードレール
同時 video_generate のガードレール
セッションに基づく
video_generate タスクがまだアクティブな間、このツールはガードレールとしても機能します。同じセッション内で video_generate 呼び出しが繰り返された場合、2 つ目の同時生成を開始する代わりに、アクティブなタスクのステータスを返します。エージェント側から明示的な進行状況/ステータス参照が必要な場合は、action: "status" を使用してください。タスクを作成しないもの
タスクを作成しないもの
- Heartbeat ターン - メインセッション。Heartbeat を参照
- 通常の対話チャットターン
- 直接の
/command応答
タスクのライフサイクル
| ステータス | 意味 |
|---|---|
queued | 作成済みで、エージェントの開始を待機中 |
running | エージェントターンがアクティブに実行中 |
succeeded | 正常に完了 |
failed | エラーで完了 |
timed_out | 設定されたタイムアウトを超過 |
cancelled | オペレーターが openclaw tasks cancel で停止 |
lost | 5 分間の猶予期間後に、ランタイムが権威ある裏付け状態を失った |
succeeded として最終化され、通常の実行エラーは failed として最終化され、タイムアウトまたは中止の結果は timed_out として最終化されます。オペレーターがすでにタスクをキャンセルしていた場合、またはランタイムが failed、timed_out、lost などのより強いターミナル状態をすでに記録していた場合、後から成功シグナルが来ても、そのターミナルステータスを格下げしません。
lost はランタイムを考慮します:
- ACP タスク: 裏付けとなる ACP 子セッションメタデータが消えた。
- サブエージェントタスク: 裏付けとなる子セッションが対象エージェントストアから消えた。
- Cron タスク: cron ランタイムがそのジョブをアクティブとして追跡しなくなり、永続化された cron 実行履歴にもその実行のターミナル結果が示されていない。オフライン CLI 監査は、自身の空のプロセス内 cron ランタイム状態を権威として扱いません。
- CLI タスク: 実行 ID/ソース ID を持つタスクはライブ実行コンテキストを使用するため、
子セッションまたはチャットセッションの行が残っていても、
Gateway が所有する実行が消えた後にそれらを生存状態には保ちません。実行 ID がないレガシー CLI タスクは、引き続き
子セッションへフォールバックします。Gateway に基づく
openclaw agent実行も 実行結果から最終化されるため、完了した実行が、スイーパーによってlostとマークされるまでアクティブのままにはなりません。
配信と通知
タスクがターミナル状態に達すると、OpenClaw が通知します。配信経路は 2 つあります: 直接配信 - タスクにチャネルターゲット (requesterOrigin) がある場合、完了メッセージはそのチャネル (Telegram、Discord、Slack など) に直接送られます。グループとチャネルのタスク完了は、代わりにリクエスターセッション経由でルーティングされるため、親エージェントが可視返信を書けます。サブエージェント完了では、OpenClaw は利用可能な場合、バインド済みのスレッド/トピックルーティングも保持し、直接配信を諦める前に、リクエスターセッションに保存された経路 (lastChannel / lastTo / lastAccountId) から不足している to / アカウントを補完できます。
セッションキュー配信 - 直接配信が失敗した場合、または origin が設定されていない場合、更新はリクエスターのセッション内のシステムイベントとしてキューに入れられ、次の Heartbeat で表面化します。
つまり、通常のワークフローはプッシュベースです。切り離された作業を一度開始し、完了時にランタイムが起こすか通知するのに任せます。タスク状態をポーリングするのは、デバッグ、介入、または明示的な監査が必要な場合だけです。
通知ポリシー
各タスクについて、どれだけ通知を受け取るかを制御します:| ポリシー | 配信される内容 |
|---|---|
done_only (デフォルト) | ターミナル状態のみ (succeeded、failed など) - これがデフォルトです |
state_changes | すべての状態遷移と進行状況更新 |
silent | 何も配信しない |
CLI リファレンス
tasks list
tasks list
tasks show
tasks show
tasks cancel
tasks cancel
cancelled に遷移し、該当する場合は配信通知が送信されます。tasks notify
tasks notify
tasks audit
tasks audit
openclaw status にも表示されます。| 検出項目 | 重要度 | トリガー |
|---|---|---|
stale_queued | warn | 10分を超えてキューに入っている |
stale_running | error | 30分を超えて実行中 |
lost | warn/error | ランタイムに基づくタスク所有権が消失した。保持中の lost タスクは cleanupAfter まで警告となり、その後エラーになる |
delivery_failed | warn | 配信に失敗し、通知ポリシーが silent ではない |
missing_cleanup | warn | クリーンアップタイムスタンプがない終端タスク |
inconsistent_timestamps | warn | タイムライン違反(たとえば開始前に終了している) |
tasks maintenance
tasks maintenance
- ACP/サブエージェントタスクは、対応する子セッションを確認します。
- 子セッションに再起動リカバリの tombstone があるサブエージェントタスクは、復旧可能な対応セッションとして扱われず、lost としてマークされます。
- Cron タスクは、cron ランタイムがまだジョブを所有しているかを確認し、その後
lostにフォールバックする前に、永続化された cron 実行ログ/ジョブ状態から終端ステータスを復旧します。インメモリの cron アクティブジョブ集合について権威を持つのは Gateway プロセスのみです。オフライン CLI 監査は耐久性のある履歴を使用しますが、そのローカル Set が空であることだけを理由に cron タスクを lost としてマークすることはありません。 - 実行 ID を持つ CLI タスクは、子セッションやチャットセッション行だけでなく、所有しているライブ実行コンテキストを確認します。
- サブエージェントの完了では、アナウンスのクリーンアップが続行する前に、子セッションに対して追跡されているブラウザタブ/プロセスをベストエフォートで閉じます。
- 分離された cron の完了では、実行が完全に終了する前に、cron セッションに対して追跡されているブラウザタブ/プロセスをベストエフォートで閉じます。
- 分離された cron の配信は、必要に応じて子孫サブエージェントのフォローアップを待ち、古い親の確認応答テキストをアナウンスする代わりに抑制します。
- サブエージェント完了の配信では、最新の表示可能な assistant テキストを優先します。それが空の場合は、サニタイズ済みの最新 tool/toolResult テキストにフォールバックし、タイムアウトのみのツール呼び出し実行は短い部分進捗サマリーにまとめられることがあります。終端で失敗した実行は、取得済みの返信テキストを再生せずに失敗ステータスをアナウンスします。
- クリーンアップの失敗が、実際のタスク結果を隠すことはありません。
cron:<jobId>:run:<uuid> セッションレジストリ行も削除します。その一方で、現在実行中の cron ジョブの行は保持し、cron 以外のセッション行には手を触れません。tasks flow list | show | cancel
tasks flow list | show | cancel
チャットタスクボード(/tasks)
任意のチャットセッションで /tasks を使用すると、そのセッションにリンクされたバックグラウンドタスクを確認できます。ボードには、アクティブなタスクと最近完了したタスクが、ランタイム、ステータス、タイミング、進捗またはエラー詳細とともに表示されます。
現在のセッションに表示可能なリンク済みタスクがない場合、/tasks はエージェントローカルのタスク数にフォールバックするため、他セッションの詳細を漏らさずに概要を確認できます。
完全なオペレータ台帳には CLI を使用します: openclaw tasks list。
ステータス統合(タスク負荷)
openclaw status には、一目でわかるタスクサマリーが含まれます。
- active -
queued+runningの数 - failures -
failed+timed_out+lostの数 - byRuntime -
acp、subagent、cron、cliごとの内訳
/status と session_status ツールはいずれも、クリーンアップを考慮したタスクスナップショットを使用します。アクティブなタスクが優先され、古い完了済み行は非表示になり、最近の失敗はアクティブな作業が残っていない場合にのみ表示されます。これにより、ステータスカードは今重要な内容に集中できます。
ストレージと maintenance
タスクの保存場所
タスクレコードは SQLite の次の場所に永続化されます。TRUNCATE チェックポイントとシャットダウン時の TRUNCATE チェックポイントを使用して、SQLite の先行書き込みログを制限します。
自動 maintenance
スイーパーは 60秒 ごとに実行され、4つの処理を行います。照合
アクティブなタスクに、権威のあるランタイム上の裏付けがまだあるかを確認します。ACP/サブエージェントタスクは子セッション状態を使用し、cron タスクはアクティブジョブ所有権を使用し、実行 ID を持つ CLI タスクは所有している実行コンテキストを使用します。その裏付け状態が5分を超えて失われている場合、タスクは
lost としてマークされます。ACP セッション修復
終端状態または孤立した親所有のワンショット ACP セッションを閉じます。また、古い終端状態または孤立した永続 ACP セッションは、アクティブな会話バインディングが残っていない場合にのみ閉じます。
クリーンアップのタイムスタンプ付与
終端タスクに
cleanupAfter タイムスタンプを設定します(endedAt + 7日)。保持期間中、lost タスクは監査で引き続き警告として表示されます。cleanupAfter が期限切れになるか、クリーンアップメタデータが欠落している場合はエラーになります。保持: 終端タスクレコードは 7日間 保持され、その後自動的にプルーニングされます。設定は不要です。
タスクと他システムの関係
タスクとタスクフロー
タスクとタスクフロー
タスクと cron
タスクと cron
cron ジョブの定義は
~/.openclaw/cron/jobs.json にあります。ランタイム実行状態は、その横の ~/.openclaw/cron/jobs-state.json にあります。cron のすべての実行はタスクレコードを作成します。メインセッションと分離実行の両方が対象です。メインセッションの cron タスクは、通知を生成せずに追跡できるよう、既定で silent 通知ポリシーになります。Cron ジョブ を参照してください。タスクと Heartbeat
タスクと Heartbeat
Heartbeat 実行はメインセッションのターンであり、タスクレコードは作成しません。タスクが完了すると、Heartbeat のウェイクをトリガーし、結果をすぐに確認できるようにできます。Heartbeat を参照してください。
タスクとセッション
タスクとセッション
タスクは
childSessionKey(作業が実行される場所)と requesterSessionKey(開始した主体)を参照することがあります。セッションは会話コンテキストであり、タスクはその上にあるアクティビティ追跡です。タスクとエージェント実行
タスクとエージェント実行
タスクの
runId は、作業を実行しているエージェント実行にリンクします。エージェントのライフサイクルイベント(開始、終了、エラー)はタスクステータスを自動的に更新するため、ライフサイクルを手動で管理する必要はありません。関連
- 自動化 - すべての自動化メカニズムの概要
- CLI: タスク - CLI コマンドリファレンス
- Heartbeat - 定期的なメインセッションターン
- スケジュールされたタスク - バックグラウンド作業のスケジューリング
- タスクフロー - タスクの上位にあるフローオーケストレーション