LangChain(ラングチェーン)
LLMアプリ開発の定番フレームワーク。プロンプト・モデル・ツール・メモリ・検索を抽象化したコンポーネントを連結(チェーン)し、RAGやエージェントを構築できる。Python/JS対応のエコシステム中核。
概要
LangChainは、LLMアプリ開発の定番フレームワークです。2022年に登場し、プロンプト・モデル・ツール・メモリ・検索(Retriever)といった要素を抽象化したコンポーネントとして提供し、それらを連結(チェーン)してRAGやエージェントを構築できます。LCEL(LangChain Expression Language)により処理を宣言的にパイプ連結でき、Python/JavaScript両対応。数百のLLM・ベクトルDB・外部ツール統合を備え、監視ツールLangSmithやグラフ実行のLangGraphを擁するエコシステムの中核として、LLMアプリ開発のデファクトスタンダードとなっています。
主な特徴・仕組み
- コンポーネント抽象化: LLM/Retriever/Tool/Memoryを共通IFで扱う
- LCEL:
|演算子で処理を宣言的に連結、ストリーミング対応 - 豊富な統合: OpenAI/Anthropic/各種ベクトルDB/API
- エージェント: ツール呼び出しで自律的にタスク遂行
- LangSmith連携: トレース・評価・監視
- Python/JS対応: 両言語でほぼ同等のAPI
スペック比較表
| 項目 | LangChain | LlamaIndex | LangGraph |
|---|---|---|---|
| 主眼 | 汎用LLMアプリ | データ/RAG特化 | グラフ制御 |
| 抽象度 | 高い | 中 | 低い(明示制御) |
| エージェント | 対応 | 対応 | 状態機械で精密 |
| エコシステム | 最大 | RAG充実 | LangChain系 |
具体例・対応製品
RAGチャットボット、社内ドキュメント検索、ツール連携エージェントなど幅広い用途で使われます。OpenAI・Anthropic・ローカルLLM(Ollama)を切り替えて統合でき、PineconeやChroma等のベクトルDBと組み合わせてRAGを数十行で構築できます。複雑な制御が必要ならLangGraphへ発展させます。
選び方・注意点
抽象度が高く素早く構築できる反面、内部挙動が見えにくく、複雑なエージェント制御ではデバッグが難しくなります。バージョン更新でAPIが変わることがあり、langchain-coreなどパッケージ分割の理解が必要です。精密な状態制御が必要ならLangGraph、データ中心ならLlamaIndexの併用が有効です。
関連用語との違い
LlamaIndexがデータ取り込み・インデックス・RAGに特化するのに対し、LangChainは汎用的なLLMアプリ全般をカバーします。LangGraphはLangChain系で、チェーンより低レベルな状態機械(グラフ)で精密にエージェントを制御する補完的存在です。
よくある質問(FAQ)
Q1: LCELとは何ですか?
A: 処理を|で連結する宣言的記法で、ストリーミングや並列実行、フォールバックを簡潔に書けるLangChainの中核機能です。
Q2: LlamaIndexとどちらを使うべき? A: 汎用LLMアプリやエージェントはLangChain、データ取り込み・RAG特化ならLlamaIndexが得意です。併用も一般的です。
Q3: 本番運用に向きますか? A: LangSmithで監視・評価でき本番利用例も多いですが、複雑な制御はLangGraphで明示化するとデバッグ性が上がります。
まとめ
- LLMアプリ開発のデファクトな汎用フレームワーク
- LCELでRAG・エージェントを宣言的に構築
- LangGraph/LangSmithを擁する最大のエコシステム