Automation and tasks

自動化とタスク

OpenClawは、タスク、スケジュール済みジョブ、推論されたコミットメント、イベントフック、常設指示を通じてバックグラウンドで作業を実行します。このページでは、適切な仕組みを選び、それらがどのように連携するかを理解できるようにします。

クイック判断ガイド

flowchart TD
    START([What do you need?]) --> Q1{Schedule work?}
    START --> Q2{Track detached work?}
    START --> Q3{Orchestrate multi-step flows?}
    START --> Q4{React to lifecycle events?}
    START --> Q5{Give the agent persistent instructions?}
    START --> Q6{Remember a natural follow-up?}

    Q1 -->|Yes| Q1a{Exact timing or flexible?}
    Q1a -->|Exact| CRON["Scheduled Tasks (Cron)"]
    Q1a -->|Flexible| HEARTBEAT[Heartbeat]

    Q2 -->|Yes| TASKS[Background Tasks]
    Q3 -->|Yes| FLOW[Task Flow]
    Q4 -->|Yes| HOOKS[Hooks]
    Q5 -->|Yes| SO[Standing Orders]
    Q6 -->|Yes| COMMITMENTS[Inferred Commitments]
ユースケース 推奨 理由
毎日午前9時ちょうどにレポートを送信する スケジュール済みタスク(Cron) 正確なタイミング、分離された実行
20分後にリマインドする スケジュール済みタスク(Cron) 正確なタイミングの単発実行(--at
週次の詳細分析を実行する スケジュール済みタスク(Cron) 独立したタスク、別のモデルを使用可能
30分ごとに受信箱を確認する Heartbeat 他の確認とまとめて実行、コンテキスト対応
今後の予定についてカレンダーを監視する Heartbeat 定期的な把握に自然に適合
言及された面接の後に確認する 推論されたコミットメント メモリに近いフォローアップ、正確なリマインダー要求なし
ユーザーコンテキスト後の軽いケア確認 推論されたコミットメント 同じエージェントとチャンネルにスコープされる
サブエージェントまたは ACP 実行の状態を調べる バックグラウンドタスク タスク台帳がすべての切り離された作業を追跡する
何がいつ実行されたかを監査する バックグラウンドタスク openclaw tasks listopenclaw tasks audit
複数ステップの調査後に要約する タスクフロー リビジョン追跡付きの永続的なオーケストレーション
セッションリセット時にスクリプトを実行する フック イベント駆動、ライフサイクルイベントで発火
すべてのツール呼び出しでコードを実行する Plugin フック インプロセスフックでツール呼び出しをインターセプト可能
返信前に常にコンプライアンスを確認する 常設指示 すべてのセッションに自動的に注入される

スケジュール済みタスク(Cron)と Heartbeat

観点 スケジュール済みタスク(Cron) Heartbeat
タイミング 正確(cron 式、単発) おおよそ(デフォルトは30分ごと)
セッションコンテキスト 新規(分離)または共有 メインセッション全体のコンテキスト
タスク記録 常に作成 作成されない
配信 チャンネル、webhook、またはサイレント メインセッション内にインライン表示
最適な用途 レポート、リマインダー、バックグラウンドジョブ 受信箱確認、カレンダー、通知

正確なタイミングや分離された実行が必要な場合は、スケジュール済みタスク(Cron)を使用します。作業が完全なセッションコンテキストの恩恵を受け、おおよそのタイミングで問題ない場合は、Heartbeatを使用します。

コア概念

スケジュール済みタスク(cron)

Cronは、正確なタイミングのための Gateway 組み込みスケジューラーです。ジョブを永続化し、適切なタイミングでエージェントを起動し、出力をチャットチャンネルまたは webhook エンドポイントに配信できます。単発リマインダー、繰り返し式、受信 webhook トリガーをサポートします。

スケジュール済みタスクを参照してください。

タスク

バックグラウンドタスク台帳は、すべての切り離された作業を追跡します。ACP 実行、サブエージェントの起動、分離された cron 実行、CLI 操作が含まれます。タスクは記録であり、スケジューラーではありません。それらを調べるには、openclaw tasks listopenclaw tasks audit を使用します。

バックグラウンドタスクを参照してください。

推論されたコミットメント

コミットメントは、オプトインの短期間のフォローアップメモリです。OpenClawは通常の会話からそれらを推論し、同じエージェントとチャンネルにスコープし、期限が来た確認を Heartbeat 経由で配信します。ユーザーが明示的に要求した正確なリマインダーは引き続き cron に属します。

推論されたコミットメントを参照してください。

タスクフロー

タスクフローは、バックグラウンドタスクの上位にあるフローオーケストレーション基盤です。管理型およびミラー型の同期モード、リビジョン追跡、調査用の openclaw tasks flow list|show|cancel により、永続的な複数ステップのフローを管理します。

タスクフローを参照してください。

常設指示

常設指示は、定義されたプログラムに対する永続的な運用権限をエージェントに付与します。これはワークスペースファイル(通常は AGENTS.md)に存在し、すべてのセッションに注入されます。時間ベースの強制には cron と組み合わせます。

常設指示を参照してください。

フック

内部フックは、エージェントのライフサイクルイベント(/new/reset/stop)、セッション Compaction、Gateway 起動、メッセージフローによってトリガーされるイベント駆動スクリプトです。ディレクトリから自動的に検出され、openclaw hooks で管理できます。インプロセスのツール呼び出しインターセプトには、Plugin フックを使用します。

フックを参照してください。

Heartbeat

Heartbeatは、定期的なメインセッションのターンです(デフォルトは30分ごと)。複数の確認(受信箱、カレンダー、通知)を、完全なセッションコンテキストを持つ1つのエージェントターンにまとめます。Heartbeatターンはタスク記録を作成せず、日次/アイドルのセッションリセット鮮度を延長しません。小さなチェックリストには HEARTBEAT.md を使用し、Heartbeat自体の中で期限到来分のみの定期確認を行いたい場合は tasks: ブロックを使用します。空の Heartbeat ファイルは empty-heartbeat-file としてスキップされ、期限到来分のみのタスクモードは no-tasks-due としてスキップされます。Heartbeatは cron 作業がアクティブまたはキュー済みの間は延期され、heartbeat.skipWhenBusy によってサブエージェントまたはネストされたレーンがビジーの間も延期できます。

Heartbeatを参照してください。

連携の仕組み

  • Cron は、正確なスケジュール(日次レポート、週次レビュー)と単発リマインダーを処理します。すべての cron 実行はタスク記録を作成します。
  • Heartbeat は、定期的な監視(受信箱、カレンダー、通知)を30分ごとの1つのバッチターンで処理します。
  • フック は、特定のイベント(セッションリセット、Compaction、メッセージフロー)にカスタムスクリプトで反応します。Plugin フックはツール呼び出しを対象にします。
  • 常設指示 は、エージェントに永続的なコンテキストと権限境界を与えます。
  • タスクフロー は、個々のタスクの上位で複数ステップのフローを調整します。
  • タスク は、すべての切り離された作業を自動的に追跡し、調査と監査を可能にします。

関連