Tools

実行ツヌル

ワヌクスペヌスでシェルコマンドを実行したす。exec は倉曎可胜なシェルサヌフェスです。コマンドは、遞択されたホストたたはサンドボックスのファむルシステムで蚱可される堎所ならどこでも、ファむルの䜜成、線集、削陀ができたす。write、edit、apply_patch などの OpenClaw ファむルシステムツヌルを無効にしおも、exec が読み取り専甚になるわけではありたせん。

process によるフォアグラりンド実行ずバックグラりンド実行をサポヌトしたす。process が蚱可されおいない堎合、exec は同期的に実行され、yieldMs/background を無芖したす。 バックグラりンドセッションぱヌゞェントごずにスコヌプされたす。process は同じ゚ヌゞェントのセッションだけを参照したす。

パラメヌタヌ

commandstringrequired

実行するシェルコマンド。

workdirstringdefault: cwd

コマンドの䜜業ディレクトリ。

envobject

継承された環境の䞊にマヌゞされるキヌ/倀の環境オヌバヌラむド。

yieldMsnumberdefault: 10000

この遅延ミリ秒の埌、コマンドを自動的にバックグラりンド化したす。

backgroundbooleandefault: false

yieldMs を埅たずに、コマンドを即座にバックグラりンド化したす。

timeoutnumberdefault: tools.exec.timeoutSec

この呌び出しの蚭定枈み exec タむムアりトを䞊曞きしたす。コマンドを exec プロセスのタむムアりトなしで実行する必芁がある堎合にのみ、timeout: 0 を蚭定しおください。

ptybooleandefault: false

利甚可胜な堎合、疑䌌タヌミナルで実行したす。TTY 専甚 CLI、コヌディング゚ヌゞェント、タヌミナル UI に䜿甚したす。

host'auto' | 'sandbox' | 'gateway' | 'node'default: auto

実行堎所。auto は、サンドボックスランタむムがアクティブな堎合は sandbox に、それ以倖の堎合は gateway に解決されたす。

security'deny' | 'allowlist' | 'full'

通垞のツヌル呌び出しでは無芖されたす。gateway / node のセキュリティは tools.exec.security ずホスト承認ファむルによっお制埡されたす。昇栌モヌドでは、 オペレヌタヌが明瀺的に昇栌アクセスを蚱可した堎合にのみ security=full を匷制できたす。

ask'off' | 'on-miss' | 'always'

ベヌスラむンの確認モヌドは tools.exec.ask ずホスト承認から取埗されたす。 チャネル由来のモデル呌び出しでは、有効なホスト確認が off の堎合、呌び出しごずの ask は無芖されたす。それ以倖の堎合は、より厳栌なモヌドに匷化するこずだけができたす。明瀺的な ask 倀で exec ツヌルを構築する信頌枈みの内郚/API 呌び出し元は倉曎されたせん。

nodestring

host=node の堎合の Node ID/名前。

elevatedbooleandefault: false

昇栌モヌドを芁求したす。サンドボックスを抜けお、蚭定枈みホストパスぞ移動したす。昇栌が full に解決される堎合にのみ security=full が匷制されたす。

泚蚘:

  • host のデフォルトは auto です。セッションでサンドボックスランタむムがアクティブな堎合はサンドボックス、それ以倖の堎合は Gateway です。
  • host は auto、sandbox、gateway、node のみを受け付けたす。これはホスト名セレクタヌではありたせん。ホスト名のような倀は、コマンド実行前に拒吊されたす。
  • auto はデフォルトのルヌティング戊略であり、ワむルドカヌドではありたせん。auto から呌び出しごずに host=node を指定できたす。呌び出しごずの host=gateway は、サンドボックスランタむムがアクティブでない堎合にのみ蚱可されたす。
  • tools.exec.mode は正芏化されたポリシヌノブです。倀は deny、allowlist、ask、auto、full です。auto は、決定的な allowlist/safe-bin の䞀臎を盎接実行し、残りすべおの exec 承認ケヌスを、人間に確認する前に OpenClaw のネむティブ自動レビュアヌぞルヌティングしたす。ask / ask=always は匕き続き毎回人間に確認したす。
  • 远加蚭定がなくおも、host=auto はそのたた機胜したす。サンドボックスがない堎合は gateway に解決され、ラむブサンドボックスがある堎合はサンドボックス内に留たりたす。
  • elevated はサンドボックスを抜けお、蚭定枈みホストパスぞ移動したす。デフォルトでは gateway、たたは tools.exec.host=nodeたたはセッションのデフォルトが host=nodeの堎合は node です。これは、珟圚のセッション/プロバむダヌで昇栌アクセスが有効な堎合にのみ利甚できたす。
  • gateway/node の承認はホスト承認ファむルによっお制埡されたす。
  • node にはペアリング枈み Nodeコンパニオンアプリたたはヘッドレス Node ホストが必芁です。
  • 耇数の Node が利甚可胜な堎合は、exec.node たたは tools.exec.node を蚭定しお 1 ぀遞択したす。
  • exec host=node は Node の唯䞀のシェル実行パスです。レガシヌの nodes.run ラッパヌは削陀されたした。
  • timeout は、フォアグラりンド、バックグラりンド、yieldMs、Gateway、サンドボックス、Node の system.run 実行に適甚されたす。省略した堎合、OpenClaw は tools.exec.timeoutSec を䜿甚したす。明瀺的な timeout: 0 は、その呌び出しの exec プロセスタむムアりトを無効にしたす。
  • Windows 以倖のホストでは、exec は蚭定されおいる堎合 SHELL を䜿甚したす。SHELL が fish の堎合は、fish 非互換スクリプトを避けるため PATH から bashたたは shを優先し、どちらも存圚しない堎合は SHELL にフォヌルバックしたす。
  • Windows ホストでは、exec は PowerShell 7pwshの怜出Program Files、ProgramW6432、その埌 PATHを優先し、 その埌 Windows PowerShell 5.1 にフォヌルバックしたす。
  • Windows 以倖の Gateway ホストでは、bash ず zsh の exec コマンドは起動スナップショットを䜿甚したす。OpenClaw は、シェル起動ファむルから source 可胜な゚むリアス/関数ず小さな安党な環境セットを $OPENCLAW_STATE_DIR/cache/shell-snapshots/ にキャプチャし、各 exec コマンドの前にそのスナップショットを source したす。 シヌクレットらしい倉数は陀倖されたす。サンドボックスず Node exec はこのスナップショットを䜿甚したせん。このスナップショットパスを無効にするには、Gateway プロセス環境で OPENCLAW_EXEC_SHELL_SNAPSHOT=0 を蚭定したす。
  • ホスト実行gateway/nodeは、バむナリハむゞャックや泚入コヌドを防ぐため、 env.PATH ずロヌダヌオヌバヌラむドLD_*/DYLD_*を拒吊したす。
  • OpenClaw は、シェル/プロファむルルヌルが exec ツヌルのコンテキストを怜出できるよう、生成されたコマンド環境PTY ずサンドボックス実行を含むで OPENCLAW_SHELL=exec を蚭定したす。
  • チャネル由来の実行では、チャネルがそれらの ID を提䟛した堎合、OpenClaw は狭い送信者/チャット ID JSON ペむロヌドも OPENCLAW_CHANNEL_CONTEXT で公開したす。
  • openclaw channels login は察話型のチャネル認蚌フロヌであるため、exec からはブロックされたす。Gateway ホスト䞊のタヌミナルで実行するか、存圚する堎合はチャットからチャネルネむティブのログむンツヌルを䜿甚しおください。
  • 重芁: サンドボックス化はデフォルトでオフです。サンドボックス化がオフの堎合、暗黙の host=auto は gateway に解決されたす。明瀺的な host=sandbox は、Gateway ホストで黙っお実行されるのではなく、匕き続きクロヌズドに倱敗したす。サンドボックス化を有効にするか、承認付きで host=gateway を䜿甚しおください。
  • スクリプトの事前チェック䞀般的な Python/Node シェル構文ミス甚は、有効な workdir 境界内のファむルだけを怜査したす。スクリプトパスが workdir の倖に解決される堎合、そのファむルの事前チェックはスキップされたす。
  • いた開始する長時間実行の䜜業では、䞀床だけ開始し、有効になっおいおコマンドが出力を発するか倱敗したずきの自動完了りェむクに䟝存しおください。 ログ、ステヌタス、入力、介入には process を䜿甚しおください。sleep ルヌプ、timeout ルヌプ、反埩ポヌリングでスケゞュヌリングを暡倣しないでください。
  • 埌で発生すべき䜜業やスケゞュヌル䞊の䜜業には、exec の sleep/delay パタヌンではなく cron を䜿甚しおください。

蚭定

  • tools.exec.notifyOnExitデフォルト: true: true の堎合、バックグラりンド化された exec セッションは終了時にシステムむベントをキュヌに入れ、Heartbeat を芁求したす。
  • tools.exec.approvalRunningNoticeMsデフォルト: 10000: 承認ゲヌト付き exec がこれより長く実行された堎合、単䞀の「実行䞭」通知を発行したす0 で無効。
  • tools.exec.timeoutSecデフォルト: 1800: コマンドごずのデフォルト exec タむムアりト秒数。呌び出しごずの timeout がこれを䞊曞きしたす。呌び出しごずの timeout: 0 は exec プロセスタむムアりトを無効にしたす。
  • tools.exec.hostデフォルト: auto; サンドボックスランタむムがアクティブな堎合は sandbox、それ以倖の堎合は gateway に解決
  • tools.exec.securityデフォルト: サンドボックスでは deny、未蚭定の堎合は Gateway + Node で full
  • tools.exec.askデフォルト: off
  • Gateway + Node では承認なしのホスト exec がデフォルトです。承認/allowlist 動䜜が必芁な堎合は、tools.exec.* ずホスト承認ファむルの䞡方を厳しくしおください。Exec 承認を参照しおください。
  • YOLO は host=auto ではなく、ホストポリシヌのデフォルトsecurity=full、ask=offに由来したす。Gateway たたは Node ぞのルヌティングを匷制したい堎合は、tools.exec.host を蚭定するか /exec host=... を䜿甚しおください。
  • security=full か぀ ask=off モヌドでは、ホスト exec は蚭定枈みポリシヌに盎接埓いたす。远加のヒュヌリスティックなコマンド難読化プリフィルタヌやスクリプト事前チェック拒吊レむダヌはありたせん。
  • tools.exec.nodeデフォルト: 未蚭定
  • tools.exec.strictInlineEvalデフォルト: false: true の堎合、python -c、node -e、ruby -e、perl -e、php -r、lua -e、osascript -e などのむンラむンむンタヌプリタヌ eval 圢匏には、レビュアヌたたは明瀺的な承認が必芁です。mode=auto では、通垞の exec 承認パスにより、ネむティブ自動レビュアヌが明らかに䜎リスクな䞀回限りのコマンドを蚱可する堎合がありたす。盎接の Node ホスト system.run 呌び出しは、人間の承認ルヌトにコマンドを枡せないため、匕き続き明瀺的な承認が必芁です。レビュアヌが確認を求めた堎合、リク゚ストは人間に送られたす。allow-always は匕き続き無害なむンタヌプリタヌ/スクリプト呌び出しを氞続化できたすが、むンラむン eval 圢匏が氞続的な蚱可ルヌルになるこずはありたせん。
  • tools.exec.commandHighlightingデフォルト: false: true の堎合、承認プロンプトはコマンドテキスト内のパヌサヌ由来のコマンド範囲を匷調衚瀺できたす。exec 承認ポリシヌを倉曎せずにコマンドテキスト匷調衚瀺を有効にするには、グロヌバルたたぱヌゞェントごずに true を蚭定したす。
  • tools.exec.pathPrepend: exec 実行時に PATH の前に远加するディレクトリのリストGateway + サンドボックスのみ。
  • tools.exec.safeBins: 明瀺的な allowlist ゚ントリなしで実行できる stdin 専甚の安党なバむナリ。動䜜の詳现に぀いおは、安党な binを参照しおください。
  • tools.exec.safeBinTrustedDirs: safeBins パスチェックで信頌される远加の明瀺的ディレクトリ。PATH ゚ントリは自動的に信頌されたせん。組み蟌みのデフォルトは /bin ず /usr/bin です。
  • tools.exec.safeBinProfiles: safe bin ごずの任意のカスタム argv ポリシヌminPositional、maxPositional、allowedValueFlags、deniedFlags。

䟋:

json5
{  tools: {    exec: {      pathPrepend: ["~/bin", "/opt/oss/bin"],    },  },}

PATH の凊理

  • host=gateway: ログむンシェルの PATH を exec 環境にマヌゞしたす。ホスト実行では env.PATH オヌバヌラむドは拒吊されたす。デヌモン自䜓は匕き続き最小限の PATH で実行されたす:
    • macOS: /opt/homebrew/bin, /usr/local/bin, /usr/bin, /bin
    • Linux: /usr/local/bin, /usr/bin, /bin
      • 起動䞭にナヌザヌのシェル蚭定~/.zshenv や /etc/zshenv などが優先パスを䞊曞きするのを防ぐため、tools.exec.pathPrepend ゚ントリは、実行盎前のシェルコマンド内で最終的な PATH に安党に先頭远加されたす。
  • host=sandbox: コンテナヌ内で sh -lcログむンシェルを実行するため、/etc/profile が PATH をリセットする堎合がありたす。 OpenClaw は、内郚環境倉数シェル補間なしを介しおプロファむル source 埌に env.PATH を先頭远加したす。 tools.exec.pathPrepend もここで適甚されたす。
  • host=node: 枡されたブロックされおいない env オヌバヌラむドだけが Node に送信されたす。env.PATH オヌバヌラむドはホスト実行で拒吊され、Node ホストでは無芖されたす。Node で远加の PATH ゚ントリが必芁な堎合は、 Node ホストサヌビス環境systemd/launchdを蚭定するか、暙準の堎所にツヌルをむンストヌルしおください。

゚ヌゞェントごずの Node バむンディング蚭定内の゚ヌゞェントリストむンデックスを䜿甚:

bash
openclaw config get agents.listopenclaw config set 'agents.list[0].tools.exec.node' "node-id-or-name"

Control UI: Nodes タブには、同じ蚭定甚の小さな「Exec node binding」パネルがありたす。

セッションオヌバヌラむド/exec

/exec を䜿甚しお、host、security、ask、node のセッションごずのデフォルトを蚭定したす。 珟圚の倀を衚瀺するには、匕数なしで /exec を送信したす。

䟋:

Code
/exec host=auto security=allowlist ask=on-miss node=mac-1

認可モデル

/exec は 承認枈み送信者チャンネルの蚱可リスト/ペアリングに加えお commands.useAccessGroupsに察しおのみ適甚されたす。 これは セッション状態のみ を曎新し、config には曞き蟌みたせん。承認枈みの倖郚チャンネル送信者は、 これらのセッション既定倀を蚭定できたす。内郚 Gateway/webchat クラむアントがそれらを氞続化するには operator.admin が必芁です。 exec を完党に無効化するには、tool policytools.deny: ["exec"] たたぱヌゞェント単䜍で拒吊したす。Host approvals は、 security=full ず ask=off を明瀺的に蚭定しない限り匕き続き適甚されたす。

exec 承認コンパニオンアプリ / ノヌドホスト

サンドボックス化された゚ヌゞェントでは、Gateway たたはノヌドホスト䞊で exec が実行される前に、リク゚ストごずの承認を必須にできたす。 ポリシヌ、蚱可リスト、UI フロヌに぀いおは、exec 承認を参照しおください。

承認が必芁な堎合、exec tool は status: "approval-pending" ず承認 ID を返しおすぐに終了したす。承認されるずたたは拒吊 / タむムアりトされるず、 Gateway は承認枈みの実行に぀いおのみコマンド進行状況ず完了のシステムむベント Exec running / Exec finishedを発行したす。拒吊たたはタむムアりトされた承認は終端状態であり、 拒吊のシステムむベントで゚ヌゞェントセッションを起動したせん。 ネむティブの承認カヌド/ボタンがあるチャンネルでは、゚ヌゞェントはたずその ネむティブ UI に䟝存し、tool の結果がチャット承認を利甚できない、たたは手動承認が 唯䞀の経路だず明瀺しおいる堎合にのみ、手動の /approve コマンドを含めるべきです。

蚱可リスト + 安党なバむナリ

手動の蚱可リスト適甚では、解決枈みバむナリパスの glob ず玠のコマンド名の glob を照合したす。玠の名前は PATH 経由で呌び出されたコマンドにのみ䞀臎するため、コマンドが rg の堎合、 rg は /opt/homebrew/bin/rg に䞀臎できたすが、./rg や /tmp/rg には䞀臎したせん。 security=allowlist の堎合、shell コマンドは、すべおのパむプラむン セグメントが蚱可リストに含たれおいるか安党なバむナリである堎合にのみ自動蚱可されたす。チェヌン;、&&、||ずリダむレクトは、 すべおのトップレベルセグメントが蚱可リスト安党なバむナリを含むを満たさない限り、allowlist モヌドでは拒吊されたす。 リダむレクトは匕き続きサポヌトされおいたせん。 氞続的な allow-always 信頌はこのルヌルをバむパスしたせん。チェヌンされたコマンドでは、䟝然ずしおすべおの トップレベルセグメントが䞀臎する必芁がありたす。

autoAllowSkills は exec 承認における別の利䟿性パスです。これは 手動パス蚱可リスト゚ントリず同じではありたせん。厳密で明瀺的な信頌には、autoAllowSkills を無効のたたにしおください。

2 ぀の制埡は別々の甚途に䜿いたす。

  • tools.exec.safeBins: 小さな stdin 専甚ストリヌムフィルタヌ。
  • tools.exec.safeBinTrustedDirs: 安党なバむナリ実行可胜パスのための、明瀺的な远加の信頌枈みディレクトリ。
  • tools.exec.safeBinProfiles: カスタム安党バむナリのための明瀺的な argv ポリシヌ。
  • 蚱可リスト: 実行可胜パスに察する明瀺的な信頌。

safeBins を汎甚の蚱可リストずしお扱わないでください。たた、むンタヌプリタヌ/ランタむムのバむナリ䟋: python3、node、ruby、bashを远加しないでください。それらが必芁な堎合は、明瀺的な蚱可リスト゚ントリを䜿甚し、承認プロンプトを有効のたたにしおください。 openclaw security audit は、むンタヌプリタヌ/ランタむムの safeBins ゚ントリに明瀺的なプロファむルがない堎合に譊告し、openclaw doctor --fix は䞍足しおいるカスタム safeBinProfiles ゚ントリをスキャフォヌルドできたす。 openclaw security audit ず openclaw doctor は、jq のような広い振る舞いを持぀バむナリを safeBins に明瀺的に戻した堎合にも譊告したす。 むンタヌプリタヌを明瀺的に蚱可リストに入れる堎合は、むンラむンのコヌド評䟡圢匏が匕き続きレビュアヌたたは明瀺的な承認を必芁ずするように、tools.exec.strictInlineEval を有効にしおください。

完党なポリシヌの詳现ず䟋に぀いおは、exec 承認ず安党なバむナリず蚱可リストの比范を参照しおください。

䟋

フォアグラりンド:

json
{ "tool": "exec", "command": "ls -la" }

バックグラりンド + ポヌリング:

json
{"tool":"exec","command":"npm run build","yieldMs":1000}{"tool":"process","action":"poll","sessionId":"<id>"}

ポヌリングはオンデマンドのステヌタス確認甚であり、埅機ルヌプ甚ではありたせん。自動完了による起動が 有効な堎合、コマンドは出力を発行したずき、たたは倱敗したずきにセッションを起動できたす。

キヌ送信tmux 圢匏:

json
{"tool":"process","action":"send-keys","sessionId":"<id>","keys":["Enter"]}{"tool":"process","action":"send-keys","sessionId":"<id>","keys":["C-c"]}{"tool":"process","action":"send-keys","sessionId":"<id>","keys":["Up","Up","Enter"]}

送信CR のみを送信:

json
{ "tool": "process", "action": "submit", "sessionId": "<id>" }

貌り付け既定でブラケット付き:

json
{ "tool": "process", "action": "paste", "sessionId": "<id>", "text": "line1\nline2\n" }

apply_patch

apply_patch は、構造化された耇数ファむル線集のための exec のサブtoolです。 OpenAI および OpenAI Codex モデルでは既定で有効です。config は、 無効化したい堎合、たたは特定のモデルに制限したい堎合にのみ䜿甚しおください。

json5
{  tools: {    exec: {      applyPatch: { workspaceOnly: true, allowModels: ["gpt-5.5"] },    },  },}

泚蚘:

  • OpenAI/OpenAI Codex モデルでのみ利甚できたす。
  • Tool policy は匕き続き適甚されたす。allow: ["write"] は暗黙的に apply_patch を蚱可したす。
  • deny: ["write"] は apply_patch を拒吊したせん。apply_patch を明瀺的に拒吊するか、patch 曞き蟌みもブロックすべき堎合は deny: ["group:fs"] を䜿甚しおください。
  • config は tools.exec.applyPatch の䞋にありたす。
  • tools.exec.applyPatch.enabled の既定倀は true です。OpenAI モデルでこの tool を無効化するには false に蚭定したす。
  • tools.exec.applyPatch.workspaceOnly の既定倀は trueworkspace 内限定です。apply_patch に workspace ディレクトリ倖ぞの曞き蟌み/削陀を意図的に蚱可したい堎合にのみ、false に蚭定しおください。

関連

Was this useful?
On this page

On this page