Deep Dive • 8分で読める
アーキテクチャ
OpenClaw のゲートウェイ中心設計、ネットワークモデル、およびエージェント実行ループの詳細。
OpenClaw はゲートウェイ中心のアーキテクチャを中心に構築されており、単一の長時間実行プロセスがすべてのチャネル接続を管理し、統一されたコントロールプレーンを提供します。この設計は信頼性、セキュリティ、シンプルさを保証します。
Tutorial.step
コアコンポーネント
ゲートウェイ
ゲートウェイ(<code>openclaw gateway</code>)は OpenClaw の心臓部です。これは次のことを行う単一プロセスです。
- すべてのチャネル接続を管理します(WhatsApp、Telegram、Discord など)。
- ポート <strong>18789</strong>(デフォルト)で WebSocket コントロールプレーンを提供します。
- セッション管理とルーティングを処理します。
- コントロール UI / ダッシュボードを提供します。
- ビジュアルインターフェースの <strong>Canvas ホスト</strong> を管理します。
- エージェント間の通信を調整します。
安定性のヒント
ホストごとに 1 つのゲートウェイを使用することをお勧めします。WhatsApp Web セッションを所有できる唯一のプロセスであり、安定性を確保し、競合を防ぎます。
Tutorial.step
ネットワークモデル
OpenClaw は最大のセキュリティのために <strong>ループバックファースト</strong> アプローチを使用します。
- <strong>デフォルト:</strong> ゲートウェイ WebSocket は <code>ws://127.0.0.1:18789</code>(ローカルホストのみ)で実行されます。
- <strong>リモートアクセス:</strong> SSH トンネル、Tailscale、または認証トークンを使用した <code>--bind</code> の構成を使用して、安全な外部アクセスを実現します。
- <strong>Canvas ホスト:</strong> 高性能ノード WebView のために <code>/__openclaw__/canvas/</code> を提供するポート <strong>18793</strong> 上の専用 HTTP ファイルサーバー。
アーキテクチャ概要
WhatsApp / Telegram / Discord / iMessage (+ plugins)
│
▼
┌───────────────────────────────────────────────┐
│ Gateway │ ws://127.0.0.1:18789
│ (Single Source of Truth) │
│ │ http://<host>:18793
└───────────────────────┬───────────────────────┘
│
┌─────────────────────┼─────────────────────┐
│ │ │
▼ ▼ ▼
OpenClaw Agent (RPC) CLI Tool Native Apps (iOS/macOS)
│
▼
┌───────────────────────────────────────────────┐
│ Gateway │ ws://127.0.0.1:18789
│ (Single Source of Truth) │
│ │ http://<host>:18793
└───────────────────────┬───────────────────────┘
│
┌─────────────────────┼─────────────────────┐
│ │ │
▼ ▼ ▼
OpenClaw Agent (RPC) CLI Tool Native Apps (iOS/macOS)
Tutorial.step
エージェントループ
エージェントループは、メッセージがどのように処理されるかを定義するコア処理サイクルです。
- <strong>メッセージ受信:</strong> 接続されたチャネルが着信メッセージを受信します。
- <strong>セッションルーティング:</strong> メッセージは適切なセッション(メイン、グループ、または分離)にルーティングされます。
- <strong>コンテキスト読み込み:</strong> エージェントは関連する履歴コンテキスト、メモリ、ツールを読み込みます。
- <strong>LLM 処理:</strong> 構造化されたリクエストが LLM プロバイダー(Claude、GPT など)に送信されます。
- <strong>ツール実行:</strong> エージェントは必要に応じてツール(ブラウザ、ファイルシステム、シェル)を自律的に実行します。
- <strong>レスポンスストリーミング:</strong> 最終的なレスポンスがリアルタイムでチャネルにストリーミングされます。
- <strong>メモリ更新:</strong> 会話がインデックス化され、ワークスペースに保存されます。
Tutorial.step
セッションモデル
セッションタイプ
- <strong>メインセッション:</strong> すべての直接メッセージを共有コンテキストに折りたたみます。
- <strong>グループセッション:</strong> 各グループチャットが分離されたワークスペースを取得します。
- <strong>分離セッション:</strong> 特定のセキュリティまたは一時的なニーズのために作成されます。
セッション機能
- <strong>アクティベーションモード:</strong> 応答性を制御します(メンションのみ、常時など)。
- <strong>キューマネジメント:</strong> 同時リクエストの効率的な処理。
- <strong>サンドボックス:</strong> マルチテナント環境のオプションの Docker 分離。
Tutorial.step
ワークスペース構造
OpenClaw は <strong>ファイルシステムファースト</strong> です。すべてが設定とワークスペースディレクトリに保存されます。
File Hierarchy
~/.openclaw/openclaw.json # Configuration file ~/.openclaw/credentials/ # Secure channel tokens ~/.openclaw/workspace/ # Workspace Root ├── AGENTS.md # Agent persona definitions ├── SOUL.md # Core personality & logic ├── TOOLS.md # Custom tool definitions ├── skills/ # Plugin/Skill directory └── sessions/ # Active conversation states
Tutorial.step
マルチエージェントルーティング
OpenClaw は次の条件に基づいた高度なメッセージルーティングをサポートします。
- <strong>チャネル:</strong> WhatsApp と Discord で異なるエージェントを使用します。
- <strong>アカウント/ピア:</strong> 特定の連絡先を専用のペルソナにルーティングします。
- <strong>ワークスペース分離:</strong> 各エージェントは独自のディレクトリとスキルセットにロックできます。
Tutorial.step
ストリーミングとプロトコル
ストリーミングとチャンキング
OpenClaw は <strong>ブロックストリーミング</strong> を使用して、知覚される速度のためにチャンクでレスポンスを送信します。また、<strong>Telegram ドラフトストリーミング</strong> もサポートしており、入力インジケーターとドラフトをリアルタイムで表示します。
通信プロトコル
- <strong>WebSocket:</strong> リアルタイム配信とコントロール UI 更新用。
- <strong>RPC(リモートプロシージャコール):</strong> エージェントによるツール呼び出しとコンテキストクエリに使用されます。