OpenClaw設定ファイル(openclaw.json)完全解説

AIエージェント
Picsum ID: 965

※当サイトはアフィリエイトプログラムに参加しています

openclaw.jsonとは?

OpenClawを使い始めると、最初にぶつかるのが設定ファイル「openclaw.json」の書き方だ。このファイルひとつでOpenClawの動作がガラッと変わるので、正しく理解しておくことが重要になる。

この記事では、openclaw.jsonの構造を一つひとつ紐解きながら、実践的な設定パターンやトラブルシューティングまでカバーする。「公式ドキュメントを読んでもよくわからない」という人にこそ読んでほしい。

openclaw.jsonの全体構造

openclaw.jsonは大きく分けて4つのセクションで構成されている。

  • gateway — ゲートウェイサーバーの接続設定
  • auth — 認証情報の管理
  • channels — Discord、LINE、Telegramなどのチャンネル設定
  • agents — AIエージェントの振る舞い設定

それぞれのセクションが独立しているため、必要なところだけ変更すれば済む設計になっている。JSONファイルなので、カンマの付け忘れやブラケットの閉じ忘れには注意が必要だ。

gatewayセクション

gatewayセクションでは、OpenClawのゲートウェイデーモンがどのポートでリッスンするか、外部からのアクセスをどう扱うかを定義する。

{
  "gateway": {
    "host": "0.0.0.0",
    "port": 3000,
    "ssl": false
  }
}

hostはバインドアドレスだ。ローカルだけで使うなら「127.0.0.1」、外部からもアクセスさせるなら「0.0.0.0」にする。VPSで運用するケースでは「0.0.0.0」が一般的だろう。

portはデフォルトで3000番。他のサービスと被る場合は変更すればいい。Nginxでリバースプロキシを挟むなら、ここは内部ポートとして使う形になる。

sslは直接SSL終端するかどうか。Nginxなどのリバースプロキシでやるのが普通なので、falseのままで問題ないことが多い。

authセクション

authセクションは、OpenClawが外部APIと通信するための認証情報を管理する場所だ。

{
  "auth": {
    "anthropic": {
      "apiKey": "sk-ant-xxxxx"
    },
    "openai": {
      "apiKey": "sk-xxxxx"
    }
  }
}

ここにはAnthropicやOpenAIのAPIキーを記述する。環境変数でも渡せるが、openclaw.jsonに書いておくと管理が一元化できて楽だ。ただし、Gitリポジトリに入れてしまわないよう.gitignoreへの追加を忘れないこと。

複数のAPIプロバイダーを併用する場合は、それぞれのキーをここに並べる。OpenClawはagentsセクションでどのモデルを使うか指定できるので、用途によって使い分けることも可能だ。

channelsセクション

channelsセクションは、OpenClawがどのメッセージングプラットフォームと連携するかを定義する。ここが一番設定項目が多く、つまずきやすい部分でもある。

{
  "channels": {
    "discord": {
      "botToken": "MTxxxxx",
      "guildId": "123456789"
    },
    "telegram": {
      "botToken": "7xxxxxx:AAxxxxx"
    },
    "line": {
      "channelSecret": "xxxxx",
      "channelAccessToken": "xxxxx"
    }
  }
}

各プラットフォームごとにトークンやシークレットが必要になる。Discordならボットトークンとサーバー(ギルド)ID、Telegramならボットトークン、LINEならチャンネルシークレットとアクセストークンだ。

複数のチャンネルを同時に動かせるのがOpenClawの強みで、DiscordとLINEを両方繋いでおけば、どちらからメッセージが来ても同じエージェントが応答してくれる。

agentsセクション

agentsセクションでは、AIエージェントのモデルや振る舞いをカスタマイズする。

{
  "agents": {
    "main": {
      "model": "anthropic/claude-sonnet-4-20250514",
      "thinkingLevel": "low",
      "systemPrompt": "あなたは親切なアシスタントです。"
    }
  }
}

modelで使用するAIモデルを指定する。Anthropicのモデルなら「anthropic/claude-sonnet-4-20250514」のような書式だ。コストと性能のバランスを見て選ぼう。

thinkingLevelは推論の深さを制御する。「off」「low」「medium」「high」から選べる。複雑なタスクにはhigh、チャットボット用途ならlowで十分なことが多い。

systemPromptはエージェントの性格や応答スタイルを決めるプロンプトだ。ここを工夫するだけで、同じモデルでもまったく違うキャラクターのボットを作れる。

よくある設定パターン

パターン1:Discordボットとして最小構成で動かす

Discord専用で使うなら、channelsにdiscordだけ書けばいい。gatewayはデフォルトのまま、authにAPIキーを入れて、agentsでモデルを指定する。5分もあれば動く構成だ。

パターン2:マルチチャンネル運用

Discord・LINE・Telegramを全部繋ぐパターン。channelsに3つとも定義するだけで、OpenClawが自動的にすべてのチャンネルを監視してくれる。エージェントの設定は共通なので、どのプラットフォームから来ても同じ品質で応答できる。

パターン3:開発用と本番用の分離

openclaw.jsonを環境ごとに用意しておくパターンだ。開発環境では安いモデルを使い、本番ではハイエンドモデルを使う。設定ファイルを切り替えるだけで済むので、運用が楽になる。

トラブルシューティング

「JSONパースエラー」が出る

一番多いのがJSONの文法ミスだ。カンマの付け忘れ、余計なカンマ(末尾カンマ)、ダブルクォートの閉じ忘れ。jsonlintなどのツールでチェックするのが確実だ。

「認証エラー」でAPIに繋がらない

authセクションのAPIキーが正しいか確認しよう。コピペ時に余計なスペースが入っていることがある。また、APIキーの有効期限や残高も要チェックだ。

ボットがメッセージに反応しない

channelsセクションのトークンが正しいか、ボットが対象のサーバーやグループに参加しているか、権限が足りているかを順番に確認する。Discordの場合、Message Content Intentの有効化を忘れがちだ。

ゲートウェイが起動しない

portが他のプロセスと被っていないか、hostの指定が環境に合っているか確認する。openclaw gateway statusコマンドでデーモンの状態をチェックできる。ログを見れば原因が特定しやすい。

まとめ

openclaw.jsonは4つのセクションさえ理解すれば、それほど複雑ではない。gateway・auth・channels・agentsの役割を把握して、自分の用途に合わせてカスタマイズしていこう。

設定ファイルを触るのが面倒、そもそもサーバーを用意するのが大変——そんな人にはClawDockがおすすめだ。面倒なセットアップなしで、ブラウザからOpenClawをすぐに使い始められる。設定ファイルのことを気にせず、AIエージェントの活用に集中したい人はぜひチェックしてみてほしい。

コメント