Contents
OpenClaw のアーキテクチャと最新機能
OpenClaw は Claude 系列の大規模言語モデル(LLM)をコアに据え、プランナーがタスクフローを自動生成し、永続メモリで状態を保持するエージェントです。本節では Claude をベースとしたプランニング機構、永続メモリの実装詳細、そして 2024 年 4 月に公開された langclaw プラグインの概要を解説します。各項目には公式ドキュメントや信頼できる第三者レビューへのリンクを付与し、事実確認が容易になるよう配慮しました。
Claude 基盤とプランナー主導フロー
OpenClaw は Anthropic が提供する Claude 3.5 Sonnet を推論エンジンとして利用しています。Claude の高度な指示理解能力と安全性に加え、独自実装したプランナーが自然言語の目的記述から最適なツール呼び出し列を導き出します。
| 項目 | 内容 |
|---|---|
| コア LLM | Claude 3.5 Sonnet(Anthropic)[公式ページ] |
| プランナーの役割 | ユーザー指示 → 意図解析 → ツールチェーン自動生成 |
| 安全ガード | 出力制御ポリシー、ツール実行前検証 |
具体的なフロー例
ユーザーが「今月の売上レポートを作成して Slack に送信」と指示した場合、プランナーは以下のステップを自動構築します(図は公式ドキュメントの抜粋):
- データベースから売上データを取得
- CSV へ変換
- テンプレートに埋め込みレポート作成
- Slack API に投稿
この一連の流れはすべて Claude の推論結果として組み立てられ、OpenClaw が 「何をしたいか」だけを書くだけで実装レベルのフローが生成されます[OpenClaw Docs – Planner]。
永続メモリ機構
OpenClaw はエージェントごとに 永続的なベクトルストア を提供し、過去の対話やタスク結果を長期保存・類似検索できるよう設計されています。実装は以下のコンポーネントで構成されます。
| コンポーネント | 役割 |
|---|---|
| Vector DB | FAISS(ローカル)または Pinecone(クラウド)[Pinecone Docs] |
| メタデータ層 | SQLite に保存されたタイムスタンプ・タグ情報 |
| 検索 API | search_memory(query, top_k=5) で類似チャンクを取得 |
ケーススタディ:カスタマーサポートエージェント
Skywork が公開した比較ガイド(2024 年 10 月)では、OpenClaw エージェントが過去 30 日間の問い合わせ履歴をベクトル化し、類似検索で即座に解答候補を提示できたと報告されています[Skywork Comparison Guide (PDF)]。この結果は 永続メモリが業務効率化に直結する ことを実証しています。
2024 年 4 月リリースの langclaw 連携
2024 年 4 月、OpenClaw は langclaw プラグイン を正式リリースし、LangChain のツールやチェーンを OpenClaw スキルとして直接呼び出せるようになりました。プラグインは Python パッケージ openclaw-langclaw として PyPI に公開されており、以下の手順で有効化できます。
|
1 2 3 4 |
pip install openclaw-langclaw # 設定ファイルに追記 echo "langclaw: true" >> ~/.openclaw/config.yaml |
実装サンプル
公式 GitHub リポジトリ(openclaw/langclaw‑example)に掲載されている最小構成は次の通りです。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# file: skills/search_and_summarize.py import json, sys from langchain.chains import RetrievalQA from langchain.llms import OpenAI from langchain.vectorstores import FAISS from langchain.embeddings import OpenAIEmbeddings def run(query: str) -> dict: # ベクトルストアの初期化(FAISS をローカルに保存) vectorstore = FAISS.load_local("data/faiss_index", OpenAIEmbeddings()) retriever = vectorstore.as_retriever() qa_chain = RetrievalQA.from_chain_type( llm=OpenAI(model_name="gpt-4o"), chain_type="stuff", retriever=retriever, ) answer = qa_chain.run(query) return {"answer": answer} if __name__ == "__main__": payload = json.load(sys.stdin) result = run(payload["query"]) print(json.dumps(result)) |
OpenClaw のスキル定義は openclaw.yaml に以下のように記述します。
|
1 2 3 4 5 6 |
skills: - name: SearchAndSummarize description: "LangChain の検索・要約チェーンを実行するスキル" handler: python entrypoint: skills/search_and_summarize.py |
ユーザーが「最新の業界レポートを要約して」と指示すると、プランナーは自動的に SearchAndSummarize スキルを組み込み、Claude が最終回答を整形します。このハイブリッド連携により 「高レベル抽象化」+「細粒度チェーン設計」 の両方の利点が享受できます。
LangChain のコア概念とエコシステム
LangChain は Chains・Agents・Tools の三層構造で LLM アプリケーションを組み立てるフレームワークです。本節では各概念の役割、主要コンポーネント、そして実装時に直面しやすい学習コストについて解説します。公式ドキュメントとコミュニティ事例へのリンクを明示し、読者がすぐに試せる情報を提供します。
Chains・Agents・Tools の概要
LangChain は「ツール(Tool)」という最小単位と、それらを組み合わせた「チェーン(Chain)/エージェント(Agent)」でフローを構築します。これにより外部 API 呼び出しやデータベース操作など、LLM が単体では実行できないタスクをプログラム的に制御できます。
| コンポーネント | 代表例 |
|---|---|
| Tool | SearchAPI, Calculator, ZapierAction |
| Chain | LLMChain → PromptTemplate → OutputParser |
| Agent | ZeroShotAgent, ConversationalReactAgent |
公式チュートリアルは「Chains の基本」セクションでコード例が掲載されています[LangChain Docs – Chains]。
サンプルフロー(公式例)
|
1 2 3 4 5 6 7 8 9 |
from langchain import LLMChain, PromptTemplate from langchain.llms import OpenAI prompt = PromptTemplate.from_template("質問: {question}\n答え:") chain = LLMChain(llm=OpenAI(model="gpt-4o"), prompt=prompt) result = chain.run({"question": "東京の天気は?"}) print(result) |
この例では PromptTemplate がツールとして機能し、LLM に対する入力を整形しています。
主要コンポーネント(Retrievers・Vector Stores・Tool Integrations)
LangChain のエコシステムはベクトル検索、永続化、外部サービス連携といった実務向け機能が充実しています。以下に代表的な実装を抜粋します。
| カテゴリ | 主な実装例 | 参考リンク |
|---|---|---|
| Retriever | FAISS, Pinecone, Weaviate |
[LangChain Retrievers] |
| Vector Store | Chroma, Milvus, Qdrant |
[Vector Stores Overview] |
| Tool Integration | Zapier, Slack SDK, Google Drive API |
[LangChain Tools] |
Skywork が 2024 年 11 月に公開した比較ガイドでは、LangChain がサポートするベクトルストアは 10 種類以上、ツール連携は 20 件以上 に上ると報告されています[Skywork Comparison Guide (PDF)]。
フロー設計の柔軟性と学習曲線
LangChain の自由度が高い分、学習コストは中〜上級レベルになることが多いです。以下に一般的なハンドリング時間の目安を示します(Qiita 記事 2024‑03‑15 を参照)。
| フローの複雑さ | 推定学習時間 |
|---|---|
| 基本的な LLMChain の作成 | 約 2〜3 時間 |
| 複数ツールを組み合わせた Chain | 約 6〜8 時間 |
| マルチステップ Agent(ReAct パターン) | 1〜2 日 |
ポイント:コンポーネントごとのインターフェースとパラメータ設定に慣れるまで、テスト駆動で小さく試すことが推奨されます。公式ドキュメントの「Debugging」ページにはデバッグユーティリティがまとめられています[LangChain Debugging]。
主要比較項目表
以下の表は 2024 年 12 月時点で公表されている情報を基に、OpenClaw と LangChain を主要観点で対比したものです。出典はすべて Skywork の比較ガイド(PDF)と各公式リポジトリです。
| 項目 | OpenClaw | LangChain |
|---|---|---|
| コアな役割 | 実行可能 AI エージェント(Deploy) | 開発フレームワークとしての構築(Build) |
| 対象ユーザー層 | 非エンジニア・業務自動化志向企業 | ソフトウェアエンジニア・AI デベロッパー |
| 学習曲線 | 低〜中(プランナーが自動生成) | 中〜高(チェーン設計とツール統合が必須) |
| 拡張性 | langclaw プラグインで外部チェーン呼び出し可 | 豊富なコンポーネントを無制限に組み合わせ可能 |
| デプロイ形態 | クラウド・オンプレミス共通 API、永続メモリ付き | 任意の環境(Docker, Serverless, 自前サーバ) |
| ライセンス/コスト | Apache 2.0 + 商用プランあり [OpenClaw Pricing] | MIT ライセンス(無料)+有料 SaaS ツールは別途費用 |
| コミュニティ規模 | GitHub ★1.3k、Discord 活発(2024‑04 現在) | GitHub ★9.7k、Slack・Discord 多数のサブプロジェクト |
| 永続メモリ | 標準装備(ベクトル DB 統合) | 必要に応じて外部 Vector Store を自前で構築 |
| ハイブリッド連携 | langclaw により LangChain スキル呼び出し可 | プラグイン側から OpenClaw API 呼び出し可能(非公式) |
ハイブリッド活用パターンと実装例
OpenClaw の自動プランニングと LangChain のツールエコシステムを組み合わせることで、導入スピードとカスタマイズ性の両立が可能です。ここでは具体的な手順とメリット・デメリットを示します。
LangChain ツールを OpenClaw スキルに組込む手順
- LangChain 側でツール/チェーンを作成(例:検索+要約チェーン)
- OpenClaw に langclaw プラグインを有効化(
~/.openclaw/config.yamlにlangclaw: trueを追記) - スキル定義ファイルに LangChain 呼び出しロジックを書き込む
- エージェントからスキルを呼び出す(プランナーが自動で組み込み)
完全サンプルコード
以下は GitHub に公開中のリポジトリ openclaw/langclaw-demo から抜粋した、実稼働可能な最小構成です。
|
1 2 3 4 |
git clone https://github.com/openclaw/langclaw-demo.git cd langclaw-demo pip install -r requirements.txt |
search_and_summarize.py
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import json, sys from langchain.chains import RetrievalQA from langchain.llms import OpenAI from langchain.vectorstores import FAISS from langchain.embeddings import OpenAIEmbeddings def run(query: str) -> dict: # ベクトルストアのロード(FAISS をローカルに保存済みと仮定) vs = FAISS.load_local("data/faiss_index", OpenAIEmbeddings()) retriever = vs.as_retriever() qa = RetrievalQA.from_chain_type( llm=OpenAI(model_name="gpt-4o"), chain_type="stuff", retriever=retriever, ) answer = qa.run(query) return {"answer": answer} if __name__ == "__main__": payload = json.load(sys.stdin) result = run(payload["query"]) print(json.dumps(result)) |
openclaw.yaml(スキル定義)
|
1 2 3 4 5 6 |
skills: - name: SearchAndSummarize description: "LangChain の検索・要約チェーンを実行するスキル" handler: python entrypoint: skills/search_and_summarize.py |
この状態で OpenClaw エージェントに「最新の AI 業界レポートを要約して」と指示すると、プランナーは自動的に SearchAndSummarize スキルを組み込み、Claude が結果を整形して返答します。
メリットとデメリット
| 項目 | メリット | デメリット |
|---|---|---|
| 開発スピード | OpenClaw のプランナーがフロー生成を自動化 → 初期実装が数時間で完了 | LangChain 側のチェーン作成にコード量が必要 |
| 再利用性 | 既存 LangChain ツールをスキル化でき、複数エージェントで共有可能 | スキルインターフェースのバージョン管理が増える |
| 保守コスト | Claude が全体フローを統括 → ロジック変更はプランナー側だけで済むケースあり | デバッグ時に「Claude ⇆ LangChain」の二重スタックになるためトレースが複雑 |
| 拡張性 | 新しいベクトルストアや API を LangChain 側で追加すれば即座に OpenClaw から利用可 | ランタイム依存(Python 環境)と OpenClaw コンテナイメージの同期が必要 |
実務での選定基準とユースケース
導入判断は プロジェクト規模・既存資産・永続メモリ要件・保守性 の四軸で評価すると実務的です。以下に具体的な指標と、代表的ユースケース別の推奨構成を示します。
プロジェクト規模別の適合性
| 規模 | 主な要件 | 推奨アーキテクチャ |
|---|---|---|
| 小規模(PoC・社内ツール) | 素早い実装、非エンジニアでも操作可能 | OpenClaw 単体(プランナー自動生成) |
| 中規模(部門横断的業務自動化) | カスタムツール統合・永続メモリが必要 | OpenClaw + langclaw ハイブリッド |
| 大規模(全社 AI プラットフォーム) | 高度なフロー制御、多様データソース、CI/CD パイプライン | LangChain 主導+OpenClaw API で UI/エージェント層を実装 |
代表ユースケースと推奨構成
| ユースケース | 必要機能 | 推奨構成 |
|---|---|---|
| カスタマーサポート自動化 | 過去問い合わせ履歴検索、リアルタイム応答、エスカレーション制御 | OpenClaw 永続メモリ + langclaw で LangChain の高度検索チェーンを呼び出す |
| 社内ナレッジベース | ドキュメントベクトル検索、権限フィルタ、長期保存 | LangChain の VectorStore(Pinecone)+ OpenClaw エージェントが自然言語インターフェースを提供 |
| RPA 連携 | 外部システム API 呼び出し、状態遷移管理、エラーハンドリング | LangChain Tool ラッパーで RPA(UiPath/Automation Anywhere)を実装、OpenClaw が全体フローのオーケストレーション |
選定時チェックリスト
- 既存コード資産:Python 中心なら LangChain、ノーコード志向なら OpenClaw。
- 永続メモリ要件:長期保存が必須 → OpenClaw の標準装備を優先(LangChain でも外部構築は可能)。
- 保守性:頻繁にフロー変更が予想される場合、プランナーの自動生成で保守コスト削減。
- ベンダーロックイン:長期的に自前運用したいなら MIT ライセンスの LangChain が安全。
導入第一歩とリソースまとめ
実際にハイブリッド構成を試すには、公式リポジトリからサンプルプロジェクトを取得し、ローカル環境で動作確認するのが最短です。
-
リポジトリクローン
bash
git clone https://github.com/openclaw/openclaw.git
cd openclaw -
依存関係インストール(Python 3.10+ 推奨)
bash
pip install -r requirements.txt -
ハイブリッドサンプル実行
samples/hybrid_langclaw/ディレクトリのrun.shを実行すると、OpenClaw エージェントが LangChain のSearchAndSummarizeスキルを呼び出すデモが開始します。 -
公式ドキュメントとチュートリアル
- OpenClaw 公式サイト: https://openclaw.ai/(導入ガイド PDF がダウンロード可)
-
LangChain ドキュメント: https://python.langchain.com/docs
-
コミュニティ参加
- Discord (OpenClaw) →
discord.gg/openclaw - Slack (LangChain) → 公式ページから招待リンク取得
上記ステップを踏むことで、自社プロジェクトに最適なフレームワークがどちらか を実体験しながら判断できるはずです。
本稿の情報はすべて2024年12月時点の公式リソースと第三者評価(Skywork Comparison Guide)に基づいています。最新のバージョンや価格体系は各公式サイトをご確認ください。