mcpField
F
framework-selection

framework-selection

github.com/langchain-aiエージェントワークフロー11960 回インストール10 週間前に更新
リポジトリ

framework-selection について

framework-selectionは、タスクや制御フローの要件に応じてLangChain、LangGraph、Deep Agentsを選ぶためのスキルガイドです。各レイヤーの組み合わせ方と、次に使うスキルも案内します。

主な機能

  1. 01フレームワーク選択ガイド
  2. 023つのフレームワーク層の解説
  3. 03フレームワーク併用の指針
  4. 04ミドルウェア機能の比較

活用シーン

  1. 01エージェント実装前のフレームワーク選択
  2. 02プロジェクトに必要な次のスキル選び
  3. 03Deep AgentsとLangGraphサブエージェントの併用

インストール

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

$npx skills add https://github.com/langchain-ai/skills-benchmarks --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-fundamentals、langchain-rag、langchain-middleware

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

最適な用途:

  • 分岐ロジックやループを持つエージェント(例:正しい結果が得られるまで再試行する、リフレクション)
  • 中間結果によって異なる経路に分岐する、複数ステップのワークフロー
  • 特定のステップでのhuman-in-the-loop承認
  • 並列のファンアウト/ファンイン(map-reduce パターン)
  • セッション内の呼び出し間での状態の永続化

あまり適さない用途:

  • 計画、ファイル管理、サブエージェントへの委任を任せたい場合(代わりに 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 にはミドルウェアはありません。動作はノードとエッジに直接組み込みます。

コメント