OpenClaw アーキテクチャ解析

パーソナルAIアシスタントの自律的振る舞いを支える仕組みの全体像

このドキュメントについて

このドキュメント群は、OpenClawプロジェクトの内部アーキテクチャを解析し、 「パーソナルアシスタントとしての自律的振る舞い」がどのような仕組みで実現されているかを明らかにしたものです。

OpenClawは単なるチャットボットではなく、記憶を持ち、自律的にタスクを実行し、 複数のメッセージングプラットフォームで人間のように振る舞うパーソナルAIアシスタントです。 その仕組みを理解するために、以下の順序でドキュメントを読み進めることを推奨します。

推奨する読み進め方

1全体概要とアーキテクチャ

プロジェクト構造、エントリポイント、起動シーケンス、主要コンポーネントの関係性。まずここから。

2システムプロンプトとアイデンティティ

AIの人格・性格がどう構築されるか。SOUL.md、IDENTITY.md、プロンプト組み立てフロー。

3エージェントランタイム(PI Embedded)

メッセージ処理ループ、ツール呼び出し、ストリーミング、コンパクション。中核の実行エンジン。

4メモリ・知識システム

長期記憶、セマンティック検索、Embedding、ハイブリッド検索。「覚えている」仕組み。

5自律的行動システム

Cron、ハートビート、Auto-Reply、フック、サブエージェント。能動的に動く仕組み。

6マルチチャンネルとツール

WhatsApp/Telegram/Discord等の抽象化、メッセージルーティング、50以上のツール群。

7コードリーディングガイド

ソースコードを読む際のエントリポイント、呼び出しフロー図、ファイル対応表。

OpenClawの「パーソナル」たる所以

解析の結果、OpenClawがパーソナルアシスタントとして機能するための核心的な仕組みは以下の5つに集約されます:

1. アイデンティティシステム — SOUL.md(人格定義)、IDENTITY.md(名前・キャラクター)、USER.md(ユーザー情報)により、 初回起動時の対話的なオンボーディングを経て、固有の人格を獲得する。
2. 永続的メモリ — SQLite + ベクトル検索 + FTS5によるハイブリッド検索で過去の会話や知識を記憶し、 時間的減衰(Temporal Decay)により「最近の記憶ほど鮮明」という人間的な特性を模倣する。
3. 自律的行動 — Cronスケジューラ、ハートビートシステム、サブエージェント生成により、 ユーザーの指示を待たずに能動的にタスクを実行し、結果を報告する。
4. マルチチャンネル統合 — WhatsApp、Telegram、Discord、Slack、Signal、iMessage等を統一的に扱い、 チャンネル横断でコンテキストを維持しながら、各プラットフォームに適応した振る舞いを行う。
5. 巨大なシステムプロンプト — 20以上のセクションからなるシステムプロンプトがランタイム情報、ワークスペースコンテキスト、 スキル、メモリ、ツール定義、チャンネル能力を統合し、エージェントの行動を精密に制御する。

アーキテクチャ概要図

┌─────────────────────────────────────────────────────────┐ │ ユーザー │ │ WhatsApp / Telegram / Discord / Slack / Signal / Web │ └───────────────────────┬─────────────────────────────────┘ │ ▼ ┌───────────────────────────────────────────────────────┐ │ Gateway Server │ │ (WebSocket + HTTP コントロールプレーン) │ │ ws://127.0.0.1:18789 │ ├───────────────────────┬───────────────────────────────┤ │ │ │ │ ┌────────────┐ ┌────┴─────┐ ┌──────────────────┐ │ │ │ Channel │ │ Auto- │ │ Cron Service │ │ │ │ Plugins │ │ Reply │ │ (スケジューラ) │ │ │ └─────┬──────┘ └────┬─────┘ └───────┬──────────┘ │ │ │ │ │ │ │ └──────┬───────┴────────┬───────┘ │ │ │ │ │ │ ▼ ▼ │ │ ┌─────────────────────────────────────────────┐ │ │ │ PI Embedded Agent Runtime │ │ │ │ (メッセージ処理ループ + ツール実行) │ │ │ ├─────────────────────────────────────────────┤ │ │ │ System Prompt │ Identity │ Bootstrap Files │ │ │ ├───────────────┼──────────┼──────────────────┤ │ │ │ Tool System │ Memory │ Sub-Agents │ │ │ └─────────────────────────────────────────────┘ │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │ │ │ Sessions │ │ Hooks │ │ Skills │ │ │ │ (永続化) │ │ (イベント)│ │ (50+拡張機能) │ │ │ └──────────┘ └──────────┘ └──────────────────┘ │ └───────────────────────────────────────────────────────┘

技術スタック

カテゴリ技術
言語TypeScript (ESM)
ランタイムNode.js 22+
パッケージ管理pnpm / bun
AIプロバイダAnthropic (Claude Opus 4.6), OpenAI, Google Gemini 等
エージェントSDK@mariozechner/pi-agent-core, pi-coding-agent
メモリストレージSQLite + sqlite-vec (ベクトル検索) + FTS5
GatewayExpress + ws (WebSocket)
CLICommander.js
チャンネルgrammY (Telegram), Baileys (WhatsApp), discord.js, @slack/bolt, signal-cli
ブラウザPlaywright
テストVitest