概要
ツール
OpenClaw は、ブラウザ、キャンバス、ノード、cron 向けの ファーストクラスエージェントツール を公開しています。これらは古い openclaw-* スキルを置き換えるものです:ツールは型付けされており、シェル呼び出しは不要で、エージェントは直接これらに依存すべきです。
ツールの無効化
openclaw.json の tools.allow / tools.deny を使用して、ツールをグローバルに許可/拒否できます(deny が優先されます)。これにより、許可されていないツールがモデルプロバイダーに送信されるのを防ぎます。
{
tools: { deny: ["browser"] },
}
注意点:
- マッチングは大文字小文字を 区別しません。
*ワイルドカードがサポートされています("*"はすべてのツールを意味します)。tools.allowが未知またはロードされていないプラグインツール名のみを参照している場合、OpenClaw は警告をログに記録し、許可リストを無視するため、コアツールは利用可能なままです。
ツールプロファイル (基本許可リスト)
tools.profile は、tools.allow/tools.deny の前に適用される 基本ツール許可リスト を設定します。エージェントごとのオーバーライド: agents.list[].tools.profile。プロファイル:
minimal:session_statusのみcoding:group:fs,group:runtime,group:sessions,group:memory,imagemessaging:group:messaging,sessions_list,sessions_history,sessions_send,session_statusfull: 制限なし(未設定と同じ)
例 (デフォルトでメッセージングのみ、Slack + Discord ツールも許可):
{
tools: {
profile: "messaging",
allow: ["slack", "discord"],
},
}
例 (コーディングプロファイル、ただし exec/process をどこでも拒否):
{
tools: {
profile: "coding",
deny: ["group:runtime"],
},
}
例 (グローバルコーディングプロファイル、メッセージングのみのサポートエージェント):
{
tools: { profile: "coding" },
agents: {
list: [
{
id: "support",
tools: { profile: "messaging", allow: ["slack"] },
},
],
},
}
プロバイダー固有のツールポリシー
tools.byProvider を使用して、グローバルデフォルトを変更せずに、特定のプロバイダー(または単一の provider/model)に対してツールを さらに制限 できます。エージェントごとのオーバーライド: agents.list[].tools.byProvider。これは基本ツールプロファイルの 後、許可/拒否リストの 前 に適用されるため、ツールセットを狭めることしかできません。プロバイダーキーは provider(例: google-antigravity)または provider/model(例: openai/gpt-5.2)のいずれかを受け入れます。例 (グローバルコーディングプロファイルを維持、ただし Google Antigravity には最小限のツール):
{
tools: {
profile: "coding",
byProvider: {
"google-antigravity": { profile: "minimal" },
},
},
}
例 (不安定なエンドポイント向けのプロバイダー/モデル固有の許可リスト):
{
tools: {
allow: ["group:fs", "group:runtime", "sessions_list"],
byProvider: {
"openai/gpt-5.2": { allow: ["group:fs", "sessions_list"] },
},
},
}
例 (単一プロバ イダー向けのエージェント固有オーバーライド):
{
agents: {
list: [
{
id: "support",
tools: {
byProvider: {
"google-antigravity": { allow: ["message", "sessions_list"] },
},
},
},
],
},
}
ツールグループ (短縮形)
ツールポリシー(グローバル、エージェント、サンドボックス)は、複数のツールに展開される group:* エントリをサポートします。tools.allow / tools.deny でこれらを使用してください。利用可能なグループ:
group:runtime:exec,bash,processgroup:fs:read,write,edit,apply_patchgroup:sessions:sessions_list,sessions_history,sessions_send,sessions_spawn,session_statusgroup:memory:memory_search,memory_getgroup:web:web_search,web_fetchgroup:ui:browser,canvasgroup:automation:cron,gatewaygroup:messaging:messagegroup:nodes:nodesgroup:openclaw: すべての組み込み OpenClaw ツール(プロバイダープラグインを除く)
例 (ファイルツール + ブラウザのみを許可):
{
tools: {
allow: ["group:fs", "browser"],
},
}
プラグイン + ツール
プラグインは、コアセットを超えて 追加のツール(および CLI コマンド)を登録できます。インストールと設定については プラグイン を、ツール使用ガイダンスがプロンプトに注入される方法については スキル を参照してください。一部のプラグインは、ツールと一緒に独自のスキルを同梱しています(例: ボイスコールプラグイン)。オプションのプラグインツール:
- Lobster: 再開可能な承認を備えた型付きワークフローランタイム(ゲートウェイホストに Lobster CLI が必要)。
- LLM Task: 構造化ワークフロー出力のための JSON 専用 LLM ステップ(オプションのスキーマ検証付き)。
- Diffs: 読み取り専用の差分ビューアーと、前後テキストまたは unified パッチ用の PNG または PDF ファイルレンダラー。
ツールインベントリ
apply_patch
構造化パッチを1つ以上のファイルに適用します。複数ハンクの編集に使用します。実験的: tools.exec.applyPatch.enabled で有効化(OpenAI モデルのみ)。tools.exec.applyPatch.workspaceOnly はデフォルトで true(ワークスペース内のみ)。apply_patch にワークスペースディレクトリ外への書き込み/削除を意図的に行わせたい場合のみ、これを false に設定してください。
exec
ワークスペース内でシェルコマンドを実行します。コアパラメータ:
command(必須)yieldMs(タイムアウト後の自動バックグラウンド化、デフォルト 10000)background(即時バックグラウンド化)timeout(秒; 超過するとプロセスを強制終了、デフォルト 1800)elevated(bool; 昇格モードが有効/許可されている場合、ホスト上で実行; エージェントがサンドボックス化されている場合のみ動作が変化)host(sandbox | gateway | node)security(deny | allowlist | full)ask(off | on-miss | always)node(host=node用のノード ID/名前)- 本物の TTY が必要ですか?
pty: trueを設定してください。
注意点:
- バックグラウンド化されると、
sessionId付きでstatus: "running"を返します。 - バックグラウンドセッションのポーリング/ログ取得/書き込み/強制終了/クリアには
processを使用してください。 processが許可されていない場合、execは同期的に実行され、yieldMs/backgroundは無視されます。elevatedはtools.elevatedと任意のagents.list[].tools.elevatedオーバーライドによって制御され(両方が許可する必要があります)、host=gateway+security=fullのエイリアスです。elevatedはエージェントがサンドボックス化されている場合のみ動作が変化します(それ以外は無効)。host=nodeは、macOS コンパニオンアプリまたはヘッドレスノードホスト(openclaw node run)をターゲットにできます。- ゲートウェイ/ノードの承認と許可リスト: Exec 承認。
process
バックグラウンド exec セッションを管理します。コアアクション:
list,poll,log,write,kill,clear,remove
注意点:
pollは、完了時に新しい出力と終了ステータスを返します。logは行ベースのoffset/limitをサポートします(offsetを省略すると最後の N 行を取得)。processはエージェントごとにスコープされます;他のエージェントからのセッションは表示されません。
loop-detection (ツール呼び出しループガードレール)
OpenClaw は最近のツール呼び出し履歴を追跡し、反復的な進捗のないループを検出したときにブロックまたは警告します。tools.loopDetection.enabled: true で有効化(デフォルトは false)。
{
tools: {
loopDetection: {
enabled: true,
warningThreshold: 10,
criticalThreshold: 20,
globalCircuitBreakerThreshold: 30,
historySize: 30,
detectors: {
genericRepeat: true,
knownPollNoProgress: true,
pingPong: true,
},
},
},
}
genericRepeat: 同じツール + 同じパラメータの呼び出しパターンの繰り返し。knownPollNoProgress: 同一出力を持つポーリング類似ツールの繰り返し。pingPong: 交互のA/B/A/B進捗のないパターン。- エージェントごとのオーバーライド:
agents.list[].tools.loopDetection。
web_search
Perplexity、Brave、Gemini、Grok、または Kimi を使用してウェブを検索します。コアパラメータ:
query(必須)count(1–10; デフォルトはtools.web.search.maxResultsから)
注意点:
- 選択したプロバイダーの API キーが必要です(推奨:
openclaw configure --section web)。 tools.web.search.enabledで有効化。- 応答はキャッシュされます(デフォルト 15 分)。
- 設定については ウェブツール を参照。
web_fetch
URL から読み取り可能なコンテンツを取得して抽出します(HTML → マークダウン/テキスト)。コアパラメータ:
url(必須)extractMode(markdown|text)maxChars(長いページを切り詰め)
注意点:
tools.web.fetch.enabledで有効化。maxCharsはtools.web.fetch.maxCharsCapで制限されます(デフォルト 50000)。- 応答はキャッシュされます(デフォルト 15 分)。
- JS が多用されるサイトには、ブラウザツールを優先してください。
- 設定については ウェブツール を参照。
- オプションのアンチボットフォールバックについては Firecrawl を参照。
browser
専用の OpenClaw 管理ブラウザを制御します。コアアクション:
status,start,stop,tabs,open,focus,closesnapshot(aria/ai)screenshot(画像ブロック +MEDIA:を返す)act(UI アクション: click/type/press/hover/drag/select/fill/resize/wait/evaluate)navigate,console,pdf,upload,dialog
プロファイル管理:
profiles— ステータス付きのすべてのブラウザプロファイルを一覧表示create-profile— 自動割り当てポート(またはcdpUrl)で新しいプロファイルを作成delete-profile— ブラウザを停止、ユーザーデータを削除、設定から削除(ローカルのみ)reset-profile— プロファイルのポート上の孤立プロセスを強制終了(ローカルのみ)
共通パラメータ:
profile(オプション; デフォルトはbrowser.defaultProfile)target(sandbox|host|node)node(オプション; 特定のノード ID/名前を選択) 注意点:browser.enabled=trueが必要(デフォルトはtrue;無効化するにはfalseを設定)。- すべてのアクションは、マルチインスタンスサポートのためのオプションの
profileパラメータを受け入れます。 profileが省略された場合、browser.defaultProfileを使用します(デフォルトは "chrome")。- プロファイル名: 小文字英数字 + ハイフンのみ(最大 64 文字)。
- ポート範囲: 18800-18899(最大約100プロファイル)。
- リモートプロファイルはアタッチのみ(開始/停止/リセット不可)。
- ブラウザ対応ノードが接続されている場合、ツールは自動的にそこにルーティングする可能性があります(
targetを固定しない限り)。 snapshotは Playwright がインストールされている場合、デフォルトでaiを使用;アクセシビリティツリーにはariaを使用。snapshotはロールスナップショットオプション(interactive,compact,depth,selector)もサポートし、e12のような参照を返します。actにはsnapshotからのrefが必要(AI スナップショットからの数値12、またはロールスナップショットからのe12);稀な CSS セレクタの必要性にはevaluateを使用。- デフォルトでは
act→waitを避ける;例外的な場合(待機する信頼できる UI 状態がない)のみ使用。 uploadは、アーミング後に自動クリックするためにオプションでrefを渡せます。uploadはinputRef(aria ref)またはelement(CSS セレクタ)もサポートし、`` を直接設定します。
canvas
ノード Canvas を駆動します(表示、評価、スナップショット、A2UI)。コアアクション:
present,hide,navigate,evalsnapshot(画像ブロック +MEDIA:を返す)a2ui_push,a2ui_reset
注意点:
- 内部的にゲートウェイ
node.invokeを使用。 nodeが指定されていない場合、ツールはデフォルトを選択します(単一接続ノードまたはローカル mac ノード)。- A2UI は v0.8 のみ(
createSurfaceなし);CLI は v0.9 JSONL をラインエラーで拒否します。 - 簡単なテスト:
openclaw nodes canvas a2ui push --node --text "Hello from A2UI"