Skip to main content
OpenClaw は、オプションの 構成を ~/.openclaw/openclaw.json から読み取ります。 ファイルが見つからない場合、OpenClaw は安全なデフォルトを使用します。構成を追加する一般的な理由:
  • チャネルを接続し、ボットにメッセージを送信できる人を制御します
  • モデル、ツール、サンドボックス、または自動化 (cron、フック) を設定します。
  • セッション、メディア、ネットワーキング、または UI を調整する
利用可能なすべてのフィールドについては、完全なリファレンス を参照してください。
構成は初めてですか? 対話型セットアップについては openclaw onboard から始めるか、完全な構成のコピー&ペーストについては 構成例 ガイドを参照してください。

最小限の構成

// ~/.openclaw/openclaw.json
{
  agents: { defaults: { workspace: "~/.openclaw/workspace" } },
  channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}

構成の編集

openclaw onboard       # full setup wizard
openclaw configure     # config wizard

厳密な検証

OpenClaw は、スキーマに完全に一致する構成のみを受け入れます。不明なキー、不正な形式、または無効な値により、ゲートウェイは 起動を拒否します。唯一のルートレベルの例外は $schema (文字列) であるため、編集者は JSON スキーマ メタデータを添付できます。
検証が失敗した場合:
  • ゲートウェイが起動しない
  • 診断コマンドのみが機能します (openclaw doctoropenclaw logsopenclaw healthopenclaw status)
  • openclaw doctor を実行して、正確な問題を確認してください
  • openclaw doctor --fix (または --yes) を実行して修復を適用します

一般的なタスク

各チャネルには、channels.<provider> の下に独自の構成セクションがあります。セットアップ手順については、専用チャンネルのページを参照してください。すべてのチャネルは同じ DM ポリシー パターンを共有します。
{
  channels: {
    telegram: {
      enabled: true,
      botToken: "123:abc",
      dmPolicy: "pairing",   // pairing | allowlist | open | disabled
      allowFrom: ["tg:123"], // only for allowlist/open
    },
  },
}
分離された Docker コンテナーでエージェント セッションを実行します。
{
  agents: {
    defaults: {
      sandbox: {
        mode: "non-main",  // off | non-main | all
        scope: "agent",    // session | agent | shared
      },
    },
  },
}
最初にイメージをビルドします: scripts/sandbox-setup.sh完全なガイドについては サンドボックス を、すべてのオプションについては 完全なリファレンス を参照してください。
{
  agents: {
    defaults: {
      heartbeat: {
        every: "30m",
        target: "last",
      },
    },
  },
}
```- `every`: 期間文字列 (`30m`、`2h`)。 `0m` を無効に設定します。
- `target`: `last` | `whatsapp` | `telegram` | `discord` | `none`
- `directPolicy`: `allow` (デフォルト) または `block` (DM スタイルのハートビート ターゲットの場合)
- 完全なガイドについては、[ハートビート](/gateway/heartbeat) を参照してください。

</Accordion>

<Accordion title="cron ジョブを構成する">
```json5
{
  cron: {
    enabled: true,
    maxConcurrentRuns: 2,
    sessionRetention: "24h",
    runLog: {
      maxBytes: "2mb",
      keepLines: 2000,
    },
  },
}
  • sessionRetention: sessions.json から完了した分離実行セッションをプルーニングします (デフォルトは 24hfalse を無効に設定します)。
  • runLog: サイズと保持された行によって cron/runs/<jobId>.jsonl を削除します。
  • 機能の概要と CLI の例については、Cron ジョブ を参照してください。
ゲートウェイで HTTP Webhook エンドポイントを有効にします。
{
  hooks: {
    enabled: true,
    token: "shared-secret",
    path: "/hooks",
    defaultSessionKey: "hook:ingress",
    allowRequestSessionKey: false,
    allowedSessionKeyPrefixes: ["hook:"],
    mappings: [
      {
        match: { path: "gmail" },
        action: "agent",
        agentId: "main",
        deliver: true,
      },
    ],
  },
}
セキュリティ上の注意:
  • すべてのフック/Webhook ペイロード コンテンツを信頼できない入力として扱います。
  • 厳密に範囲を絞ったデバッグを実行しない限り、安全でないコンテンツのバイパス フラグを無効にしておきます (hooks.gmail.allowUnsafeExternalContenthooks.mappings[].allowUnsafeExternalContent)。
  • フック駆動型エージェントの場合は、強力な最新のモデル層と厳密なツール ポリシー (たとえば、メッセージングのみと可能な場合はサンドボックス) を好みます。
すべてのマッピング オプションと Gmail の統合については、完全なリファレンス を参照してください。
別々のワークスペースとセッションを使用して、複数の分離されたエージェントを実行します。
{
  agents: {
    list: [
      { id: "home", default: true, workspace: "~/.openclaw/workspace-home" },
      { id: "work", workspace: "~/.openclaw/workspace-work" },
    ],
  },
  bindings: [
    { agentId: "home", match: { channel: "whatsapp", accountId: "personal" } },
    { agentId: "work", match: { channel: "whatsapp", accountId: "biz" } },
  ],
}
バインド ルールとエージェントごとのアクセス プロファイルについては、マルチエージェント および 完全なリファレンス を参照してください。
$include を使用して大規模な構成を整理します。
// ~/.openclaw/openclaw.json
{
  gateway: { port: 18789 },
  agents: { $include: "./agents.json5" },
  broadcast: {
    $include: ["./clients/a.json5", "./clients/b.json5"],
  },
}
  • 単一ファイル: 含まれているオブジェクトを置き換えます
  • ファイルの配列: 順番にディープマージされます (後の方が優先)
  • 兄弟キー: インクルード後にマージされます (インクルードされた値をオーバーライドします)
  • ネストされたインクルード: 最大 10 レベルの深さまでサポートされています
  • 相対パス: 含まれるファイルを基準にして解決されます。
  • エラー処理: ファイルの欠落、解析エラー、循環インクルードのエラーをクリアします。

ホットリロードを構成する

ゲートウェイは ~/.openclaw/openclaw.json を監視し、変更を自動的に適用します。ほとんどの設定では手動で再起動する必要はありません。

リロードモード|モード |行動 |

| ---------------------- | ----------------------------------------------------------------------------------------- | | hybrid (デフォルト) |安全な変更を即座にホット適用します。重要なものについては自動的に再起動します。 | | hot |安全な変更のみをホット適用します。再起動が必要な場合、警告をログに記録します。再起動はユーザーが処理します。 | | restart |安全かどうかにかかわらず、設定変更時にゲートウェイを再起動します。 | | off |ファイル監視を無効にします。変更は次回の手動再起動時に有効になります。 |
{
  gateway: {
    reload: { mode: "hybrid", debounceMs: 300 },
  },
}

ホットアプライするものと再起動が必要なもの

ほとんどのフィールドはダウンタイムなしでホットアプライされます。 hybrid モードでは、再起動が必要な変更は自動的に処理されます。カテゴリーフィールド再起動が必要ですか?
チャンネルchannels.*web (WhatsApp) — すべての組み込みおよび拡張チャネルいいえ
エージェントとモデルagentagentsmodelsroutingいいえ
自動化hookscronagent.heartbeatいいえ
セッションとメッセージsessionmessagesいいえ
ツールとメディアtoolsbrowserskillsaudiotalkいいえ
UI とその他uiloggingidentitybindingsいいえ
ゲートウェイサーバーgateway.* (ポート、バインド、認証、テールスケール、TLS、HTTP)はい
インフラdiscoverycanvasHostpluginsはい
gateway.reloadgateway.remote は例外です。これらを変更しても再起動は行われません

Config RPC (プログラムによる更新)

コントロール プレーン書き込み RPC (config.applyconfig.patchupdate.run) は、deviceId+clientIp ごとに 60 秒あたり 3 リクエスト にレート制限されています。制限されている場合、RPC は retryAfterMs とともに UNAVAILABLE を返します。
検証し、完全な構成を書き込み、ゲートウェイを 1 ステップで再起動します。
config.apply構成全体 を置き換えます。部分的な更新には config.patch を使用し、単一キーには openclaw config set を使用します。
パラメータ:
  • raw (文字列) — 構成全体の JSON5 ペイロード
  • baseHash (オプション) — config.get からの構成ハッシュ (構成が存在する場合に必要)
  • sessionKey (オプション) — 再起動後のウェイクアップ ping 用のセッション キー
  • note (オプション) — 再起動センチネルに関するメモ
  • restartDelayMs (オプション) — 再起動前の遅延 (デフォルトは 2000)
再起動リクエストは、1 つがすでに保留中または実行中であるときに結合され、再起動サイクルの間に 30 秒のクールダウンが適用されます。
openclaw gateway call config.get --params '{}'  # capture payload.hash
openclaw gateway call config.apply --params '{
  "raw": "{ agents: { defaults: { workspace: \"~/.openclaw/workspace\" } } }",
  "baseHash": "<hash>",
  "sessionKey": "agent:main:whatsapp:dm:+15555550123"
}'
部分的な更新を既存の構成にマージします (JSON マージ パッチ セマンティクス)。- オブジェクトは再帰的にマージされます
  • null はキーを削除します
  • 配列の置換
パラメータ:
  • raw (文字列) — 変更するキーのみを含む JSON5
  • baseHash (必須) — config.get からの構成ハッシュ
  • sessionKeynoterestartDelayMsconfig.apply と同じ
再起動の動作は config.apply と一致します。合体した保留中の再起動に加え、再起動サイクル間に 30 秒のクールダウンが発生します。
openclaw gateway call config.patch --params '{
  "raw": "{ channels: { telegram: { groups: { \"*\": { requireMention: false } } } } }",
  "baseHash": "<hash>"
}'

環境変数

OpenClaw は、親プロセスから環境変数を読み取り、さらに次のことを行います。
  • 現在の作業ディレクトリからの .env (存在する場合)
  • ~/.openclaw/.env (グローバル フォールバック)
どちらのファイルも既存の環境変数をオーバーライドしません。 config でインライン環境変数を設定することもできます。
{
  env: {
    OPENROUTER_API_KEY: "sk-or-...",
    vars: { GROQ_API_KEY: "gsk-..." },
  },
}
有効で予期されるキーが設定されていない場合、OpenClaw はログイン シェルを実行し、不足しているキーのみをインポートします。
{
  env: {
    shellEnv: { enabled: true, timeoutMs: 15000 },
  },
}
同等の環境変数: OPENCLAW_LOAD_SHELL_ENV=1
${VAR_NAME} を使用して、構成文字列値内の環境変数を参照します。
{
  gateway: { auth: { token: "${OPENCLAW_GATEWAY_TOKEN}" } },
  models: { providers: { custom: { apiKey: "${CUSTOM_API_KEY}" } } },
}
ルール:
  • 大文字の名前のみが一致します: [A-Z_][A-Z0-9_]*
  • 欠落している/空の変数はロード時にエラーをスローします
  • リテラル出力の場合は ${VAR} でエスケープします
  • $include ファイル内で動作します
  • インライン置換: "${BASE}/v1""https://api.example.com/v1"
SecretRef オブジェクトをサポートするフィールドの場合、以下を使用できます。
{
  models: {
    providers: {
      openai: { apiKey: { source: "env", provider: "default", id: "OPENAI_API_KEY" } },
    },
  },
  skills: {
    entries: {
      "nano-banana-pro": {
        apiKey: {
          source: "file",
          provider: "filemain",
          id: "/skills/entries/nano-banana-pro/apiKey",
        },
      },
    },
  },
  channels: {
    googlechat: {
      serviceAccountRef: {
        source: "exec",
        provider: "vault",
        id: "channels/googlechat/serviceAccount",
      },
    },
  },
}
SecretRef の詳細 (env/file/execsecrets.providers を含む) は、シークレット管理 にあります。 サポートされている資格情報パスは、SecretRef Credential Surface にリストされています。
完全な優先順位とソースについては、環境 を参照してください。

完全なリファレンス

フィールドごとの完全なリファレンスについては、構成リファレンス を参照してください。
関連: 構成例 · 構成リファレンス · ドクター