tools.* 設定キーとカスタムプロバイダ / base-URL のセットアップ。エージェント、
チャネル、その他のトップレベル設定キーについては
Configuration reference を参照してください。
ツール
ツールプロファイル
tools.profile は、tools.allow / tools.deny の前に適用されるベース許可リストを設定します:
ローカルオンボーディングでは、未設定の場合、新しいローカル設定にデフォルトで tools.profile: "coding" が設定されます(既存の明示的なプロファイルは保持されます)。
| プロファイル | 内容 |
|---|---|
minimal | session_status のみ |
coding | group:fs, group:runtime, group:web, group:sessions, group:memory, cron, image, image_generate, video_generate |
messaging | group:messaging, sessions_list, sessions_history, sessions_send, session_status |
full | 制限なし(未設定と同じ) |
ツールグループ
| グループ | ツール |
|---|---|
group:runtime | exec, process, code_execution(bash は exec のエイリアスとして受け付けられます) |
group:fs | read, write, edit, apply_patch |
group:sessions | sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status |
group:memory | memory_search, memory_get |
group:web | web_search, x_search, web_fetch |
group:ui | browser, canvas |
group:automation | cron, gateway |
group:messaging | message |
group:nodes | nodes |
group:agents | agents_list |
group:media | image, image_generate, video_generate, tts |
group:openclaw | すべての組み込みツール(プロバイダ Plugin を除く) |
tools.allow / tools.deny
グローバルなツール許可/拒否ポリシーです(deny が優先)。大文字小文字を区別せず、* ワイルドカードをサポートします。Docker sandbox がオフでも適用されます。
tools.byProvider
特定のプロバイダまたはモデルに対して、さらにツールを制限します。順序: ベースプロファイル → プロバイダプロファイル → allow/deny。
tools.elevated
sandbox 外での昇格された exec アクセスを制御します:
- エージェント単位のオーバーライド(
agents.list[].tools.elevated)は、さらに制限することしかできません。 /elevated on|off|ask|fullはセッションごとに状態を保存します。インラインディレクティブは単一メッセージにのみ適用されます。- 昇格された
execは sandbox をバイパスし、設定された escape パス(デフォルトはgateway、exec ターゲットがnodeの場合はnode)を使います。
tools.exec
tools.loopDetection
ツールループ安全チェックは デフォルトで無効 です。有効にするには enabled: true を設定してください。
設定はグローバルに tools.loopDetection で定義でき、エージェント単位で agents.list[].tools.loopDetection によって上書きできます。
historySize: ループ分析のために保持されるツール呼び出し履歴の最大数。warningThreshold: 警告を出す、進捗なしの繰り返しパターンのしきい値。criticalThreshold: 深刻なループをブロックするための、より高い繰り返ししきい値。globalCircuitBreakerThreshold: あらゆる進捗なし実行に対する強制停止しきい値。detectors.genericRepeat: 同一ツール/同一引数の繰り返し呼び出しで警告します。detectors.knownPollNoProgress: 既知の poll ツール(process.poll、command_statusなど)での進捗なしを警告/ブロックします。detectors.pingPong: 進捗のない交互ペアパターンを警告/ブロックします。warningThreshold >= criticalThresholdまたはcriticalThreshold >= globalCircuitBreakerThresholdの場合、検証は失敗します。
tools.web
tools.media
受信メディア理解(画像/音声/動画)を設定します:
メディアモデルエントリフィールド
メディアモデルエントリフィールド
プロバイダエントリ(
type: "provider" または省略):provider: API プロバイダ ID(openai、anthropic、google/gemini、groqなど)model: モデル ID の上書きprofile/preferredProfile:auth-profiles.jsonのプロファイル選択
type: "cli"):command: 実行する実行ファイルargs: テンプレート化された引数({{MediaPath}}、{{Prompt}}、{{MaxChars}}などをサポート)
capabilities: 任意のリスト(image、audio、video)。デフォルト:openai/anthropic/minimax→ image、google→ image+audio+video、groq→ audio。prompt、maxChars、maxBytes、timeoutSeconds、language: エントリごとの上書き。- 失敗した場合は次のエントリにフォールバックします。
auth-profiles.json → env vars → models.providers.*.apiKey。非同期完了フィールド:asyncCompletion.directSend:trueの場合、完了した非同期music_generateおよびvideo_generateタスクは、まず直接チャネル配信を試みます。デフォルトはfalse(旧来の requester-session wake/model-delivery パス)。
tools.agentToAgent
tools.sessions
セッションツール(sessions_list、sessions_history、sessions_send)が
どのセッションを対象にできるかを制御します。
デフォルト: tree(現在のセッション + そこから生成されたセッション、たとえば subagent)。
self: 現在のセッションキーのみ。tree: 現在のセッション + 現在のセッションから生成されたセッション(subagent)。agent: 現在のエージェント ID に属する任意のセッション(同じエージェント ID の下で送信者ごとのセッションを運用している場合、他ユーザーも含まれることがあります)。all: 任意のセッション。エージェント間ターゲティングには依然としてtools.agentToAgentが必要です。- Sandbox clamp: 現在のセッションが sandbox 化されていて、
agents.defaults.sandbox.sessionToolsVisibility="spawned"の場合、tools.sessions.visibility="all"であっても visibility はtreeに強制されます。
tools.sessions_spawn
sessions_spawn のインライン添付サポートを制御します。
- 添付は
runtime: "subagent"でのみサポートされます。ACP ランタイムでは拒否されます。 - ファイルは子 workspace の
.openclaw/attachments/<uuid>/に.manifest.jsonとともに実体化されます。 - 添付内容はトランスクリプト永続化から自動的に秘匿化されます。
- Base64 入力は、厳格な alphabet/padding チェックとデコード前サイズガードで検証されます。
- ファイル権限はディレクトリが
0700、ファイルが0600です。 - クリーンアップは
cleanupポリシーに従います:deleteは常に添付を削除し、keepはretainOnSessionKeep: trueの場合のみ保持します。
tools.experimental
実験的な組み込みツールフラグです。strict-agentic GPT-5 の自動有効化ルールが適用される場合を除き、デフォルトはオフです。
planTool: 非自明な複数ステップ作業の追跡用に、構造化されたupdate_planツールを有効にします。- デフォルト:
agents.defaults.embeddedPi.executionContract(またはエージェント単位の上書き)が OpenAI または OpenAI Codex の GPT-5 系実行に対して"strict-agentic"に設定されている場合を除きfalse。この範囲外でも強制的に有効にするにはtrue、strict-agentic GPT-5 実行でも無効のままにするにはfalseを設定してください。 - 有効時には、システムプロンプトにも使用ガイダンスが追加されるため、モデルはこれを実質的な作業に対してのみ使い、
in_progressのステップは常に 1 つまでに保ちます。
agents.defaults.subagents
model: 生成される sub-agent のデフォルトモデル。省略した場合、sub-agent は呼び出し元のモデルを継承します。allowAgents: リクエスターエージェントが自身のsubagents.allowAgentsを設定していない場合の、sessions_spawn向けターゲットエージェント ID のデフォルト許可リスト(["*"]= 任意。デフォルト: 同じエージェントのみ)。runTimeoutSeconds: ツール呼び出しでrunTimeoutSecondsが省略された場合の、sessions_spawnのデフォルトタイムアウト(秒)。0はタイムアウトなしを意味します。- subagent ごとのツールポリシー:
tools.subagents.tools.allow/tools.subagents.tools.deny。
カスタムプロバイダと base URL
OpenClaw は組み込みのモデルカタログを使います。カスタムプロバイダは設定内のmodels.providers または ~/.openclaw/agents/<agentId>/agent/models.json で追加します。
- カスタム認証が必要な場合は
authHeader: true+headersを使ってください。 - エージェント設定ルートを上書きするには
OPENCLAW_AGENT_DIR(または旧来の環境変数エイリアスPI_CODING_AGENT_DIR)を使います。 - 一致するプロバイダ ID に対するマージ優先順位:
- 空でないエージェント
models.jsonのbaseUrl値が優先されます。 - 空でないエージェント
apiKey値は、そのプロバイダが現在の config/auth-profile コンテキストで SecretRef 管理されていない場合にのみ優先されます。 - SecretRef 管理されたプロバイダ
apiKey値は、解決済みシークレットを永続化する代わりに、ソースマーカー(env ref の場合はENV_VAR_NAME、file/exec ref の場合はsecretref-managed)から再取得されます。 - SecretRef 管理されたプロバイダ header 値は、ソースマーカー(env ref の場合は
secretref-env:ENV_VAR_NAME、file/exec ref の場合はsecretref-managed)から再取得されます。 - 空または欠落したエージェント
apiKey/baseUrlは、設定のmodels.providersにフォールバックします。 - 一致するモデルの
contextWindow/maxTokensは、明示的な設定値と暗黙のカタログ値のうち高い方を使います。 - 一致するモデルの
contextTokensは、存在する場合は明示的なランタイム上限を保持します。ネイティブなモデルメタデータを変えずに有効コンテキストを制限したい場合に使ってください。 - 設定で
models.jsonを完全に書き換えたい場合はmodels.mode: "replace"を使ってください。 - マーカー永続化はソース主導です。マーカーは解決済みランタイムシークレット値からではなく、アクティブなソース設定スナップショット(解決前)から書き込まれます。
- 空でないエージェント
プロバイダフィールドの詳細
models.mode: プロバイダカタログの動作(mergeまたはreplace)。models.providers: プロバイダ ID をキーとするカスタムプロバイダマップ。- 安全な編集: 追加更新には
openclaw config set models.providers.<id> '<json>' --strict-json --mergeまたはopenclaw config set models.providers.<id>.models '<json-array>' --strict-json --mergeを使ってください。config setは--replaceを渡さない限り破壊的置換を拒否します。
- 安全な編集: 追加更新には
models.providers.*.api: リクエストアダプタ(openai-completions、openai-responses、anthropic-messages、google-generative-aiなど)。models.providers.*.apiKey: プロバイダ認証情報(SecretRef / env 置換を推奨)。models.providers.*.auth: 認証戦略(api-key、token、oauth、aws-sdk)。models.providers.*.injectNumCtxForOpenAICompat: Ollama +openai-completions用に、リクエストへoptions.num_ctxを注入します(デフォルト:true)。models.providers.*.authHeader: 必要な場合、認証情報をAuthorizationヘッダーで送るよう強制します。models.providers.*.baseUrl: 上流 API の base URL。models.providers.*.headers: プロキシ / テナントルーティング用の追加静的ヘッダー。models.providers.*.request: モデルプロバイダ HTTP リクエスト用のトランスポート上書き。request.headers: 追加ヘッダー(プロバイダデフォルトとマージ)。値には SecretRef を使えます。request.auth: 認証戦略の上書き。モード:"provider-default"(プロバイダ組み込み認証を使う)、"authorization-bearer"(tokenと併用)、"header"(headerName、value、任意のprefixと併用)。request.proxy: HTTP プロキシの上書き。モード:"env-proxy"(HTTP_PROXY/HTTPS_PROXYenv vars を使う)、"explicit-proxy"(urlと併用)。どちらのモードでも任意のtlsサブオブジェクトを受け付けます。request.tls: 直接接続用 TLS 上書き。フィールド:ca、cert、key、passphrase(すべて SecretRef を受け付ける)、serverName、insecureSkipVerify。request.allowPrivateNetwork:trueの場合、DNS が private、CGNAT、または類似レンジに解決されるbaseUrlへの HTTPS を、プロバイダ HTTP fetch ガード経由で許可します(信頼済みセルフホスト OpenAI 互換エンドポイント向けのオペレーター明示許可)。WebSocket では同じrequestをヘッダー/TLS に使いますが、この fetch SSRF ガードは適用されません。デフォルトはfalse。
models.providers.*.models: 明示的なプロバイダモデルカタログエントリ。models.providers.*.models.*.contextWindow: ネイティブモデルのコンテキストウィンドウメタデータ。models.providers.*.models.*.contextTokens: 任意のランタイムコンテキスト上限。モデルのネイティブcontextWindowより小さい有効コンテキスト予算を使いたい場合に使ってください。models.providers.*.models.*.compat.supportsDeveloperRole: 任意の互換性ヒント。api: "openai-completions"で、空でない非ネイティブbaseUrl(host がapi.openai.comではない)の場合、OpenClaw は実行時にこれをfalseに強制します。空または省略したbaseUrlでは、OpenAI のデフォルト動作が維持されます。models.providers.*.models.*.compat.requiresStringContent: 文字列のみを受け付ける OpenAI 互換チャットエンドポイント向けの任意の互換性ヒント。trueの場合、OpenClaw はリクエスト送信前に、純テキストのmessages[].content配列を平文文字列にフラット化します。plugins.entries.amazon-bedrock.config.discovery: Bedrock 自動検出設定のルート。plugins.entries.amazon-bedrock.config.discovery.enabled: 暗黙検出をオン/オフします。plugins.entries.amazon-bedrock.config.discovery.region: 検出用 AWS リージョン。plugins.entries.amazon-bedrock.config.discovery.providerFilter: 対象限定検出用の任意の provider-id フィルタ。plugins.entries.amazon-bedrock.config.discovery.refreshInterval: 検出更新のポーリング間隔。plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow: 検出モデル用のフォールバックコンテキストウィンドウ。plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens: 検出モデル用のフォールバック最大出力トークン数。
プロバイダ例
Cerebras(GLM 4.6 / 4.7)
Cerebras(GLM 4.6 / 4.7)
cerebras/zai-glm-4.7 を、Z.AI 直結には zai/glm-4.7 を使ってください。OpenCode
OpenCode
OPENCODE_API_KEY(または OPENCODE_ZEN_API_KEY)を設定してください。Zen カタログには opencode/... 参照、Go カタログには opencode-go/... 参照を使います。ショートカット: openclaw onboard --auth-choice opencode-zen または openclaw onboard --auth-choice opencode-go。Z.AI(GLM-4.7)
Z.AI(GLM-4.7)
ZAI_API_KEY を設定してください。z.ai/* と z-ai/* は受け付けられるエイリアスです。ショートカット: openclaw onboard --auth-choice zai-api-key。- 一般エンドポイント:
https://api.z.ai/api/paas/v4 - コーディングエンドポイント(デフォルト):
https://api.z.ai/api/coding/paas/v4 - 一般エンドポイントを使う場合は、base URL 上書きを持つカスタムプロバイダを定義してください。
Moonshot AI(Kimi)
Moonshot AI(Kimi)
baseUrl: "https://api.moonshot.cn/v1" または openclaw onboard --auth-choice moonshot-api-key-cn を使ってください。ネイティブ Moonshot エンドポイントは、共有の
openai-completions トランスポート上でストリーミング使用量互換性を通知し、OpenClaw は組み込みプロバイダ ID のみではなく、エンドポイント機能に基づいてそれを判定します。Kimi Coding
Kimi Coding
openclaw onboard --auth-choice kimi-code-api-key。Synthetic(Anthropic 互換)
Synthetic(Anthropic 互換)
/v1 を含めないでください(Anthropic クライアントが追加します)。ショートカット: openclaw onboard --auth-choice synthetic-api-key。MiniMax M2.7(直結)
MiniMax M2.7(直結)
MINIMAX_API_KEY を設定してください。ショートカット:
openclaw onboard --auth-choice minimax-global-api または
openclaw onboard --auth-choice minimax-cn-api。
モデルカタログのデフォルトは M2.7 のみです。
Anthropic 互換ストリーミングパスでは、OpenClaw は thinking を明示的に
設定していない限り、デフォルトで MiniMax thinking を無効にします。/fast on または
params.fastMode: true は MiniMax-M2.7 を
MiniMax-M2.7-highspeed に書き換えます。ローカルモデル(LM Studio)
ローカルモデル(LM Studio)
Local Models を参照してください。要点: 十分なハードウェア上で
LM Studio Responses API 経由の大規模ローカルモデルを実行し、フォールバック用に
ホスト型モデルをマージしたままにしてください。