このドキュメントについて
このドキュメント群は、OpenClawプロジェクトの内部アーキテクチャを解析し、
「パーソナルアシスタントとしての自律的振る舞い」がどのような仕組みで実現されているかを明らかにしたものです。
OpenClawは単なるチャットボットではなく、記憶を持ち、自律的にタスクを実行し、
複数のメッセージングプラットフォームで人間のように振る舞うパーソナルAIアシスタントです。
その仕組みを理解するために、以下の順序でドキュメントを読み進めることを推奨します。
推奨する読み進め方
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 |
| Gateway | Express + ws (WebSocket) |
| CLI | Commander.js |
| チャンネル | grammY (Telegram), Baileys (WhatsApp), discord.js, @slack/bolt, signal-cli |
| ブラウザ | Playwright |
| テスト | Vitest |