はじめに
OpenClaw を初めて使う方は、さまざまなチャットアプリとAIモデルをどのように連携させているのか気になるかもしれません。その答えは、Gateway(ゲートウェイ)というコアコンポーネントにあります。公式ドキュメントでは OpenClaw を「チャットアプリとプログラミングエージェントを接続する Gateway ネットワーク」と位置づけており、Gateway はまさにこのネットワークのハブです。
本記事では、Gateway のコア概念から始めて、設定方法、起動パラメータ、実際の運用における重要な設定を詳しく解説します。
Gateway とは?
Gateway は OpenClaw のコアアーキテクチャ層で、すべてのメッセージの送受信、ルーティング、転送はこれを通じて行われます。「メッセージの中継ステーション」として理解するとわかりやすいでしょう。
チャットアプリ(WhatsApp / Telegram / Discord / ...)
↕
OpenClaw Gateway(シングルプロセス、マルチチャンネル)
↕
AIモデル(Claude / GPT / Ollama / ...)
Gateway の設計思想はシングルプロセス・マルチチャンネル——1つの Gateway プロセスを起動するだけで、すべてのチャットチャンネルの接続を同時に管理できます。これはデプロイがシンプルでリソース消費が少なく、同時に柔軟な拡張性も備えていることを意味します。
設定ファイルの場所
Gateway の設定は OpenClaw のメイン設定ファイルに記述します。デフォルトのパスは以下のとおりです。
| プラットフォーム | パス |
|---|---|
| Linux / macOS | ~/.config/openclaw/openclaw.json5 |
| Windows | %USERPROFILE%\.config\openclaw\openclaw.json5 |
| Docker | /app/config/openclaw.json5 |
環境変数でパスをカスタマイズすることも可能です。
export OPENCLAW_CONFIG=/path/to/your/openclaw.json5
Gateway コア設定
設定ファイルの gateway セクションを編集します。以下は完全な設定例です。
{
gateway: {
// リッスンポート、デフォルト 18789
port: 18789,
// リッスンアドレス
// "127.0.0.1" — ローカルのみアクセス可能(開発環境推奨)
// "0.0.0.0" — すべてのネットワークからアクセス可能(本番環境ではファイアウォールと併用)
host: "0.0.0.0",
// Dashboard アクセスパスワード
dashboardPassword: "your-strong-password",
// APIキー(外部システムから OpenClaw API を呼び出す際に使用)
apiKey: "your-api-key",
// リクエストタイムアウト(ミリ秒)、デフォルト120秒
timeout: 120000,
// 最大リクエストボディサイズ、メディアファイルアップロードの上限を制御
maxBodySize: "10mb",
// CORS クロスオリジン設定
cors: {
enabled: true,
origins: ["*"],
},
},
}
パラメータ早見表
| パラメータ | 型 | デフォルト値 | 説明 |
|---|---|---|---|
port |
number | 18789 | Gateway リッスンポート |
host |
string | "127.0.0.1" | リッスンアドレス |
dashboardPassword |
string | なし | Dashboard ログインパスワード |
apiKey |
string | なし | API認証キー |
timeout |
number | 120000 | リクエストタイムアウト(ms) |
maxBodySize |
string | "10mb" | 最大リクエストボディサイズ |
Gateway の起動
設定完了後、以下のコマンドで Gateway を起動します。
openclaw gateway --port 18789
設定ファイルでポートが既に設定されている場合は、省略形でも起動できます。
openclaw up
バックグラウンド実行:
openclaw up -d
起動後、Gateway は指定ポートでリッスンを開始し、有効化されたすべてのチャンネルに自動接続します。
アクセス制御
本番環境では、アクセス制御が非常に重要です。OpenClaw は多層のセキュリティメカニズムを提供しています。
IPホワイトリストとブラックリスト
security セクションでアクセス可能なIPアドレスを制限できます。
{
security: {
// 以下のIPのみアクセスを許可(空の場合は制限なし)
ipWhitelist: [
"192.168.1.0/24",
"10.0.0.5",
],
// 特定のIPをブロック
ipBlacklist: [
"203.0.113.50",
],
// リクエストレート制限
rateLimit: {
enabled: true,
maxRequests: 60,
windowMs: 60000,
},
},
}
チャンネルレベルのユーザー制限
各チャンネルでは、許可するユーザーやグループを個別に設定できます。Telegram を例にすると以下のようになります。
{
channels: {
telegram: {
enabled: true,
token: "your-bot-token",
// これらのユーザーIDのみ使用を許可
allowedUsers: [12345678, 87654321],
// これらのグループのみ許可
allowedGroups: [-100123456789],
},
},
}
この二重制御(Gateway レベル + チャンネルレベル)により、AIサービスへのアクセスをきめ細かく管理できます。
マルチチャンネルルーティング
Gateway の大きな特長はプラグイン式チャンネル拡張です。各チャットプラットフォームとの連携は独立したチャンネルプラグインとして実装され、Gateway が統一管理とメッセージルーティングを担当します。
{
channels: {
whatsapp: {
enabled: true,
phoneNumber: "+86138xxxx",
responseMode: "all",
},
telegram: {
enabled: true,
token: "your-bot-token",
responseMode: "mention",
},
discord: {
enabled: true,
token: "your-discord-token",
responseMode: "mention",
allowedChannels: ["general", "ai-chat"],
},
},
}
各チャンネルには異なる応答モードを設定できます。
"all":すべてのメッセージに返信"mention":@メンションされた場合のみ返信
マルチ Agent ルーティングとセッション分離
複数のAIモデルを設定している場合、Gateway はルールベースのマルチ Agent ルーティングをサポートします。異なるチャンネルを異なるモデルにルーティングでき、各チャンネルの会話コンテキストはデフォルトで相互に分離されます。
{
context: {
// 分離ポリシー
// "channel" — チャンネルごとに分離(デフォルト、推奨)
// "user" — ユーザーごとに分離(同一ユーザーがチャンネル間でコンテキストを共有)
// "global" — グローバル共有
isolation: "channel",
// コンテキストウィンドウサイズ
maxMessages: 50,
// コンテキスト有効期限(秒)
ttl: 3600,
},
}
セッション分離メカニズムにより、異なるチャンネル間の会話が互いに干渉しないことが保証されます。例えば、Telegram 上の会話が Discord に漏れることはなく、その逆も同様です。
メディアサポート
Gateway は画像、音声、ドキュメントなど、複数のメディアタイプをネイティブでサポートしています。ユーザーがチャットで画像を送信すると、Gateway はそれをビジョン機能をサポートするモデルに渡して処理します。
maxBodySize パラメータを調整することで、アップロードファイルのサイズ上限を制御できます。
{
gateway: {
// 大きなファイルを処理する必要がある場合は適宜増やす
maxBodySize: "25mb",
},
}
Web コントロールパネル
Gateway にはWeb Dashboard が内蔵されており、ブラウザからサービスの監視と管理が可能です。
openclaw dashboard
Dashboard は以下の機能を提供します。
- 各チャンネルのリアルタイム接続状態の確認
- メッセージ送受信統計の監視
- モデル呼び出し回数とToken消費量の確認
- リアルタイムログストリームの表示
Dashboard へのアクセスには dashboardPassword で設定したパスワードの入力が必要です。パスワードを設定していない場合は、本番環境では必ず追加することを推奨します。
設定の検証とトラブルシューティング
Gateway の設定を変更した後は、設定ファイルが正しいか事前に検証することを推奨します。
# 診断を実行し、設定と各コンポーネントの状態をチェック
openclaw doctor
# 設定ファイルの構文のみを検証
openclaw doctor --config-only
Gateway の起動後に問題が発生した場合は、ログを確認してトラブルシューティングを行います。
# リアルタイムログを確認
openclaw logs
# 特定チャンネルのログを確認
openclaw logs --channel telegram
まとめ
Gateway は OpenClaw の中核となるハブであり、その仕組みを理解することで、AIチャットサービスのデプロイと管理がよりスムーズになります。重要なポイントを振り返ります。
- シングルプロセス・マルチチャンネル:1つの Gateway プロセスですべてのチャットプラットフォーム接続を管理
- 設定の一元化:すべての設定を
openclaw.json5で統一管理 - 階層型セキュリティ:Gateway レベル + チャンネルレベルの二重アクセス制御
- セッション分離:マルチチャンネル間の会話コンテキストはデフォルトで相互独立
- プラグイン拡張:プラグインメカニズムで新しいチャットプラットフォームを柔軟に追加
最小構成から始めて、まず1つのチャンネルを動かし、徐々にチャンネルや高度な設定を追加していくことをお勧めします。