OpenClawの仕様書を丸ごと読みました。エンタープライズでOpenClawを構築する際に、多くのチームが見落とすこと

Dev.to / 2026/4/11

💬 オピニオンDeveloper Stack & InfrastructureIdeas & Deep AnalysisTools & Practical Usage

要点

  • この記事は、OpenClawを導入するチームが通常は全アーキテクチャの一部しか実装せず、その結果、実運用における制約に対応するために存在するエンタープライズに不可欠なコンポーネントを見落としてしまうと主張しています。
  • OpenClawの中核となる「Fundamental Flip(基本の反転)」という考え方を説明します。ユーザーがAIのもとへ行くのではなく、AIがWhatsApp、Telegram、Slackといったチャネルを通じてユーザーの元へ“来る”形にし、さらにユーザーのマシン上のファイルから得た文脈を伴って動作します。
  • OpenClawがなぜ作られたのか—手作業の「プロンプト作成→コピペ」ワークフローを置き換えるためだった—について背景を示し、リリース後にGitHubで急速に注目を集めた点にも触れます。
  • 著者らは、PDPAへのコンプライアンスや、100人超のユーザーにまたがるHRデータベース統合など、エンタープライズ/規制対応の環境で残りのアーキテクチャを完成させたと述べています。そして「欠けている70%」がなぜ重要なのかを明らかにします。
  • 本記事は、OpenClawを「チャットボット」だけではなく8層構造のシステムとして位置づけ、エンタープライズで拡張する前に、各層の固有の役割を理解する必要性を強調しています。

OpenClawから始めるほとんどのチームは、実際に必要とされる完全なアーキテクチャのうち、わずか30%しか実装しません。私たちは残りを実装しました——なぜ残りの70%が存在するのかが、まさに明らかになるエンタープライズの文脈で。

すべてを始めた“反転”

Peter Steinbergerは、より良いチャットボットを作りたいからOpenClawを構築したのではありません。儀式にうんざりしていたからです。ブラウザを開く、プロンプトを入力する、待つ、結果をコピーする、そして繰り返す。PSPDFKitの創業者として——オーストリアのPDFソフトウェア会社で、彼はそれを約1億ユーロ(約100 million euro)規模まで成長させた人物です——彼自身がヘビーユーザーで、このワークフローは消耗するものでした。

彼の答えが、OpenClawのドキュメントで「The Fundamental Flip(基本的な反転)」と呼ばれるものです。あなたがAIのところへ行くのではなく、AIがあなたのところへ来る、という考え方です。AIはあなたのWhatsApp、Telegram、Slackの中に存在します。あなたが寝ている間にも動きます。タイムゾーン、プロジェクト、嗜好を知っています。それらはすべて、あなた自身のマシン上のファイルとして書かれているからです。

"ChatGPTが『AIは会話できる』と世界が気づいた瞬間だとすると、OpenClawは『AIは行動できる』と世界が気づいた瞬間です。"

この思想があるからこそ、OpenClawはローンチから数週間でGitHubスター145,000を獲得し、いまでは300,000を超えており、GitHub上でも最大級のオープンソースリポジトリの一つに位置しています。ですが同時に、それが原因で、これを使おうとするほとんどのエンタープライズチームが壁に突き当たります。基本的な反転は、1人の1台のマシンを前提に設計されました。人事DB、PDPA(個人情報保護法)への準拠、100人超のユーザーを扱う、規制のあるタイのエンタープライズ環境へスケールさせるのは、まったく別の問題です。

私たちは過去数か月、そのためのものを構築してきました。

OpenClaw Architecture

完全なOpenClawアーキテクチャを理解する

私たちは何かを変える前に、仕様書をすべて読みました。

そして、これは私たちが想定していた以上に重要でした。OpenClawは単なる会話型エージェントではありません。8つの明確なレイヤーから成るアーキテクチャで、それぞれが特定の問題を解決します。ほとんどのチームが最初に着手するのは見える部分——エージェントループ、ツール呼び出し、メッセージング統合——で、残りは置き去りにします。その結果、デモでは動いても本番では壊れます。

実際に、完全なアーキテクチャには何が含まれているのか:

Gatewayは、127.0.0.1:18789で動作するNode.jsのデーモンで、localhostのみにバインドされ、システム内のあらゆるイベントのための単一の入口として機能します。セッショントラスト、チャネルの正規化、レート制限、そしてHeartbeat Daemon——ユーザープロンプトがなくても、30分ごとにシステムを起こして未処理の作業がないか確認するタイマー——を扱います。これが、OpenClawを受け身ではなく能動的にする機能です。ほとんどのチームはこれを完全にスキップします。

Execution Engineは、ReAct Loopを実装しています。plan(計画)→ assemble context(コンテキストの組み立て)→ infer(推論)→ intercept tool calls(ツール呼び出しの介入)→ execute(実行)→ update(更新)→ repeat(繰り返し)で完了するまで回します。重要な設計ルールは、Orchestratorがツールを直接呼び出さないことです。route_to_agentによって、Specialized Agentsへ委譲します。実行はExecution Engineの中に留まります。この分離は単なるスタイルの違いではありません。オーケストレーションロジックに触れることなく、ツールを追加・差し替え・サンドボックス化できるようにするためのものです。

Bootstrap Filesは、エージェントのアイデンティティ、行動ルール、ツール利用パターン、ユーザーの嗜好、長期メモリを定義する8つのMarkdown文書です。これらは、特定の順序でシステムプロンプトへ注入されます。Toolingは常に最初になります。仕様書がPrimacy Effect(最初に提示された情報がより強く重みづけされるという効果)と呼ぶ理由によるものです。LLMは、システムプロンプトの末尾よりも先頭のほうをより強く重みづけします。仕様書では、Bootstrap Filesに1,000〜1,500トークン、Toolingセクションに2,000〜5,000トークンを割り当てています。これにより、コンテキストウィンドウ全体に対するオーバーヘッドを5〜15%に抑え、残りを実際の作業のために確保します。

Skills Systemは、OpenClawアーキテクチャの中でも最も強力でありながら、しばしば見落とされがちな部分の一つです。SKILL.mdファイルは、スキルの名前と説明を定義します。システムプロンプトに現れるのは、利用可能なスキルのコンパクトなリストだけです。エージェントがドメイン知識を必要とする場合、read_skill()を呼び出して、必要になった時点で関連コンテンツをオンデマンドで読み込みます。たとえば、医者が病院にハリソンの原則が棚にあることを知っていて、必要なときに特定のプロトコルを取り出すように、毎回すべての教科書をあらゆる手順に持ち込むのではなく、必要な部分だけを取ってくるのです。

このオンデマンドの知識読み込みこそが、基本的な反転を、単純な個人利用を超えて、現実のエンタープライズのワークロードへとスケールさせることを可能にします。

ほとんどのチームはエージェントループとReActループを実装します。Bootstrap Fileシステムを完全に実装するチームはほぼありません。さらに、Skills Systemを実装するところはもっと少ないです。これらは、エンタープライズ利用で最も重要な2つの機能です。

私たちが作ったもの:エンタープライズ向けに仕立てたOpenClaw

私たちが構築したシステム——OpenClaw MCP Integration——は、従来の意味でのフォークではありません。私たちはOpenClawをGitHubから取り込み、そのうえで、OpenClawであることを支えるほとんどすべてを意図的に削除しました。Gatewayはなくなり、Heartbeat Daemonもなくなり、8つのBootstrap Filesのうち6つが取り除かれています。残ったのは2つのファイル——SOUL.mdとTOOLS.md——と、コアとなる推論の思想だけです。Orchestratorは委譲して実行しません。アイデンティティはモデルの中ではなくファイルに存在します。ツールは明示的で、前提として扱われません。

社内ドキュメントに、私たちはこう書きました。「これは元の“子”でも“コピー”でもない。OpenClawの思想を取り上げて、元のものが解決するように設計されていなかった問題領域に適用したときに起きること、それです。」

私たちはそれをフォークではなく仕立て直したOpenClawと呼びます。なぜなら、フォークと呼ぶと、意図的に置き去りにされた部分の大きさを誤って伝えることになるからです。

削ぎ落としたコアに加えて私たちが投入したものは次のとおりです。SSEとStreamable HTTPの間で自動フォールバックするマルチトランスポートMCP Client、専門化された各エージェントに対するドメインごとのSOUL.md、そしてエージェント間ルーティングのための明示的なAgentRegistryです。そこで動かすドメイン——人事データベース、PDPA準拠の法令、Google Workspace——は、元の仕様書が想定していなかったコンテキストです。

デプロイしたエージェント:

  • pdpa-agent — PDPA法に関する質問への回答と、実在するナレッジグラフに対する罰則(ペナルティ)の照会
  • db-agent — 人事(HR)MSSQLデータベースに対する読み取り専用クエリ
  • rag-agent — 社内のナレッジベース横断でのドキュメント検索
  • dbwriter-agent — 実行前に明示的な承認を要求し、確認ゲートで安全にデータを書き込む
  • gworkspace-agent — Gmail、Drive、Docs、Sheets、Calendarの操作

各エージェントには、それぞれ独自のSOUL.md、TOOLS.md、skills/フォルダがあります。これは仕様書にあるBootstrap Filesの設計を、ドメインごとのコンテキストに拡張して直接適用したものです。db-agentのSOUL.mdは、INSERTは決して行わず、SELECTしかできないことを知っています。pdpa-agentのSOUL.mdは、数値を述べる前に必ずpdpa_get_penaltyを呼び出す必要があることを知っています。

Skills System:ほとんどの人がスキップする理由、そしてスキップすべきではない理由

私たちが最初に取り組んでいた問題は、112,000トークンを消費するHRの問い合わせで、誤った回答が返ってきたことでした。エージェントは雇用形態の列について「engineer」と推測しましたが、その列には、これまでに見たことのないタイ語の値が格納されていました。違いを知る手段がなかったため、情報をゼロから探るようにデータベースのスキーマを調べました――情報_schemaクエリのツール呼び出しが5回――それでもなお、値を誤ったままのSQL文を構築してしまいました。

Skills Systemはこれを直接解決します。実装では次のように動作します:

agents/db/
├── SOUL.md
├── TOOLS.md
└── skills/
    └── hr-database-schema/
        ├── SKILL.md          ← YAMLフロントマター:name + description
        ├── join-patterns.md
        └── tables/
            ├── employees.md
            ├── performance_reviews.md
            └── ...(計9つのテーブル)

db-agent のシステムプロンプトには、これだけが含まれています:

## 利用可能なスキル
- hr-database-schema: HRのデータベース構造(TestDB/MSSQL)— テーブル、カラム、JOINパターン
- hr-documents: HRポリシードキュメントとITマネージャーの求人告知

詳細が必要なときは read_skill(skill_name) を呼び出してください。

エージェントがHRの問い合わせに遭遇すると、スキーマ概要を読み込むために read_skill("hr-database-schema") を呼び出します。そして、特定の employees テーブルの構造が必要な場合は、さらに1階層深く掘ります:
read_skill("hr-database-schema", "tables/employees.md")
。推測は決してしません。読み込みます。

トークンが28%少ない。スキーマ探索のループはゼロ。幻覚(ハルシネーション)による値はなし。

PDPAエージェントでも同様の改善が見られました。Skills Systemに紐づく制約を根拠づける(grounding)前は、私たちの29ケースのテストスイートで精度は51%でした。実装後は約88%です。エージェントは罰金額の捏造を拒否するようになり、常にまず知識グラフをクエリします。

ほとんどの実装投稿が見落としているセキュリティ上の現実

私たちは、ほとんどのOpenClawの書き物が避けていることを、はっきりと言う必要があります。

2026年3月下旬の時点で、OpenClaw周辺のセキュリティ状況には、コミュニティで追跡されている156件のCVE、GitHub上の255件超のセキュリティ勧告、82カ国にまたがって露出している135,000件超のインスタンス、そしてリモートでのコード実行を直接可能にする脆弱性を持つ15,000件のインスタンスが含まれています。

最も深刻だったのはCVE-2026–25253です。ワンクリックRCEであり、不正なURLによってOpenClawのControl UIが認証トークンを攻撃者のサーバーへ漏えいさせ、マウスを1回クリックするだけでホストマシンへの完全なアクセスが可能になります。2026年3月、Antiy CERTはClawHub上で、APIキー、認証トークン、そしてMEMORY.mdの内容を裏でこっそり持ち出し(exfiltration)しながらも、表面上は正しく動作する1,184個の悪意あるスキルを特定しました――約12パッケージに1つの割合です。

これは、OpenClawの思想を使わない理由ではありません。実装を「エンタープライズ対応」と呼ぶ前に、実際に何がハードニングとして必要なのかを理解する理由です。

仕様の Trust Level モデルは助けになります:メインセッションはフルアクセス、グループおよびDMセッションはデフォルトでDockerコンテナ内でサンドボックス化されます。Tool Policy Precedence モデルは、限定的のみ(narrow-only)の原則に従います――後からのポリシーは、以前に設定された権限を「制限」することはできますが、「拡張」することは決してできません。NVIDIAはNemoClawをGTC 2026で導入した際、この点を率直に認めました。元のOpenClawの信頼モデルは個人ユーザー向けに設計されており、エンタープライズ環境ではありません。そのため、企業文脈で安全にするには外部でのハードニングが必要です。

私たちのハードニング手順は次のとおりです:ゲートウェイは127.0.0.1のみにバインド、Dockerへのデプロイを --read-only --cap-drop=ALL として、外部アクションはすべて承認モードを必須にし、クエリアジェントには読み取り専用のDBアクセスのみを許可、そしてPDPAの根拠づけルールをスキルファイルに埋め込みます――バージョン管理され、監査可能なMarkdownドキュメントとしてであり、システムプロンプトの断片に埋もれたものではありません。

仕様が正しかった点

数か月にわたり、このシステムを本番環境で構築し、テストし、デバッグした結果、OpenClaw仕様の設計判断は、私たちが想定していた以上に堅牢であることが分かりました。

プライマシー効果は本物です。ツール定義をシステムプロンプトの先頭に移すことで、ツールの誤用が定量的に減りました。

Bootstrap File Minimalism の目標――コンテキスト予算のオーバーヘッドを5〜15%に抑える――は達成可能ですが、規律が必要です。新しいエージェントを追加するたびに、必要そうなものをそのシステムプロンプトの冒頭に前置きしたくなる誘惑がありました。仕様の制約は、何が本当にアイデンティティ(SOUL.md)なのか、何が参照資料(skills)なのかを考えさせてくれました。この区別は重要です。

Orchestrator-as-router パターンは、新しい専門エージェントを追加する必要が出た最初の瞬間に、その価値を証明しました。レジストリに gworkspace-agent を追加し、そのドメインを定義すると、オーケストレーターはすぐにそこへルーティングを開始しました。他には何も変えていません。

仕様が明確であるのに、実装としては本当に難しい唯一の領域があります。それは、ドメインが進化していく中で Bootstrap Files を最新の状態に保つことです。6つのエージェントがあるシステムでは、「どのファイルがどこに注入されるのか」を追跡するには、ツールだけでは強制できないプロセス上の規律が必要になります。

次に何が来るか

バージョン8では、会話履歴の圧縮によるセッション永続化、ホワイトリスト化されたexecインターフェースを備えた組み込みツール、そしてエージェントごとに AGENTS.md を SOUL.md から分離――といった機能が追加されます。これは、現在のv7実装よりも仕様の推奨により忠実です。

Heartbeat Daemon もロードマップに載っています。これは、私たちのユースケースに対して The Fundamental Flip を完成させる機能です。つまり、PDPAのコンプライアンス期限を監視したり、HRのサマリーレポートを予定どおりに送ったりするエージェントが、依頼されるのを待たずに動くようにするものです。

正直な結論

OpenClawの思想には、本格的なエンタープライズ級エージェントのための完全な設計が含まれています。企業が必要とするほとんどのパターン――ドメイン分離、オンデマンドでの知識ロード、信頼レベルのサンドボックス化、コンテキスト予算の規律――はすでにドキュメントにあります。

ギャップは思想そのものにはありません。ギャップは、それを実際のエンタープライズ環境まで「そのまま」連れていくほうが、オリジナルをダウンロードして組み始めるよりも難しい、という点です。そして、ときには、その思想を真剣に受け止めることは、「何を置き去りにするべきか」を正確に理解することでもあります。

エンタープライズ導入を計画しているなら、SOUL.md(アイデンティティとトーン)とAGENTS.md(運用ルールと安全の境界)の違いを理解してください。コンテキストウィンドウが、誰も見ていない3時AMに埋まり始める前に、Bootstrap File minimalism がなぜ重要かを理解してください。

思想はすでに答えを持っています。多くの人がそれを十分に突き詰めていないだけです。

"ライブラリの奴隷になるのをやめろ。自分自身のアーキテクチャの支配者になれ。"