アーキテクチャ
システム構成
OpenClaw Stack(VPS環境)は、大きく3つのコンポーネントで構成されています。
インターネットからのアクセス
|
TLS + BasicAuth(暗号化 + 認証)
|
+--------------+
| Caddy | ← リバースプロキシ(門番)
+--------------+
|
ループバック 127.0.0.1:18789(内部通信のみ)
|
+----------------+
| OpenClaw |
| Gateway Container | ← AIエージェントの実行環境
+----------------+
|
外部APIへのHTTPSリクエスト
|
+----------------+
| LLM API | ← テキスト生成AI
+----------------+
各コンポーネントの役割
Caddy(リバースプロキシ)
CaddyはインターネットとOpenClaw Gatewayの間に立つ「門番」です。
| 役割 | 説明 |
|---|---|
| TLS終端 | HTTPS通信の暗号化を処理(Let's Encryptで自動更新) |
| BasicAuth | ユーザー名とパスワードによる認証 |
| リバースプロキシ | 認証を通った通信だけをGatewayに中継 |
| アクセスログ | すべてのアクセスを記録 |
OpenClaw Gateway(AI実行環境)
GatewayがAIエージェントの本体です。
| 役割 | 説明 |
|---|---|
| エージェント実行 | AIエージェントのワークフローを実行 |
| ペアリング管理 | 許可されたデバイスの登録・管理 |
| トークン認証 | Gateway固有の認証トークンによるアクセス制御 |
| API中継 | LLM APIへのリクエストを管理 |
Dockerネットワーク
コンテナ同士は専用のDockerネットワーク(172.30.0.0/24)で接続されます。
- Caddy:
172.30.0.10 - Gateway:
172.30.0.20
このネットワークは外部からは見えません。
graph TD
Client["👤 クライアント"] --> Caddy["🔑 Caddy
TLS終端 + BasicAuth"] Caddy -->|"127.0.0.1:18789"| GW["🤖 OpenClaw Gateway
トークン認証 + デバイスペアリング"] GW --> Agent["🤖 エージェント
ワークフロー実行"] Agent -->|"HTTPS"| API["☁️ LLM API
テキスト生成"]
TLS終端 + BasicAuth"] Caddy -->|"127.0.0.1:18789"| GW["🤖 OpenClaw Gateway
トークン認証 + デバイスペアリング"] GW --> Agent["🤖 エージェント
ワークフロー実行"] Agent -->|"HTTPS"| API["☁️ LLM API
テキスト生成"]
責任境界
| 層 | 担う責任 | 障害時の影響 |
|---|---|---|
| Caddy(エッジ) | TLS・認証・ログ | アクセス不能(Gateway自体は健在) |
| Gateway(コントロールプレーン) | エージェント実行・認証・状態管理 | 全サービス停止 |
| LLM API(プロバイダー) | テキスト生成 | AIの応答不可(システム自体は稼働) |
データフロー
ユーザーがAIにリクエストを送ってから応答が返るまでの流れ:
- クライアント → Caddy: HTTPSリクエスト(TLS暗号化 + BasicAuth認証)
- Caddy → Gateway: 認証済みリクエストを
127.0.0.1:18789にプロキシ - Gateway: トークン・ペアリング認証 → エージェントにルーティング
- エージェント → LLM API: 外部APIに推論リクエスト
- 応答: LLM → エージェント → Gateway → Caddy → クライアント
重要: Gatewayは絶対に 0.0.0.0(全インターフェース)にバインドしてはいけません。Caddyだけが唯一の入口です。