mcpField
F
framework-selection

framework-selection

github.com/langchain-aiエージェントワークフロー1.3k7.7k 回インストール3 日前に更新
リポジトリ

framework-selection について

framework-selection は、LangChain、LangGraph、Deep Agents から選ぶための判断ガイドです。ワークフローの複雑さに応じたフレームワークの選択と、各レイヤーの組み合わせ方を開発者に示します。

主な機能

  1. 01タスク要件に基づくフレームワーク選択
  2. 02各フレームワークの機能とトレードオフの比較
  3. 03選択後に参照するスキルの提示
  4. 04フレームワーク各レイヤーの組み合わせ方を解説

活用シーン

  1. 01エージェント開発開始前のフレームワーク選定
  2. 02単純なエージェントループと独自制御フローの選択
  3. 03計画、メモリ、委任の要否を判断
  4. 04Deep Agents のオーケストレーションと LangGraph のワークフローを併用

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/langchain-ai/langchain-skills --skill framework-selection

インストール後、Claude Code で/framework-selectionを入力して読み込まれたか確認します。

詳細

LangChain、LangGraph、Deep Agents は競合する選択肢ではなく、**階層構造**になっています。それぞれが、その下のレイヤーを基盤としています。
┌─────────────────────────────────────────┐
│              Deep Agents                │  ← highest level: batteries included
│   (planning, memory, skills, files)     │
├─────────────────────────────────────────┤
│               LangGraph                 │  ← orchestration: graphs, loops, state
│    (nodes, edges, state, persistence)   │
├─────────────────────────────────────────┤
│               LangChain                 │  ← foundation: models, tools, chains
│      (models, tools, prompts, RAG)      │
└─────────────────────────────────────────┘

上位レイヤーを選んでも、下位レイヤーを使えなくなるわけではありません。Deep Agents 内で LangGraph のグラフを、両方の内部で LangChain のプリミティブを使用できます。

他のスキルを選んだり、エージェントのコードを書いたりする前に、あらゆるプロジェクトの最初にこのスキルを読み込んでください。 選択するフレームワークによって、次に呼び出す他のスキルが決まります。


判断ガイド

次の質問に順番に答えてください。

質問はい →いいえ →
タスクには、作業をサブタスクに分割すること、長時間のセッションにわたるファイル管理、永続メモリ、または必要に応じたスキルの読み込みが必要ですか?Deep Agents↓
タスクには、ループ、動的な分岐、並列ワーカー、Human-in-the-loop、カスタム状態など、複雑な制御フローが必要ですか?LangGraph↓
入力を受け取り、ツールを実行して結果を返す、単一目的のエージェントですか?LangChain(create_agent)↓
エージェントループを含まない、純粋なモデル呼び出し、チェーン、または検索パイプラインですか?LangChain(チェーン)—

フレームワークの概要

LangChain — タスクが限定的で自己完結している場合に使用

最適な用途:

  • 固定されたツールセットを使う単一目的のエージェント
  • RAG パイプラインとドキュメントに関する質問応答
  • モデル呼び出し、プロンプトテンプレート、出力の解析
  • エージェントのロジックが単純な、素早いプロトタイプ作成

あまり適さないケース:

  • エージェントが多くのステップにわたって計画を立てる必要がある
  • 状態を複数のセッションにわたって保持する必要がある
  • 制御フローが条件分岐または反復処理を含む

次に呼び出すスキル: langchain-models、langchain-rag、langchain-middleware

LangGraph — 制御フローを自分で管理する必要がある場合に使用

最適な用途:

  • 分岐ロジックやループを含むエージェント(例:正解するまでの再試行、振り返り)
  • 中間結果に応じて異なる経路をたどる、複数ステップのワークフロー
  • 特定のステップでの Human-in-the-loop による承認
  • 並列のファンアウト/ファンイン(MapReduce パターン)
  • セッション内で呼び出しをまたいで保持される永続状態

あまり適さないケース:

  • 計画、ファイル管理、サブエージェントへの委任を任せたい(代わりに Deep Agents を使用)
  • シンプルなエージェントで十分なほど、ワークフローが単純

次に呼び出すスキル: langgraph-fundamentals、langgraph-human-in-the-loop、langgraph-persistence

### Deep Agents — タスクの範囲が広く、多面的な場合に使用

最適な用途:

  • 作業を ToDo リストに分解する必要がある長期的なタスク
  • セッションをまたいでファイルの読み込み、書き込み、管理が必要なエージェント
  • サブタスクを専門のサブエージェントに委任する場合
  • 必要に応じてドメイン固有のスキルを読み込む場合
  • 複数のセッションをまたいで保持される永続メモリ

適さない用途:

  • 単一目的のエージェントで十分な単純なタスク
  • グラフのすべてのエッジを正確に手動で制御する必要がある場合(LangGraph を直接使用してください)

ミドルウェア — 組み込みで拡張可能:

Deep Agents には、すぐに使える組み込みのミドルウェア層が用意されています。実装するのではなく、設定して使用します。以下はあらかじめ接続されています。さらに独自のものを追加することもできます。

ミドルウェア提供する機能常時有効?
TodoListMiddlewarewrite_todos ツール — エージェントが複数ステップのタスクを計画し、進捗を管理します✓
FilesystemMiddlewarels、read_file、write_file、edit_file、glob、grep ツール✓
SubAgentMiddlewaretask ツール — 名前付きサブエージェントに作業を委任します✓
SkillsMiddlewareスキルディレクトリから必要に応じて SKILL.md ファイルを読み込みますオプトイン
MemoryMiddlewareStore インスタンスを介してセッション間で長期メモリを保持しますオプトイン
HumanInTheLoopMiddleware割り込みを行い、機密性の高いツール呼び出しの前に人間の承認を求めますオプトイン

次に呼び出すスキル: deep-agents-core、deep-agents-memory、deep-agents-orchestration


レイヤーの組み合わせ

フレームワークはレイヤー化されているため、同じプロジェクト内で組み合わせられます。最も一般的なパターンは、Deep Agents を最上位のオーケストレーターとして使用し、専門的なサブエージェントには LangGraph を利用することです。
組み合わせる場合
シナリオ推奨パターン
メインエージェントには計画機能とメモリが必要だが、あるサブタスクではグラフを正確に制御する必要があるDeep Agents オーケストレーター → LangGraph サブエージェント
専門的なパイプライン(例:RAG、リフレクションループ)を、より広範なエージェントから呼び出すツールまたはサブエージェントとしてラップした LangGraph グラフ
高レベルの調整を行いながら、特定のドメインでは低レベルのグラフを使用するDeep Agents + サブエージェントとしての LangGraph コンパイル済みグラフ
実際の仕組み

LangGraph のコンパイル済みグラフは、Deep Agents 内のサブエージェントとして登録できます。つまり、厳密に制御された LangGraph ワークフロー(例:検索と検証のループ)を構築し、それを名前付きサブエージェントとして Deep Agents の task ツールに渡せます。Deep Agents オーケストレーターは、グラフの内部構造を気にすることなく、そのサブエージェントに処理を委任します。

LangChain のツール、チェーン、リトリーバーは、LangGraph のノードと Deep Agents のツールの両方で自由に使用できます。これらは、あらゆるレベルで共有される構成要素です。


クイックリファレンス

LangChainLangGraphDeep Agents
制御フロー固定(ツールループ)カスタム(グラフ)管理(ミドルウェア)
ミドルウェア層コールバックのみ✗ なし✓ 明示的、設定可能
計画✗手動✓ TodoListMiddleware
ファイル管理✗手動✓ FilesystemMiddleware
永続メモリ✗チェックポインターを使用✓ MemoryMiddleware
サブエージェントへの委任✗手動✓ SubAgentMiddleware
オンデマンドのスキル✗✗✓ SkillsMiddleware
Human-in-the-loop✗手動割り込み✓ HumanInTheLoopMiddleware
カスタムグラフエッジ✗✓ 完全に制御可能制限あり
セットアップの複雑さ低中低
柔軟性中高中

ミドルウェアは、LangChain(コールバック)と Deep Agents(明示的なミドルウェア層)に固有の概念です。LangGraph にはミドルウェアはありません。動作はノードとエッジに直接組み込みます。

コメント