※当サイトはアフィリエイトプログラムに参加しています
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エージェントの活用に集中したい人はぜひチェックしてみてほしい。


コメント