OpenClawSkills
GitHub
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)
Tutorial.step

エージェントループ

エージェントループは、メッセージがどのように処理されるかを定義するコア処理サイクルです。

  1. <strong>メッセージ受信:</strong> 接続されたチャネルが着信メッセージを受信します。
  2. <strong>セッションルーティング:</strong> メッセージは適切なセッション(メイン、グループ、または分離)にルーティングされます。
  3. <strong>コンテキスト読み込み:</strong> エージェントは関連する履歴コンテキスト、メモリ、ツールを読み込みます。
  4. <strong>LLM 処理:</strong> 構造化されたリクエストが LLM プロバイダー(Claude、GPT など)に送信されます。
  5. <strong>ツール実行:</strong> エージェントは必要に応じてツール(ブラウザ、ファイルシステム、シェル)を自律的に実行します。
  6. <strong>レスポンスストリーミング:</strong> 最終的なレスポンスがリアルタイムでチャネルにストリーミングされます。
  7. <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> エージェントによるツール呼び出しとコンテキストクエリに使用されます。