OpenClaw は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.
exec ツールを通じてシェルコマンドを実行し、長時間実行されるタスクをメモリ内に保持します。process ツールはそれらのバックグラウンドセッションを管理します。
exec ツール
主要なパラメータ:
command(必須)yieldMs(デフォルト 10000): この遅延後に自動でバックグラウンド化background(bool): ただちにバックグラウンド化timeout(秒、デフォルトはtools.exec.timeoutSec): このタイムアウト後にプロセスを kill します。その呼び出しで exec プロセスのタイムアウトを無効にする場合のみtimeout: 0を設定しますelevated(bool): elevated モードが有効/許可されている場合にサンドボックス外で実行します (デフォルトはgateway、exec ターゲットがnodeの場合はnode)- 実際の TTY が必要ですか?
pty: trueを設定してください。 workdir,env
- フォアグラウンド実行は出力を直接返します。
- バックグラウンド化された場合 (明示的またはタイムアウト)、ツールは
status: "running"+sessionIdと短い末尾出力を返します。 - バックグラウンド実行と
yieldMs実行は、呼び出しが明示的なtimeoutを指定しない限り、tools.exec.timeoutSecを継承します。 - 出力は、セッションがポーリングまたはクリアされるまでメモリ内に保持されます。
processツールが許可されていない場合、execは同期的に実行され、yieldMs/backgroundを無視します。- 生成された exec コマンドは、コンテキスト対応のシェル/プロファイルルールのために
OPENCLAW_SHELL=execを受け取ります。 - これから開始する長時間実行の作業では、一度だけ開始し、自動完了ウェイクが有効で、コマンドが出力を生成するか失敗した場合はそれに依存します。
- 自動完了ウェイクが利用できない場合、または出力なしで正常終了したコマンドの静かな成功確認が必要な場合は、
processを使用して完了を確認します。 - リマインダーや遅延フォローアップを
sleepループや繰り返しポーリングでエミュレートしないでください。将来の作業には Cron を使用してください。
子プロセスブリッジ
exec/process ツールの外で長時間実行される子プロセスを生成する場合 (たとえば、CLI の再生成や Gateway ヘルパー)、終了シグナルが転送され、exit/error 時にリスナーがデタッチされるように、子プロセスブリッジヘルパーをアタッチします。これにより、systemd 上で孤立プロセスを避け、プラットフォーム間でシャットダウン動作を一貫させます。 環境変数の上書き:PI_BASH_YIELD_MS: デフォルトの yield (ms)PI_BASH_MAX_OUTPUT_CHARS: メモリ内出力の上限 (文字数)OPENCLAW_BASH_PENDING_MAX_OUTPUT_CHARS: ストリームごとの保留中 stdout/stderr 上限 (文字数)PI_BASH_JOB_TTL_MS: 完了済みセッションの TTL (ms、1m–3h に制限)OPENCLAW_PROCESS_INPUT_WAIT_IDLE_MS: 書き込み可能なバックグラウンドセッションが入力待ちの可能性ありとしてマークされる前のアイドル出力しきい値 (デフォルト 15000 ms)
tools.exec.backgroundMs(デフォルト 10000)tools.exec.timeoutSec(デフォルト 1800)tools.exec.cleanupMs(デフォルト 1800000)tools.exec.notifyOnExit(デフォルト true): バックグラウンド化された exec が終了したときに、システムイベントをキューに入れ、Heartbeat をリクエストします。tools.exec.notifyOnExitEmptySuccess(デフォルト false): true の場合、出力を生成しなかった成功したバックグラウンド実行についても完了イベントをキューに入れます。
process ツール
アクション:
list: 実行中 + 完了済みセッションpoll: セッションの新しい出力をドレインします (終了ステータスも報告)log: 集約された出力を読み取り、入力復旧ヒントを表示します (offset+limitをサポート)write: stdin を送信します (data、任意のeof)send-keys: PTY ベースのセッションに明示的なキートークンまたはバイトを送信しますsubmit: PTY ベースのセッションに Enter / キャリッジリターンを送信しますpaste: リテラルテキストを送信します。任意で bracketed paste モードにラップできますkill: バックグラウンドセッションを終了しますclear: 完了済みセッションをメモリから削除しますremove: 実行中なら kill し、完了済みなら clear します
- バックグラウンド化されたセッションのみが一覧表示され、メモリ内に永続化されます。
- セッションはプロセス再起動時に失われます (ディスク永続化なし)。
- セッションログは、
process poll/logを実行してツール結果が記録された場合にのみチャット履歴に保存されます。 processはエージェントごとのスコープです。そのエージェントが開始したセッションのみを参照します。- ステータス、ログ、静かな成功確認、または自動完了ウェイクが利用できない場合の完了確認には、
poll/logを使用します。 - インタラクティブ CLI を復旧する前に
logを使用して、現在のトランスクリプト、stdin 状態、入力待ちヒントをまとめて確認できるようにします。 - 入力または介入が必要な場合は、
write/send-keys/submit/paste/killを使用します。 process listには、素早い確認のために派生したname(コマンド動詞 + ターゲット) が含まれます。process list、poll、logは、セッションにまだ書き込み可能な stdin があり、入力待ちしきい値より長くアイドル状態の場合にのみwaitingForInputを報告します。process logは行ベースのoffset/limitを使用します。offsetとlimitの両方が省略された場合、最後の 200 行を返し、ページングヒントを含めます。offsetが指定され、limitが省略された場合、offsetから末尾までを返します (200 行には制限されません)。- ポーリングはオンデマンドのステータス確認用であり、待機ループのスケジューリング用ではありません。作業を後で実行する必要がある場合は、代わりに Cron を使用してください。