コア設定リファレンス: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.
~/.openclaw/openclaw.json。タスク指向の概要については、設定を参照してください。
OpenClaw の主要な設定サーフェスを扱い、サブシステムに独自の詳細リファレンスがある場合はリンクします。チャネルおよび plugin が所有するコマンドカタログと、深いメモリ/QMD の調整項目は、このページではなくそれぞれのページにあります。
コード上の正:
openclaw config schemaは、検証と Control UI に使われるライブ JSON Schema を出力します。利用可能な場合は、同梱/plugin/チャネルのメタデータもマージされますconfig.schema.lookupは、ドリルダウンツール向けに、パススコープのスキーマノードを 1 つ返しますpnpm config:docs:check/pnpm config:docs:genは、現在のスキーマサーフェスに対して設定ドキュメントのベースラインハッシュを検証します
gateway ツールアクション config.schema.lookup を使います。タスク指向のガイダンスには設定を、このページはより広いフィールドマップ、デフォルト、サブシステムリファレンスへのリンクに使います。
専用の詳細リファレンス:
agents.defaults.memorySearch.*、memory.qmd.*、memory.citations、およびplugins.entries.memory-core.config.dreaming配下の dreaming 設定については、メモリ設定リファレンス- 現在の組み込み + 同梱コマンドカタログについては、スラッシュコマンド
- チャネル固有のコマンドサーフェスについては、所有元のチャネル/plugin ページ
チャネル
チャネルごとの設定キーは専用ページに移動しました。Slack、Discord、Telegram、WhatsApp、Matrix、iMessage、およびその他の同梱チャネル(認証、アクセス制御、マルチアカウント、メンションゲーティング)を含むchannels.* については、設定 - チャネルを参照してください。
エージェントデフォルト、マルチエージェント、セッション、メッセージ
専用ページに移動しました。以下については、設定 - エージェントを参照してください。agents.defaults.*(ワークスペース、モデル、thinking、Heartbeat、メモリ、メディア、Skills、サンドボックス)multiAgent.*(マルチエージェントのルーティングとバインディング)session.*(セッションライフサイクル、Compaction、枝刈り)messages.*(メッセージ配信、TTS、Markdown レンダリング)talk.*(Talk モード)talk.consultThinkingLevel: Control UI Talk リアルタイム相談の背後で実行される OpenClaw エージェント全体に対する thinking レベルのオーバーライドtalk.consultFastMode: Control UI Talk リアルタイム相談に対する 1 回限りの高速モードオーバーライドtalk.speechLocale: iOS/macOS の Talk 音声認識向けの任意の BCP 47 ロケール IDtalk.silenceTimeoutMs: 未設定の場合、Talk はトランスクリプト送信前の一時停止時間としてプラットフォームデフォルトを保持します(macOS と Android では 700 ms、iOS では 900 ms)
ツールとカスタムプロバイダー
ツールポリシー、実験的トグル、プロバイダー backed ツール設定、カスタムプロバイダー / ベース URL 設定は専用ページに移動しました。設定 - ツールとカスタムプロバイダーを参照してください。モデル
プロバイダー定義、モデル許可リスト、カスタムプロバイダー設定は、設定 - ツールとカスタムプロバイダーにあります。models ルートは、グローバルなモデルカタログ動作も所有します。
models.mode: プロバイダーカタログの動作(mergeまたはreplace)。models.providers: プロバイダー ID をキーにしたカスタムプロバイダーマップ。models.providers.*.localService: ローカルモデルサーバー向けの任意のオンデマンドプロセスマネージャー。OpenClaw は設定されたヘルスエンドポイントをプローブし、必要に応じて絶対パスのcommandを開始し、準備完了を待ってからモデルリクエストを送信します。ローカルモデルサービスを参照してください。models.pricing.enabled: サイドカーとチャネルが Gateway 準備完了パスに到達した後に開始されるバックグラウンド pricing ブートストラップを制御します。falseの場合、Gateway は OpenRouter と LiteLLM の pricing カタログ取得をスキップします。設定済みのmodels.providers.*.models[].cost値は、ローカルコスト推定で引き続き機能します。
MCP
OpenClaw 管理の MCP サーバー定義はmcp.servers 配下にあり、組み込み Pi やその他のランタイムアダプターによって消費されます。openclaw mcp list、show、set、unset コマンドは、設定編集時に対象サーバーへ接続せずにこのブロックを管理します。
mcp.servers: 設定済み MCP ツールを公開するランタイム向けの、名前付き stdio またはリモート MCP サーバー定義。 リモートエントリはtransport: "streamable-http"またはtransport: "sse"を使います。type: "http"は CLI ネイティブのエイリアスで、openclaw mcp setとopenclaw doctor --fixにより正規のtransportフィールドへ正規化されます。mcp.sessionIdleTtlMs: セッションスコープの同梱 MCP ランタイムのアイドル TTL。 1 回限りの組み込み実行は、実行終了時のクリーンアップを要求します。この TTL は、長寿命セッションと将来の呼び出し元に対するバックストップです。mcp.*配下の変更は、キャッシュ済みのセッション MCP ランタイムを破棄することでホット適用されます。 次のツール探索/使用時に新しい設定から再作成されるため、削除されたmcp.serversエントリはアイドル TTL を待たずに即座に回収されます。
Skills
allowBundled: 同梱 Skills 専用の任意の許可リスト(管理対象/ワークスペース Skills には影響しません)。load.extraDirs: 追加の共有 Skill ルート(最も低い優先順位)。load.allowSymlinkTargets: Skill のシンボリックリンクが設定済みソースルートの外にある場合に、リンク解決先として許可される信頼済みの実ターゲットルート。install.preferBrew: true の場合、brewが利用可能なら他のインストーラー種別へフォールバックする前に Homebrew インストーラーを優先します。install.nodeManager:metadata.openclaw.install仕様向けの Node インストーラー設定(npm|pnpm|yarn|bun)。install.allowUploadedArchives: 信頼済みのoperator.adminGateway クライアントが、skills.upload.*経由でステージングされた非公開 zip アーカイブをインストールできるようにします(デフォルト: false)。これはアップロード済みアーカイブのパスのみを有効にします。通常の ClawHub インストールには不要です。entries.<skillKey>.enabled: falseは、同梱/インストール済みであっても Skill を無効化します。entries.<skillKey>.apiKey: プライマリ環境変数を宣言する Skills 向けの簡便設定(プレーンテキスト文字列または SecretRef オブジェクト)。
Plugins
~/.openclaw/extensions、<workspace>/.openclaw/extensions、およびplugins.load.pathsから読み込まれます。- 検出は、ネイティブ OpenClaw plugins に加え、互換性のある Codex バンドルと Claude バンドル(マニフェストなしの Claude デフォルトレイアウトバンドルを含む)を受け入れます。
- 設定変更には gateway の再起動が必要です。
allow: 任意の許可リスト(一覧にある plugins のみ読み込まれます)。denyが優先されます。bundledDiscovery: 新規設定ではデフォルトが"allowlist"であるため、空でないplugins.allowは、Web 検索ランタイムプロバイダーを含む同梱プロバイダー plugins もゲートします。Doctor は、移行済みのレガシー許可リスト設定に対して、既存の同梱プロバイダー動作をオプトインまで保持するために"compat"を書き込みます。plugins.entries.<id>.apiKey: plugin レベルの API キー簡便フィールド(plugin がサポートする場合)。plugins.entries.<id>.env: plugin スコープの環境変数マップ。plugins.entries.<id>.hooks.allowPromptInjection:falseの場合、core はbefore_prompt_buildをブロックし、レガシーbefore_agent_startからのプロンプト変更フィールドを無視します。一方で、レガシーmodelOverrideとproviderOverrideは保持します。ネイティブ plugin フックと、サポート対象のバンドル提供フックディレクトリに適用されます。plugins.entries.<id>.hooks.allowConversationAccess:trueの場合、信頼済みの非同梱 plugins は、llm_input、llm_output、before_model_resolve、before_agent_reply、before_agent_run、before_agent_finalize、agent_endなどの型付きフックから生の会話内容を読み取ることができます。plugins.entries.<id>.subagent.allowModelOverride: この plugin がバックグラウンドサブエージェント実行ごとのproviderとmodelオーバーライドを要求することを明示的に信頼します。plugins.entries.<id>.subagent.allowedModels: 信頼済みサブエージェントオーバーライド向けの、正規provider/modelターゲットの任意の許可リスト。任意のモデルを許可する意図がある場合のみ"*"を使います。plugins.entries.<id>.llm.allowModelOverride: この plugin がapi.runtime.llm.completeのモデルオーバーライドを要求することを明示的に信頼します。plugins.entries.<id>.llm.allowedModels: 信頼済み plugin LLM 補完オーバーライド向けの、正規provider/modelターゲットの任意の許可リスト。任意のモデルを許可する意図がある場合のみ"*"を使います。plugins.entries.<id>.llm.allowAgentIdOverride: この plugin がデフォルト以外のエージェント ID に対してapi.runtime.llm.completeを実行することを明示的に信頼します。plugins.entries.<id>.config: plugin 定義の設定オブジェクト(利用可能な場合はネイティブ OpenClaw plugin スキーマで検証されます)。- チャネル plugin のアカウント/ランタイム設定は
channels.<id>配下にあり、中央の OpenClaw オプションレジストリではなく、所有元 plugin のマニフェストchannelConfigsメタデータによって説明されるべきです。
Codex ハーネス plugin 設定
同梱codex plugin は、plugins.entries.codex.config 配下のネイティブ Codex アプリサーバーハーネス設定を所有します。完全な設定サーフェスについては Codex ハーネスリファレンスを、ランタイムモデルについては Codex ハーネスを参照してください。
codexPlugins は、ネイティブ Codex ハーネスを選択するセッションにのみ適用されます。
Pi、通常の OpenAI プロバイダー実行、ACP 会話バインディング、または Codex 以外のハーネスに対して Codex plugins を有効化するものではありません。
plugins.entries.codex.config.codexPlugins.enabled: Codex ハーネス向けのネイティブ Codex plugin/アプリ対応を有効にします。デフォルト:false。plugins.entries.codex.config.codexPlugins.allow_destructive_actions: 移行済み plugin アプリ elicitations のデフォルト破壊的アクションポリシー。 デフォルト:true。plugins.entries.codex.config.codexPlugins.plugins.<key>.enabled: グローバルなcodexPlugins.enabledも true の場合に、 移行済み plugin エントリを有効にします。 デフォルト: 明示的なエントリではtrue。plugins.entries.codex.config.codexPlugins.plugins.<key>.marketplaceName: 安定したマーケットプレイス ID。V1 は"openai-curated"のみをサポートします。plugins.entries.codex.config.codexPlugins.plugins.<key>.pluginName: 移行から得られる安定した Codex plugin ID。例:"google-calendar"。plugins.entries.codex.config.codexPlugins.plugins.<key>.allow_destructive_actions: plugin ごとの破壊的アクションのオーバーライド。省略した場合は、グローバルなallow_destructive_actions値が使用されます。
codexPlugins.enabled はグローバルな有効化ディレクティブです。移行によって書き込まれた明示的な plugin
エントリは、永続的なインストールおよび修復対象セットです。
plugins["*"] はサポートされず、install スイッチはありません。また、ローカルの
marketplacePath 値はホスト固有であるため、意図的に設定フィールドにはしていません。
app/list の準備状態チェックは 1 時間キャッシュされ、古くなると非同期で更新されます。Codex スレッドのアプリ設定は、ターンごとではなく Codex ハーネスのセッション確立時に計算されます。ネイティブ plugin 設定を変更した後は、/new、/reset、または Gateway の再起動を使用してください。
plugins.entries.firecrawl.config.webFetch: Firecrawl のウェブフェッチプロバイダー設定。apiKey: Firecrawl API キー(SecretRef を受け付けます)。plugins.entries.firecrawl.config.webSearch.apiKey、レガシーのtools.web.fetch.firecrawl.apiKey、またはFIRECRAWL_API_KEY環境変数にフォールバックします。baseUrl: Firecrawl API ベース URL(デフォルト:https://api.firecrawl.dev。セルフホストのオーバーライドはプライベート/内部エンドポイントを対象にする必要があります)。onlyMainContent: ページからメインコンテンツのみを抽出します(デフォルト:true)。maxAgeMs: 最大キャッシュ期間(ミリ秒)(デフォルト:172800000/ 2 日)。timeoutSeconds: スクレイプ要求のタイムアウト(秒)(デフォルト:60)。
plugins.entries.xai.config.xSearch: xAI X Search(Grok ウェブ検索)設定。enabled: X Search プロバイダーを有効にします。model: 検索に使用する Grok モデル(例:"grok-4-1-fast")。
plugins.entries.memory-core.config.dreaming: メモリ Dreaming 設定。フェーズとしきい値については Dreaming を参照してください。enabled: Dreaming のマスタースイッチ(デフォルトfalse)。frequency: 各 Dreaming 全体スイープの cron 間隔(デフォルトは"0 3 * * *")。model: 任意の Dream Diary サブエージェントモデルのオーバーライド。plugins.entries.memory-core.subagent.allowModelOverride: trueが必要です。対象を制限するにはallowedModelsと組み合わせます。モデルが利用できないエラーは、セッションのデフォルトモデルで 1 回再試行します。信頼または許可リストの失敗は暗黙にフォールバックしません。- フェーズポリシーとしきい値は実装の詳細です(ユーザー向けの設定キーではありません)。
- メモリ設定全体は メモリ設定リファレンス にあります:
agents.defaults.memorySearch.*memory.backendmemory.citationsmemory.qmd.*plugins.entries.memory-core.config.dreaming
- 有効化された Claude バンドル plugin は、
settings.jsonから埋め込み Pi デフォルトを提供することもできます。OpenClaw は、それらを生の OpenClaw 設定パッチとしてではなく、サニタイズ済みのエージェント設定として適用します。 plugins.slots.memory: アクティブなメモリ plugin ID を選択します。メモリ plugin を無効にするには"none"を選択します。plugins.slots.contextEngine: アクティブなコンテキストエンジン plugin ID を選択します。別のエンジンをインストールして選択しない限り、デフォルトは"legacy"です。
コミットメント
commitments は、推定されるフォローアップメモリを制御します。OpenClaw は会話ターンからチェックインを検出し、Heartbeat 実行を通じて配信できます。
commitments.enabled: 推定されるフォローアップコミットメントの非表示 LLM 抽出、保存、Heartbeat 配信を有効にします。デフォルト:false。commitments.maxPerDay: ローリング 1 日内でエージェントセッションごとに配信される、推定フォローアップコミットメントの最大数。デフォルト:3。
ブラウザー
evaluateEnabled: falseはact:evaluateとwait --fnを無効にします。tabCleanupは、アイドル時間後、またはセッションが上限を超えたときに、追跡対象のプライマリエージェントタブを回収します。idleMinutes: 0またはmaxTabsPerSession: 0を設定すると、それぞれのクリーンアップモードを無効にできます。ssrfPolicy.dangerouslyAllowPrivateNetworkは未設定の場合は無効なため、ブラウザーナビゲーションはデフォルトで厳格なままです。- プライベートネットワークのブラウザーナビゲーションを意図的に信頼する場合にのみ、
ssrfPolicy.dangerouslyAllowPrivateNetwork: trueを設定してください。 - 厳格モードでは、リモート CDP プロファイルエンドポイント(
profiles.*.cdpUrl)は、到達性/検出チェック中に同じプライベートネットワークブロックの対象になります。 ssrfPolicy.allowPrivateNetworkはレガシーエイリアスとして引き続きサポートされます。- 厳格モードでは、明示的な例外には
ssrfPolicy.hostnameAllowlistとssrfPolicy.allowedHostnamesを使用します。 - リモートプロファイルはアタッチ専用です(開始/停止/リセットは無効)。
profiles.*.cdpUrlはhttp://、https://、ws://、wss://を受け付けます。 OpenClaw に/json/versionを検出させたい場合は HTTP(S) を使用します。プロバイダーから直接 DevTools WebSocket URL が提供される場合は WS(S) を使用します。remoteCdpTimeoutMsとremoteCdpHandshakeTimeoutMsは、リモートおよびattachOnlyCDP の到達性とタブを開く要求に適用されます。管理対象の loopback プロファイルはローカル CDP デフォルトを維持します。- 外部管理の CDP サービスが loopback 経由で到達可能な場合は、そのプロファイルの
attachOnly: trueを設定します。それ以外の場合、OpenClaw は loopback ポートをローカル管理ブラウザープロファイルとして扱い、ローカルポート所有権エラーを報告することがあります。 existing-sessionプロファイルは CDP の代わりに Chrome MCP を使用し、選択されたホストまたは接続済みブラウザーノード経由でアタッチできます。existing-sessionプロファイルは、Brave や Edge など特定の Chromium ベースブラウザープロファイルを対象にするためにuserDataDirを設定できます。existing-sessionプロファイルは、現在の Chrome MCP ルート制限を維持します: CSS セレクター指定ではなくスナップショット/ref 駆動アクション、単一ファイルアップロードフック、ダイアログタイムアウトのオーバーライドなし、wait --load networkidleなし、そしてresponsebody、PDF エクスポート、ダウンロードインターセプト、バッチアクションなし。- ローカル管理の
openclawプロファイルはcdpPortとcdpUrlを自動割り当てします。cdpUrlはリモート CDP に対してのみ明示的に設定してください。 - ローカル管理プロファイルでは、そのプロファイルのグローバルな
browser.executablePathをオーバーライドするためにexecutablePathを設定できます。これを使用すると、あるプロファイルを Chrome で、別のプロファイルを Brave で実行できます。 - ローカル管理プロファイルは、プロセス開始後の Chrome CDP HTTP 検出に
browser.localLaunchTimeoutMsを、起動後の CDP WebSocket 準備状態にbrowser.localCdpReadyTimeoutMsを使用します。Chrome は正常に起動するものの準備状態チェックが起動と競合する遅いホストでは、これらを引き上げてください。どちらの値も120000ms までの正の整数である必要があります。無効な設定値は拒否されます。 - 自動検出順序: デフォルトブラウザー(Chromium ベースの場合)→ Chrome → Brave → Edge → Chromium → Chrome Canary。
browser.executablePathとbrowser.profiles.<name>.executablePathはどちらも、Chromium 起動前に OS のホームディレクトリとして~と~/...を受け付けます。existing-sessionプロファイルのプロファイル別userDataDirもチルダ展開されます。- 制御サービス: loopback のみ(ポートは
gateway.portから導出、デフォルト18791)。 extraArgsは、ローカル Chromium 起動に追加の起動フラグを追加します(例:--disable-gpu、ウィンドウサイズ指定、デバッグフラグ)。
UI
seamColor: ネイティブアプリ UI クロームのアクセントカラー(Talk Mode バブルの色合いなど)。assistant: Control UI ID オーバーライド。アクティブなエージェント ID にフォールバックします。
Gateway
Gateway field details
Gateway field details
mode:local(Gatewayを実行) またはremote(リモートGatewayに接続)。localでない限り、Gatewayは起動を拒否します。port: WS + HTTP用の単一多重化ポート。優先順位:--port>OPENCLAW_GATEWAY_PORT>gateway.port>18789。bind:auto、loopback(デフォルト)、lan(0.0.0.0)、tailnet(Tailscale IPのみ)、またはcustom。- レガシーbindエイリアス: ホストエイリアス (
0.0.0.0、127.0.0.1、localhost、::、::1) ではなく、gateway.bindではbindモード値 (auto、loopback、lan、tailnet、custom) を使用してください。 - Docker注記: デフォルトの
loopbackbindはコンテナ内の127.0.0.1で待ち受けます。Dockerブリッジネットワーク (-p 18789:18789) ではトラフィックがeth0に到達するため、gatewayに到達できません。すべてのインターフェイスで待ち受けるには、--network hostを使用するか、bind: "lan"(またはcustomBindHost: "0.0.0.0"を指定したbind: "custom") を設定してください。 - 認証: デフォルトで必須です。非loopback bindにはgateway認証が必要です。実際には、共有トークン/パスワード、または
gateway.auth.mode: "trusted-proxy"を使用するアイデンティティ認識リバースプロキシを意味します。オンボーディングウィザードはデフォルトでトークンを生成します。 gateway.auth.tokenとgateway.auth.passwordの両方が構成されている場合 (SecretRefを含む)、gateway.auth.modeを明示的にtokenまたはpasswordに設定してください。両方が構成され、modeが未設定の場合、起動およびサービスのインストール/修復フローは失敗します。gateway.auth.mode: "none": 明示的な認証なしモード。信頼済みの local loopback セットアップにのみ使用してください。これは意図的にオンボーディングプロンプトでは提示されません。gateway.auth.mode: "trusted-proxy": ブラウザ/ユーザー認証をアイデンティティ認識リバースプロキシに委任し、gateway.trustedProxiesからのアイデンティティヘッダーを信頼します (信頼済みプロキシ認証 を参照)。このモードはデフォルトで 非loopback のプロキシソースを想定します。同一ホストのloopbackリバースプロキシには、明示的なgateway.auth.trustedProxy.allowLoopback = trueが必要です。内部の同一ホスト呼び出し元は、ローカル直接フォールバックとしてgateway.auth.passwordを使用できます。gateway.auth.tokenはtrusted-proxyモードとは引き続き相互排他的です。gateway.auth.allowTailscale:trueの場合、Tailscale ServeのアイデンティティヘッダーでControl UI/WebSocket認証を満たせます (tailscale whoisで検証)。HTTP APIエンドポイントは、そのTailscaleヘッダー認証を使用しません。代わりにgatewayの通常のHTTP認証モードに従います。このトークン不要フローは、gatewayホストが信頼済みであることを前提とします。tailscale.mode = "serve"の場合、デフォルトはtrueです。gateway.auth.rateLimit: 失敗した認証の任意リミッター。クライアントIPごと、認証スコープごとに適用されます (shared-secretとdevice-tokenは個別に追跡されます)。ブロックされた試行は429+Retry-Afterを返します。- 非同期のTailscale Serve Control UIパスでは、同じ
{scope, clientIp}の失敗試行は、失敗書き込みの前に直列化されます。そのため、同じクライアントからの同時の不正試行は、両方が単なる不一致として競合して通過するのではなく、2つ目のリクエストでリミッターにかかる可能性があります。 gateway.auth.rateLimit.exemptLoopbackのデフォルトはtrueです。localhostトラフィックも意図的にレート制限したい場合 (テストセットアップや厳格なプロキシデプロイなど) はfalseに設定してください。
- 非同期のTailscale Serve Control UIパスでは、同じ
- ブラウザoriginのWS認証試行は、loopback例外を無効にした状態で常にスロットリングされます (ブラウザベースのlocalhost総当たりに対する多層防御)。
- loopbackでは、これらのブラウザoriginロックアウトは正規化された
Origin値ごとに分離されるため、あるlocalhost originからの繰り返し失敗が、別のoriginを自動的に ロックアウトすることはありません。 tailscale.mode:serve(tailnetのみ、loopback bind) またはfunnel(公開、認証が必要)。tailscale.preserveFunnel:trueかつtailscale.mode = "serve"の場合、OpenClawは 起動時にServeを再適用する前にtailscale funnel statusを確認し、 外部で構成されたFunnelルートがすでにgatewayポートをカバーしている場合はスキップします。 デフォルトはfalseです。controlUi.allowedOrigins: Gateway WebSocket接続に対する明示的なブラウザorigin許可リスト。非loopback originからブラウザクライアントが想定される場合は必須です。controlUi.chatMessageMaxWidth: グループ化されたControl UIチャットメッセージの任意の最大幅。960px、82%、min(1280px, 82%)、calc(100% - 2rem)など、制約付きCSS width値を受け付けます。controlUi.dangerouslyAllowHostHeaderOriginFallback: Hostヘッダーoriginポリシーに意図的に依存するデプロイ向けに、Hostヘッダーoriginフォールバックを有効にする危険なモード。remote.transport:ssh(デフォルト) またはdirect(ws/wss)。directの場合、remote.urlはws://またはwss://である必要があります。OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1: 信頼済みプライベートネットワーク IPへの平文ws://を許可する、クライアント側プロセス環境の 緊急用オーバーライドです。平文のデフォルトは引き続きloopbackのみです。対応するopenclaw.jsonはなく、browser.ssrfPolicy.dangerouslyAllowPrivateNetworkのようなブラウザのプライベートネットワーク構成は、Gateway WebSocketクライアントには影響しません。gateway.remote.token/.passwordはリモートクライアントの認証情報フィールドです。それ自体ではgateway認証を構成しません。gateway.push.apns.relay.baseUrl: 公式/TestFlight iOSビルドがリレー支援登録をgatewayに公開した後に使用する、外部APNsリレーのベースHTTPS URL。このURLは、iOSビルドにコンパイルされたリレーURLと一致する必要があります。gateway.push.apns.relay.timeoutMs: gatewayからリレーへの送信タイムアウト (ミリ秒)。デフォルトは10000です。- リレー支援登録は特定のgatewayアイデンティティに委任されます。ペアリングされたiOSアプリは
gateway.identity.getを取得し、そのアイデンティティをリレー登録に含め、登録スコープの送信許可をgatewayに転送します。別のgatewayは、その保存済み登録を再利用できません。 OPENCLAW_APNS_RELAY_BASE_URL/OPENCLAW_APNS_RELAY_TIMEOUT_MS: 上記リレー構成の一時的な環境変数オーバーライド。OPENCLAW_APNS_RELAY_ALLOW_HTTP=true: loopback HTTPリレーURL用の開発専用エスケープハッチ。本番リレーURLはHTTPSのままにしてください。gateway.handshakeTimeoutMs: 認証前のGateway WebSocketハンドシェイクタイムアウト (ミリ秒)。デフォルト:15000。OPENCLAW_HANDSHAKE_TIMEOUT_MSが設定されている場合は優先されます。負荷の高いホストや低電力ホストで、起動ウォームアップがまだ落ち着いている途中でもローカルクライアントが接続できるようにするには、これを増やしてください。gateway.channelHealthCheckMinutes: チャンネルヘルスモニター間隔 (分)。ヘルスモニターによる再起動をグローバルに無効化するには0を設定します。デフォルト:5。gateway.channelStaleEventThresholdMinutes: 古いソケットのしきい値 (分)。これはgateway.channelHealthCheckMinutes以上にしてください。デフォルト:30。gateway.channelMaxRestartsPerHour: ローリング1時間あたりの、チャンネル/アカウントごとのヘルスモニター再起動の最大数。デフォルト:10。channels.<provider>.healthMonitor.enabled: グローバルモニターを有効にしたまま、チャンネル単位でヘルスモニター再起動をオプトアウトします。channels.<provider>.accounts.<accountId>.healthMonitor.enabled: マルチアカウントチャンネルのアカウント単位オーバーライド。設定されている場合、チャンネルレベルのオーバーライドより優先されます。- ローカルgateway呼び出しパスは、
gateway.auth.*が未設定の場合にのみ、フォールバックとしてgateway.remote.*を使用できます。 gateway.auth.token/gateway.auth.passwordがSecretRefで明示的に構成され、解決できない場合、解決はクローズドに失敗します (リモートフォールバックによる隠蔽なし)。trustedProxies: TLS終端または転送クライアントヘッダーを注入するリバースプロキシIP。制御下にあるプロキシのみを列挙してください。loopbackエントリは、同一ホストのプロキシ/ローカル検出セットアップ (例: Tailscale Serveやローカルリバースプロキシ) でも有効ですが、loopbackリクエストをgateway.auth.mode: "trusted-proxy"の対象にするものではありません。allowRealIpFallback:trueの場合、X-Forwarded-Forが欠けているときにgatewayはX-Real-IPを受け入れます。フェイルクローズ動作のため、デフォルトはfalseです。gateway.nodes.pairing.autoApproveCidrs: 要求スコープなしの初回ノードデバイスペアリングを自動承認する任意のCIDR/IP許可リスト。未設定の場合は無効です。これはoperator/browser/Control UI/WebChatのペアリングを自動承認せず、role、scope、metadata、またはpublic-keyのアップグレードも自動承認しません。gateway.nodes.allowCommands/gateway.nodes.denyCommands: ペアリングとプラットフォーム許可リスト評価後に、宣言済みノードコマンドに適用されるグローバルな許可/拒否整形。camera.snap、camera.clip、screen.recordなどの危険なノードコマンドにオプトインするにはallowCommandsを使用します。denyCommandsは、プラットフォームデフォルトまたは明示的な許可により通常は含まれる場合でも、コマンドを削除します。ノードが宣言済みコマンドリストを変更した後は、そのデバイスペアリングを拒否して再承認し、gatewayが更新後のコマンドスナップショットを保存するようにしてください。gateway.tools.deny: HTTPPOST /tools/invokeでブロックする追加ツール名 (デフォルト拒否リストを拡張)。gateway.tools.allow: デフォルトHTTP拒否リストからツール名を削除します。
OpenAI互換エンドポイント
- Chat Completions: デフォルトで無効です。
gateway.http.endpoints.chatCompletions.enabled: trueで有効にします。 - Responses API:
gateway.http.endpoints.responses.enabled。 - Responses URL入力の強化:
gateway.http.endpoints.responses.maxUrlPartsgateway.http.endpoints.responses.files.urlAllowlistgateway.http.endpoints.responses.images.urlAllowlist空の許可リストは未設定として扱われます。URL取得を無効にするにはgateway.http.endpoints.responses.files.allowUrl=falseおよび/またはgateway.http.endpoints.responses.images.allowUrl=falseを使用してください。
- 任意のレスポンス強化ヘッダー:
gateway.http.securityHeaders.strictTransportSecurity(制御下にあるHTTPS originにのみ設定してください。信頼済みプロキシ認証 を参照)
複数インスタンスの分離
一意のポートと状態ディレクトリで、1つのホスト上に複数のgatewayを実行します:--dev (~/.openclaw-dev + ポート 19001 を使用)、--profile <name> (~/.openclaw-<name> を使用)。
複数Gateway を参照してください。
gateway.tls
enabled: gatewayリスナーでTLS終端 (HTTPS/WSS) を有効にします (デフォルト:false)。autoGenerate: 明示的なファイルが構成されていない場合、ローカルの自己署名証明書/鍵ペアを自動生成します。ローカル/開発用途のみです。certPath: TLS証明書ファイルへのファイルシステムパス。keyPath: TLS秘密鍵ファイルへのファイルシステムパス。権限を制限してください。caPath: クライアント検証またはカスタム信頼チェーン用の任意のCAバンドルパス。
gateway.reload
mode: 実行時に構成編集を適用する方法を制御します。"off": ライブ編集を無視します。変更には明示的な再起動が必要です。"restart": 構成変更時に常にgatewayプロセスを再起動します。"hot": 再起動せずにプロセス内で変更を適用します。"hybrid"(デフォルト): まずホットリロードを試し、必要な場合は再起動にフォールバックします。
debounceMs: 構成変更が適用されるまでのデバウンス期間 (ミリ秒、非負整数)。deferralTimeoutMs: 再起動またはチャンネルのホットリロードを強制する前に、実行中の操作を待つ任意の最大時間 (ミリ秒)。デフォルトの上限付き待機 (300000) を使用するには省略します。無期限に待ち、まだ保留中であることを示す警告を定期的にログ出力するには0を設定します。
フック
Authorization: Bearer <token> または x-openclaw-token: <token>。
クエリ文字列のフックトークンは拒否されます。
検証と安全性に関する注意:
hooks.enabled=trueには空でないhooks.tokenが必要です。hooks.tokenはgateway.auth.tokenと異なる必要があります。Gateway トークンの再利用は拒否されます。hooks.pathに/は指定できません。/hooksのような専用サブパスを使用してください。hooks.allowRequestSessionKey=trueの場合は、hooks.allowedSessionKeyPrefixesを制限してください(例:["hook:"])。- マッピングまたはプリセットがテンプレート化された
sessionKeyを使用する場合は、hooks.allowedSessionKeyPrefixesとhooks.allowRequestSessionKey=trueを設定してください。静的なマッピングキーには、このオプトインは不要です。
POST /hooks/wake→{ text, mode?: "now"|"next-heartbeat" }POST /hooks/agent→{ message, name?, agentId?, sessionKey?, wakeMode?, deliver?, channel?, to?, model?, thinking?, timeoutSeconds? }- リクエストペイロードの
sessionKeyは、hooks.allowRequestSessionKey=trueの場合のみ受け付けられます(デフォルト:false)。
- リクエストペイロードの
POST /hooks/<name>→hooks.mappingsによって解決されます- テンプレートでレンダリングされたマッピングの
sessionKey値は外部から供給されたものとして扱われ、同様にhooks.allowRequestSessionKey=trueが必要です。
- テンプレートでレンダリングされたマッピングの
マッピングの詳細
マッピングの詳細
match.pathは/hooksの後のサブパスに一致します(例:/hooks/gmail→gmail)。match.sourceは汎用パスのペイロードフィールドに一致します。{{messages[0].subject}}のようなテンプレートはペイロードから読み取ります。transformはフックアクションを返す JS/TS モジュールを指すことができます。transform.moduleは相対パスである必要があり、hooks.transformsDir内にとどまります(絶対パスとトラバーサルは拒否されます)。hooks.transformsDirは~/.openclaw/hooks/transformsの下に置いてください。ワークスペースの skill ディレクトリは拒否されます。openclaw doctorがこのパスを無効と報告する場合は、変換モジュールを hooks transforms ディレクトリへ移動するか、hooks.transformsDirを削除してください。
agentIdは特定のエージェントへルーティングします。不明な ID はデフォルトにフォールバックします。allowedAgentIds: 明示的なルーティングを制限します(*または省略 = すべて許可、[]= すべて拒否)。defaultSessionKey: 明示的なsessionKeyがないフックエージェント実行用の任意の固定セッションキー。allowRequestSessionKey:/hooks/agentの呼び出し元とテンプレート駆動のマッピングセッションキーがsessionKeyを設定できるようにします(デフォルト:false)。allowedSessionKeyPrefixes: 明示的なsessionKey値(リクエスト + マッピング)用の任意のプレフィックス許可リスト。例:["hook:"]。いずれかのマッピングまたはプリセットがテンプレート化されたsessionKeyを使用する場合は必須になります。deliver: trueは最終応答をチャンネルへ送信します。channelのデフォルトはlastです。modelはこのフック実行の LLM を上書きします(モデルカタログが設定されている場合は許可されている必要があります)。
Gmail 連携
- 組み込みの Gmail プリセットは
sessionKey: "hook:gmail:{{messages[0].id}}"を使用します。 - このメッセージ単位のルーティングを維持する場合は、
hooks.allowRequestSessionKey: trueを設定し、hooks.allowedSessionKeyPrefixesを Gmail 名前空間に一致するよう制限してください。例:["hook:", "hook:gmail:"]。 hooks.allowRequestSessionKey: falseが必要な場合は、テンプレート化されたデフォルトの代わりに静的なsessionKeyでプリセットを上書きしてください。
- Gateway は設定されている場合、起動時に
gog gmail watch serveを自動起動します。無効にするにはOPENCLAW_SKIP_GMAIL_WATCHER=1を設定してください。 - Gateway と並行して別の
gog gmail watch serveを実行しないでください。
Canvas Plugin ホスト
- エージェントが編集可能な HTML/CSS/JS と A2UI を、Gateway ポート配下の HTTP で提供します:
http://<gateway-host>:<gateway.port>/__openclaw__/canvas/http://<gateway-host>:<gateway.port>/__openclaw__/a2ui/
- ローカルのみ:
gateway.bind: "loopback"(デフォルト)を維持してください。 - 非 loopback バインド: canvas ルートには、他の Gateway HTTP サーフェスと同様に Gateway 認証(トークン/パスワード/信頼済みプロキシ)が必要です。
- Node WebView は通常、認証ヘッダーを送信しません。ノードがペアリングされ接続されると、Gateway は canvas/A2UI アクセス用のノードスコープのケイパビリティ URL を通知します。
- ケイパビリティ URL はアクティブなノード WS セッションにバインドされ、すぐに期限切れになります。IP ベースのフォールバックは使用されません。
- 提供される HTML にライブリロードクライアントを注入します。
- 空の場合はスターター用の
index.htmlを自動作成します。 - A2UI も
/__openclaw__/a2ui/で提供します。 - 変更には Gateway の再起動が必要です。
- 大きなディレクトリまたは
EMFILEエラーでは、ライブリロードを無効にしてください。
検出
mDNS (Bonjour)
minimal(バンドルされたbonjourPlugin が有効な場合のデフォルト): TXT レコードからcliPath+sshPortを省略します。full:cliPath+sshPortを含めます。LAN マルチキャスト広告には、引き続きバンドルされたbonjourPlugin が有効である必要があります。off: Plugin の有効化状態を変更せずに LAN マルチキャスト広告を抑制します。- バンドルされた
bonjourPlugin は macOS ホストでは自動起動し、Linux、Windows、コンテナ化された Gateway デプロイではオプトインです。 - ホスト名は、有効な DNS ラベルである場合はシステムホスト名がデフォルトになり、そうでない場合は
openclawにフォールバックします。OPENCLAW_MDNS_HOSTNAMEで上書きできます。
広域 (DNS-SD)
~/.openclaw/dns/ の下にユニキャスト DNS-SD ゾーンを書き込みます。ネットワークをまたいだ検出には、DNS サーバー(CoreDNS 推奨)+ Tailscale split DNS と組み合わせてください。
セットアップ: openclaw dns setup --apply.
環境
env (インライン環境変数)
- インライン環境変数は、プロセス環境にキーがない場合にのみ適用されます。
.envファイル: CWD の.env+~/.openclaw/.env(どちらも既存の変数を上書きしません)。shellEnv: ログインシェルプロファイルから、不足している想定キーをインポートします。- 完全な優先順位については 環境 を参照してください。
環境変数の置換
任意の設定文字列内で${VAR_NAME} を使って環境変数を参照します。
- 一致するのは大文字の名前のみです:
[A-Z_][A-Z0-9_]*。 - 未設定または空の変数は、設定読み込み時にエラーをスローします。
- リテラルの
${VAR}には$${VAR}でエスケープします。 $includeと連携します。
シークレット
シークレット参照は追加的です。プレーンテキスト値も引き続き機能します。SecretRef
1つのオブジェクト形状を使用します。
providerパターン:^[a-z][a-z0-9_-]{0,63}$source: "env"id パターン:^[A-Z][A-Z0-9_]{0,127}$source: "file"id: 絶対 JSON ポインター (例:"/providers/openai/apiKey")source: "exec"id パターン:^[A-Za-z0-9][A-Za-z0-9._:/-]{0,255}$source: "exec"id には、スラッシュ区切りのパスセグメントとして.または..を含めてはいけません (例:a/../bは拒否されます)
サポートされる認証情報サーフェス
- 正規マトリックス: SecretRef 認証情報サーフェス
secrets applyは、サポートされるopenclaw.jsonの認証情報パスを対象にします。auth-profiles.json参照は、ランタイム解決と監査カバレッジに含まれます。
シークレットプロバイダー設定
fileプロバイダーはmode: "json"とmode: "singleValue"をサポートします (singleValue モードではidは"value"である必要があります)。- Windows ACL 検証が利用できない場合、file および exec プロバイダーのパスはフェイルクローズします。検証できない信頼済みパスに対してのみ
allowInsecurePath: trueを設定してください。 execプロバイダーは絶対commandパスを必要とし、stdin/stdout 上でプロトコルペイロードを使用します。- デフォルトでは、シンボリックリンクのコマンドパスは拒否されます。解決後のターゲットパスを検証しながらシンボリックリンクパスを許可するには、
allowSymlinkCommand: trueを設定します。 trustedDirsが設定されている場合、信頼済みディレクトリのチェックは解決後のターゲットパスに適用されます。execの子環境はデフォルトで最小限です。必要な変数はpassEnvで明示的に渡してください。- シークレット参照はアクティベーション時にメモリ内スナップショットへ解決され、その後リクエストパスはスナップショットのみを読み取ります。
- アクティブサーフェスのフィルタリングはアクティベーション中に適用されます。有効なサーフェス上の未解決参照は起動/再読み込みを失敗させ、一方で非アクティブなサーフェスは診断付きでスキップされます。
認証ストレージ
- エージェントごとのプロファイルは
<agentDir>/auth-profiles.jsonに保存されます。 auth-profiles.jsonは、静的認証情報モード向けに値レベルの参照 (api_keyにはkeyRef、tokenにはtokenRef) をサポートします。{ "provider": { "apiKey": "..." } }のような従来のフラットなauth-profiles.jsonマップはランタイム形式ではありません。openclaw doctor --fixはそれらを.legacy-flat.*.bakバックアップ付きで、正規のprovider:defaultAPI キープロファイルへ書き換えます。- OAuth モードプロファイル (
auth.profiles.<id>.mode = "oauth") は、SecretRef に基づく auth-profile 認証情報をサポートしません。 - 静的ランタイム認証情報は、メモリ内の解決済みスナップショットから取得されます。従来の静的
auth.jsonエントリは、発見されると消去されます。 - 従来の OAuth は
~/.openclaw/credentials/oauth.jsonからインポートします。 - OAuth を参照してください。
- シークレットのランタイム動作と
audit/configure/applyツール: シークレット管理。
auth.cooldowns
billingBackoffHours: プロファイルが真の 請求/クレジット不足エラーで失敗したときの、時間単位の基本バックオフ(デフォルト:5)。明示的な請求テキストは401/403レスポンスでもここに分類されることがありますが、プロバイダー固有のテキスト マッチャーは、それを所有するプロバイダーに限定されます(例: OpenRouterKey limit exceeded)。再試行可能な HTTP402の使用量ウィンドウや 組織/ワークスペースの支出上限メッセージは、代わりにrate_limitパスに残ります。billingBackoffHoursByProvider: 請求バックオフ時間に対する、任意のプロバイダー別上書き。billingMaxHours: 請求バックオフの指数的増加に対する時間単位の上限(デフォルト:24)。authPermanentBackoffMinutes: 信頼度の高いauth_permanent失敗に対する分単位の基本バックオフ(デフォルト:10)。authPermanentMaxMinutes:auth_permanentバックオフ増加に対する分単位の上限(デフォルト:60)。failureWindowHours: バックオフカウンターに使われる時間単位のローリングウィンドウ(デフォルト:24)。overloadedProfileRotations: モデルフォールバックに切り替える前に、過負荷エラーに対して許可する同一プロバイダー内の認証プロファイルローテーションの最大回数(デフォルト:1)。ModelNotReadyExceptionのようなプロバイダー混雑を示す形はここに分類されます。overloadedBackoffMs: 過負荷状態のプロバイダー/プロファイルローテーションを再試行する前の固定遅延(デフォルト:0)。rateLimitedProfileRotations: モデルフォールバックに切り替える前に、レート制限エラーに対して許可する同一プロバイダー内の認証プロファイルローテーションの最大回数(デフォルト:1)。そのレート制限バケットには、Too many concurrent requests、ThrottlingException、concurrency limit reached、workers_ai ... quota limit exceeded、resource exhaustedなどのプロバイダー由来のテキストが含まれます。
ログ出力
- デフォルトのログファイル:
/tmp/openclaw/openclaw-YYYY-MM-DD.log。 - 安定したパスにするには
logging.fileを設定します。 --verboseのとき、consoleLevelはdebugに引き上げられます。maxFileBytes: ローテーション前のアクティブなログファイルの最大サイズ(バイト単位、正の整数、デフォルト:104857600= 100 MB)。OpenClaw はアクティブファイルの横に、番号付きアーカイブを最大 5 個保持します。redactSensitive/redactPatterns: コンソール出力、ファイルログ、OTLP ログレコード、永続化されたセッショントランスクリプトテキストに対するベストエフォートのマスキング。redactSensitive: "off"は、この一般的なログ/トランスクリプトポリシーだけを無効にします。UI/ツール/診断の安全性サーフェスは、送出前に引き続きシークレットをリダクトします。
診断
enabled: インストルメンテーション出力のマスタートグル(デフォルト:true)。flags: 対象を絞ったログ出力を有効にするフラグ文字列の配列("telegram.*"や"*"のようなワイルドカードをサポート)。stuckSessionWarnMs: 長時間実行中の処理セッションをsession.long_running、session.stalled、またはsession.stuckとして分類するための、進捗なし経過時間のしきい値(ミリ秒単位)。返信、ツール、ステータス、ブロック、ACP 進捗でタイマーはリセットされます。繰り返されるsession.stuck診断は、変化がない間はバックオフします。stuckSessionAbortMs: 回復のために対象となる停止中のアクティブ作業を中止ドレインできるようになるまでの、進捗なし経過時間のしきい値(ミリ秒単位)。未設定の場合、OpenClaw は少なくとも 10 分かつstuckSessionWarnMsの 5 倍という、より安全な拡張埋め込み実行ウィンドウを使用します。otel.enabled: OpenTelemetry エクスポートパイプラインを有効にします(デフォルト:false)。完全な構成、シグナルカタログ、プライバシーモデルについては、OpenTelemetry エクスポートを参照してください。otel.endpoint: OTel エクスポート用のコレクター URL。otel.tracesEndpoint/otel.metricsEndpoint/otel.logsEndpoint: 任意のシグナル固有 OTLP エンドポイント。設定すると、そのシグナルに限りotel.endpointを上書きします。otel.protocol:"http/protobuf"(デフォルト)または"grpc"。otel.headers: OTel エクスポートリクエストとともに送信される追加の HTTP/gRPC メタデータヘッダー。otel.serviceName: リソース属性のサービス名。otel.traces/otel.metrics/otel.logs: トレース、メトリクス、またはログのエクスポートを有効にします。otel.sampleRate: トレースサンプリング率0-1。otel.flushIntervalMs: 定期的なテレメトリフラッシュ間隔(ミリ秒単位)。otel.captureContent: OTEL span 属性の生コンテンツキャプチャをオプトインで有効にします。デフォルトはオフです。真偽値trueはシステム以外のメッセージ/ツールコンテンツをキャプチャします。オブジェクト形式では、inputMessages、outputMessages、toolInputs、toolOutputs、systemPromptを明示的に有効化できます。OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_latest_experimental: 最新の実験的な GenAI span プロバイダー属性用の環境トグル。デフォルトでは互換性のため、span は従来のgen_ai.system属性を保持します。GenAI メトリクスは有界のセマンティック属性を使用します。OPENCLAW_OTEL_PRELOADED=1: すでにグローバル OpenTelemetry SDK を登録しているホスト向けの環境トグル。OpenClaw は診断リスナーをアクティブに保ちながら、Plugin 所有の SDK 起動/シャットダウンをスキップします。OTEL_EXPORTER_OTLP_TRACES_ENDPOINT、OTEL_EXPORTER_OTLP_METRICS_ENDPOINT、OTEL_EXPORTER_OTLP_LOGS_ENDPOINT: 対応する構成キーが未設定のときに使われる、シグナル固有のエンドポイント環境変数。cacheTrace.enabled: 埋め込み実行のキャッシュトレーススナップショットをログに記録します(デフォルト:false)。cacheTrace.filePath: キャッシュトレース JSONL の出力パス(デフォルト:$OPENCLAW_STATE_DIR/logs/cache-trace.jsonl)。cacheTrace.includeMessages/includePrompt/includeSystem: キャッシュトレース出力に含める内容を制御します(すべてデフォルト:true)。
更新
channel: npm/git インストールのリリースチャンネル -"stable"、"beta"、または"dev"。checkOnStart: Gateway 起動時に npm 更新を確認します(デフォルト:true)。auto.enabled: パッケージインストールのバックグラウンド自動更新を有効にします(デフォルト:false)。auto.stableDelayHours: stable チャンネルの自動適用前の最小遅延時間(デフォルト:6、最大:168)。auto.stableJitterHours: stable チャンネルのロールアウトを分散する追加ウィンドウ時間(デフォルト:12、最大:168)。auto.betaCheckIntervalHours: beta チャンネルのチェック実行頻度(時間単位、デフォルト:1、最大:24)。
ACP
enabled: グローバル ACP 機能ゲート(デフォルト:true。ACP ディスパッチと spawn の操作手段を非表示にするにはfalseを設定)。dispatch.enabled: ACP セッションターンディスパッチの独立したゲート(デフォルト:true)。ACP コマンドを利用可能にしたまま実行をブロックするにはfalseを設定します。backend: デフォルトの ACP ランタイムバックエンド id(登録済み ACP ランタイム Plugin と一致している必要があります)。 まずバックエンド Plugin をインストールしてください。plugins.allowが設定されている場合は、バックエンド Plugin id(例:acpx)を含めないと ACP バックエンドは読み込まれません。defaultAgent: spawn が明示的なターゲットを指定しない場合の、フォールバック ACP ターゲットエージェント id。allowedAgents: ACP ランタイムセッションで許可されるエージェント id の許可リスト。空の場合、追加の制限はありません。maxConcurrentSessions: 同時にアクティブにできる ACP セッションの最大数。stream.coalesceIdleMs: ストリーミングテキストのアイドルフラッシュウィンドウ(ミリ秒単位)。stream.maxChunkChars: ストリーミングされたブロック投影を分割する前の最大チャンクサイズ。stream.repeatSuppression: ターンごとの繰り返しステータス/ツール行を抑制します(デフォルト:true)。stream.deliveryMode:"live"は段階的にストリーミングし、"final_only"はターン終端イベントまでバッファします。stream.hiddenBoundarySeparator: 非表示ツールイベント後の可視テキスト前に挿入する区切り(デフォルト:"paragraph")。stream.maxOutputChars: ACP ターンごとに投影されるアシスタント出力文字数の最大値。stream.maxSessionUpdateChars: 投影される ACP ステータス/更新行の最大文字数。stream.tagVisibility: ストリーミングイベントについて、タグ名から真偽値の可視性上書きへのレコード。runtime.ttlMinutes: クリーンアップ対象になるまでの ACP セッションワーカーのアイドル TTL(分単位)。runtime.installCommand: ACP ランタイム環境のブートストラップ時に実行する任意のインストールコマンド。
CLI
cli.banner.taglineModeはバナータグラインのスタイルを制御します:"random"(デフォルト): 面白い/季節性のあるタグラインをローテーションします。"default": 固定のニュートラルなタグライン(All your chats, one OpenClaw.)。"off": タグラインテキストなし(バナータイトル/バージョンは引き続き表示されます)。
- バナー全体を非表示にするには(タグラインだけではなく)、環境変数
OPENCLAW_HIDE_BANNER=1を設定します。
ウィザード
CLI のガイド付きセットアップフロー(onboard、configure、doctor)によって書き込まれるメタデータ:
アイデンティティ
エージェントデフォルトのagents.list アイデンティティフィールドを参照してください。
ブリッジ(レガシー、削除済み)
現在のビルドには TCP ブリッジは含まれていません。Node は Gateway WebSocket 経由で接続します。bridge.* キーは構成スキーマの一部ではなくなりました(削除されるまで検証は失敗します。openclaw doctor --fix で不明なキーを取り除けます)。
レガシーブリッジ構成(歴史的な参考情報)
レガシーブリッジ構成(歴史的な参考情報)
Cron
sessionRetention: 完了した分離 cron 実行セッションをsessions.jsonから削除するまで保持する期間。アーカイブされた削除済み cron トランスクリプトのクリーンアップも制御します。デフォルト:24h; 無効にするにはfalseを設定します。runLog.maxBytes: 削除前の実行ログファイル (cron/runs/<jobId>.jsonl) ごとの最大サイズ。デフォルト:2_000_000バイト。runLog.keepLines: 実行ログの削除がトリガーされたときに保持される最新行。デフォルト:2000。webhookToken: cron Webhook POST 配信 (delivery.mode = "webhook") に使用される bearer token。省略すると認証ヘッダーは送信されません。webhook: 非推奨のレガシー fallback Webhook URL (http/https)。まだnotify: trueを持つ保存済みジョブにのみ使用されます。
cron.retry
maxAttempts: 一時的なエラーで単発ジョブを再試行する最大回数 (デフォルト:3; 範囲:0-10)。backoffMs: 各再試行のバックオフ遅延を ms で表す配列 (デフォルト:[30000, 60000, 300000]; 1-10 個のエントリ)。retryOn: 再試行をトリガーするエラー種別 -"rate_limit","overloaded","network","timeout","server_error"。省略するとすべての一時的な種別を再試行します。
cron.failureAlert
enabled: cron ジョブの失敗アラートを有効にします (デフォルト:false)。after: アラートが発火するまでの連続失敗回数 (正の整数、最小:1)。cooldownMs: 同じジョブに対する繰り返しアラートの最小間隔 (ミリ秒、非負整数)。includeSkipped: 連続したスキップ実行をアラートしきい値にカウントします (デフォルト:false)。スキップ実行は個別に追跡され、実行エラーのバックオフには影響しません。mode: 配信モード -"announce"はチャンネルメッセージ経由で送信し、"webhook"は設定済み Webhook に投稿します。accountId: アラート配信のスコープを設定する任意のアカウントまたはチャンネル ID。
cron.failureDestination
- すべてのジョブにまたがる cron 失敗通知のデフォルト宛先。
mode:"announce"または"webhook"。十分なターゲットデータが存在する場合、デフォルトは"announce"です。channel: announce 配信のチャンネル override。"last"は最後に認識された配信チャンネルを再利用します。to: 明示的な announce ターゲットまたは Webhook URL。Webhook モードでは必須です。accountId: 配信用の任意のアカウント override。- ジョブごとの
delivery.failureDestinationはこのグローバルデフォルトを override します。 - グローバルとジョブごとの失敗宛先のどちらも設定されていない場合、すでに
announceで配信しているジョブは、失敗時にそのプライマリ announce ターゲットへ fallback します。 delivery.failureDestinationは、ジョブのプライマリdelivery.modeが"webhook"でない限り、sessionTarget="isolated"ジョブでのみサポートされます。
メディアモデルテンプレート変数
tools.media.models[].args で展開されるテンプレートプレースホルダー:
| 変数 | 説明 |
|---|---|
{{Body}} | 完全な受信メッセージ本文 |
{{RawBody}} | 生の本文 (履歴/送信者ラッパーなし) |
{{BodyStripped}} | グループメンションを除去した本文 |
{{From}} | 送信者識別子 |
{{To}} | 宛先識別子 |
{{MessageSid}} | チャンネルメッセージ ID |
{{SessionId}} | 現在のセッション UUID |
{{IsNewSession}} | 新しいセッションが作成された場合は "true" |
{{MediaUrl}} | 受信メディア疑似 URL |
{{MediaPath}} | ローカルメディアパス |
{{MediaType}} | メディア種別 (画像/音声/ドキュメント/…) |
{{Transcript}} | 音声トランスクリプト |
{{Prompt}} | CLI エントリ用に解決されたメディアプロンプト |
{{MaxChars}} | CLI エントリ用に解決された最大出力文字数 |
{{ChatType}} | "direct" または "group" |
{{GroupSubject}} | グループ件名 (ベストエフォート) |
{{GroupMembers}} | グループメンバーのプレビュー (ベストエフォート) |
{{SenderName}} | 送信者表示名 (ベストエフォート) |
{{SenderE164}} | 送信者電話番号 (ベストエフォート) |
{{Provider}} | Provider ヒント (whatsapp、telegram、discord など) |
Config include ($include)
config を複数のファイルに分割します:
- 単一ファイル: それを含むオブジェクトを置き換えます。
- ファイルの配列: 順番に deep merge されます (後のものが前のものを override)。
- sibling キー: include の後にマージされます (include された値を override)。
- ネストされた include: 最大 10 階層まで。
- パス: include しているファイルからの相対パスとして解決されますが、最上位 config ディレクトリ (
openclaw.jsonのdirname) の内側にとどまる必要があります。絶対パス/../形式は、その境界内に解決される場合にのみ許可されます。 - 単一ファイル include によって裏付けられた 1 つの最上位セクションだけを変更する OpenClaw 所有の書き込みは、その include されたファイルに書き込みます。たとえば、
plugins installはplugins.json5内のplugins: { $include: "./plugins.json5" }を更新し、openclaw.jsonはそのままにします。 - ルート include、include 配列、sibling override を持つ include は、OpenClaw 所有の書き込みに対して読み取り専用です。これらの書き込みは config を flatten する代わりに fail closed します。
- エラー: 不足ファイル、parse エラー、循環 include に対して明確なメッセージを表示します。
関連: Configuration · Configuration の例 · Doctor