Skip to main content
OpenClaw は exec ツールを介してシェルコマンドを実行し、長時間実行されるタスクをメモリ内に保持します。process ツールは、それらのバックグラウンドセッションを管理します。

exec ツール

パラメーター: 動作:
  • フォアグラウンド実行では、出力が直接返されます。
  • バックグラウンド化された場合(明示的な指定、または yieldMs のタイムアウトによるもの)、ツールは status: "running" + sessionId と短い出力末尾を返します。
  • バックグラウンド化された実行と yieldMs 実行は、呼び出しで明示的な timeout が渡されない限り、tools.exec.timeoutSeconds を継承します。
  • 出力は、セッションがポーリングまたはクリアされるまでメモリ内に保持されます。
  • process ツールが許可されていない場合、exec は同期的に実行され、yieldMs/background は無視されます。
  • 起動された exec コマンドは、コンテキストに応じたシェル/プロファイル規則のために OPENCLAW_SHELL=exec を受け取ります。
  • 今すぐ開始する長時間実行の作業では、一度だけ開始し、コマンドが出力を生成するか失敗した時点で、自動完了ウェイク(有効な場合)に任せます。
  • 自動完了ウェイクが利用できない場合、または出力なしで正常終了するコマンドについて無出力の成功確認が必要な場合は、process でポーリングします。
  • リマインダーや遅延フォローアップを sleep ループや反復ポーリングで模倣しないでください。将来の作業には Cron を使用してください。

環境変数による上書き

設定(環境変数による上書きより推奨)

子プロセスのブリッジ

exec/process ツールの外部で長時間実行される子プロセス(CLI の再起動、Gateway ヘルパー)を起動する場合は、子プロセスブリッジヘルパーを接続し、終了シグナルが転送され、終了時またはエラー時にリスナーが解除されるようにします。これにより、systemd 上で孤立プロセスが発生するのを防ぎ、プラットフォーム間で一貫したシャットダウンを維持できます。

process ツール

アクション: 注:
  • 一覧表示および保持されるのはバックグラウンド化されたセッションのみです。保持先はメモリ内だけで、ディスクには保存されません。セッションはプロセスの再起動時に失われます。
  • 稼働中のバックグラウンドセッションがあると、プロセス所有者が実際の終了を確認するまで、協調的なホストのサスペンドと安全な Gateway の再起動がブロックされます。
  • process remove は終了を要求した直後に実行中のセッションを非表示にできますが、終了が確認されるまでサスペンドと再起動は引き続きブロックされます。
  • セッションログがチャット履歴に保存されるのは、process poll/log を実行し、ツール結果が記録された場合のみです。
  • process のスコープはエージェントごとで、そのエージェントが開始したセッションのみが表示されます。
  • 自動完了ウェイクが利用できない場合は、ステータス、ログ、または完了の確認に poll/log を使用します。
  • 対話型 CLI を復旧する前に log を使用し、現在のトランスクリプト、stdin の状態、入力待ちのヒントをまとめて確認できるようにします。
  • 入力または介入が必要な場合は、write/send-keys/submit/paste/kill を使用します。
  • process list には、すばやく確認できるよう、派生した name(コマンドの動詞 + ターゲット)が含まれます。
  • process listpoll、および log は、セッションの stdin が引き続き書き込み可能で、入力待ちのしきい値(デフォルトは 15000 ms、OPENCLAW_PROCESS_INPUT_WAIT_IDLE_MS)を超えてアイドル状態にある場合にのみ、waitingForInput を報告します。
  • process log は、行ベースの offset/limit を使用します。両方を省略すると、ページングのヒントとともに末尾の 200 行を返します。offset が設定され、limit が設定されていない場合、offset から末尾までを返します(200 行には制限されません)。
  • polltimeout は、値で指定されたミリ秒数まで待ってから結果を返します。30000 を超える値は 30000 に制限されます。
  • ポーリングはオンデマンドのステータス確認用であり、待機ループのスケジューリング用ではありません。作業を後で実行する場合は、Cron を使用してください。

長時間実行するタスクを開始し、後でポーリングする:
入力を送信する前に対話型セッションを調べる:
直ちにバックグラウンドで開始する:
stdin を送信する:
PTY キーを送信する:
現在の行を送信する:
リテラルテキストを貼り付ける:

関連項目