LangChainとは
LangChain(読み方:ラングチェーン)とは、LLM(大規模言語モデル)を使ったアプリケーションやAIエージェントを素早く構築するためのオープンソースフレームワークのこと。プロンプト管理・ツール呼び出し・メモリ・チェイン構築・ベクトル検索などLLM開発でよく使う部品を共通インターフェースで提供し、Claude・OpenAI・Gemini・ローカルモデルを差し替え可能にします。
身近な例えで言うと、LangChainは「LLMアプリ用のWeb開発フレームワーク」です。Web開発でDjangoやRuby on Railsが定型処理を肩代わりするように、LangChainはRAG・エージェント・ツール統合といったLLMアプリの定型処理を実装済みコンポーネントで提供します。2026年現在はLangGraphを中心とするグラフベースのアーキテクチャと、deepagentsと呼ばれるエージェントハーネスが主流です。実務では、新規プロジェクトの立ち上げ時間が大幅に短縮できるのが重要なポイントです。
LangChainの読み方
ラングチェーン
ラング・チェイン
LangChainの仕組み
LangChainの中核思想は「LLM呼び出しを合成可能なコンポーネントとして扱う」ことです。プロンプトテンプレート・ツール・モデル・パーサーをすべてRunnableという共通インターフェースに統一し、|演算子でパイプライン状に繋げて使います。
LangChainの基本構造
主要コンポーネント
| コンポーネント | 役割 |
|---|---|
| langchain-core | 共通インターフェース(Runnable、メッセージ型、ツール定義) |
| langchain | 高水準のChainクラスとAgent定義 |
| LangGraph | ノード=処理、エッジ=遷移のグラフベース実行エンジン(推奨) |
| LangSmith | 実行トレース・評価・観測のSaaS(有償) |
| deepagents | 長時間タスク向けの「全部入り」エージェントハーネス |
| langchain-anthropic / -openai / -google | モデルプロバイダ別の実装(差し替え可能) |
| AgentEvals | エージェントの評価パッケージ(軌跡比較・LLM審判) |
LangGraphが推奨される理由
従来のChain中心の書き方は「直線的なパイプライン」には向きますが、エージェントのような条件分岐・ループ・人間チェックが混ざる処理には不向きでした。LangGraphはこれを有限状態機械のグラフとして記述する仕組みを提供し、永続的なチェックポイント、人間介入、サブエージェント生成といった本格的なエージェント機能をネイティブに扱えます。重要です。新規エージェント開発はLangGraphから始めるのが2026年の標準です。
deepagentsで何が変わったか
2025〜2026年に追加されたdeepagentsは、長時間タスク向けの「全部入り」ハーネスです。会話圧縮、仮想ファイルシステム、サブエージェント自動生成、ツール呼び出しループといった、これまで利用者が自分で組み立てていた要素を1コンポーネントに統合しました。Manusのような自律型エージェントを自前で組みたいチームの出発点として有効です。
LangChainの使い方・実例
基本的な使い方(Quick Start)
# インストール
pip install langchain langchain-anthropic
# 最小のChain例(プロンプト→Claude→出力)
from langchain_anthropic import ChatAnthropic
from langchain_core.prompts import ChatPromptTemplate
llm = ChatAnthropic(model="claude-sonnet-4-6")
prompt = ChatPromptTemplate.from_messages([
("system", "あなたはIT用語の解説者です。"),
("user", "{term}を3行で説明して"),
])
chain = prompt | llm
result = chain.invoke({"term": "Files API"})
print(result.content)
よくある実装パターン
パターンA: RAG(検索拡張生成)
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.vectorstores import Chroma
from langchain_anthropic import AnthropicEmbeddings
embeds = AnthropicEmbeddings()
docs = TextLoader("manual.txt").load()
splits = RecursiveCharacterTextSplitter(chunk_size=1000).split_documents(docs)
db = Chroma.from_documents(splits, embeds)
# Retrieverをchainに組み込む
retriever = db.as_retriever(search_kwargs={"k": 4})
rag_chain = (
{"context": retriever, "question": RunnablePassthrough()}
| prompt
| llm
)
向いているケース: 社内ナレッジQA、ドキュメント検索、FAQ自動応答。
避けるべきケース: 高頻度のリアルタイム推論(ベクトル検索のレイテンシが課題)。
パターンB: LangGraphでエージェントを組む
from langgraph.graph import StateGraph, END
from langgraph.prebuilt import ToolNode
def call_model(state):
return {"messages": [llm.invoke(state["messages"])]}
graph = StateGraph(dict)
graph.add_node("agent", call_model)
graph.add_node("tools", ToolNode(tools))
graph.add_conditional_edges("agent", lambda s: "tools" if needs_tool(s) else END)
graph.add_edge("tools", "agent")
graph.set_entry_point("agent")
app = graph.compile(checkpointer=...)
向いているケース: 長時間タスク、ツール呼び出しループ、人間介入が必要なフロー。
避けるべきケース: 単純な1往復のQ&A(過剰設計)。
アンチパターン: Chainを無計画に多段化する
# NG: 段数が多すぎてどこで失敗したか分からない
chain = prompt1 | llm | parse1 | prompt2 | llm | parse2 | prompt3 | llm | format
多段Chainは便利ですが、各段の入出力が型で守られないと、デバッグが急に難しくなります。重要です。実務ではLangGraphに移行して状態を可視化するか、各段をPydanticで型定義するのが推奨です。
LangChainのメリット・デメリット
メリット
- モデル抽象化:Claude/OpenAI/Geminiの差し替えが1行で済む
- 豊富なエコシステム:ベクトルDB・ツール統合・ローダーが多数提供
- LangGraph・deepagentsで本格エージェント:自前実装より遥かに早く形になる
- LangSmith連携:実行トレース・評価・コスト分析が標準で取れる
デメリット
- 抽象化の代償:内部挙動を把握するには学習コストがかかる
- 頻繁な仕様変更:APIが版を超えて変わることがある(特にChain→LangGraph移行期)
- 過剰設計の誘惑:単純な処理にもフレームワークを使いたくなる
- 軽量代替の存在:シンプルなRAGならフレームワーク不要のケースも
LangChainとLlamaIndex・DSPyの違い
LangChainと並んで語られるLLMフレームワークにLlamaIndex・DSPyがあります。それぞれ得意分野が違うので比較表で整理します。
| 観点 | LangChain | LlamaIndex | DSPy |
|---|---|---|---|
| 主目的 | 汎用LLMアプリ・エージェントフレームワーク | ドキュメント中心のRAG最適化 | プロンプト最適化を機械学習風に |
| コア抽象 | Runnable、Chain、LangGraph | Index、QueryEngine、Retriever | Module、Signature、Optimizer |
| エコシステム | 巨大(プロバイダ200以上) | 中規模(RAG特化) | 学術寄り、研究者中心 |
| 強み | 汎用性、本番向けエージェント | ドキュメントRAGの精度・性能 | プロンプト自動チューニング |
| 導入難度 | 中(ドキュメント豊富) | 低〜中 | 高(パラダイムが独特) |
| 観測ツール | LangSmith | LlamaCloud | MLflow統合 |
つまり「LangChainは汎用フレームワーク、LlamaIndexはRAGに特化、DSPyはプロンプト自動最適化」と覚えておけば混乱しません。重要です。実務ではLangChainを骨格にしつつ、必要に応じてLlamaIndexのRetrieverを取り込むハイブリッド構成も多用されます。
LangChainに関するよくある誤解
誤解1:「LangChainを使うと自動的にRAGの精度が上がる」
なぜそう誤解されるのか:「フレームワークを入れれば品質も上がる」という固定観念から、LangChain=高品質RAGと混同されがちです。背景には他のWebフレームワーク(Rails等)が「ベストプラクティス強制」で品質を上げる経験があります。
正しい理解:LangChainはRAG実装のひな形を提供しますが、検索精度を上げるのはチャンク戦略・埋め込みモデル・リランカー・評価の繰り返しです。LangChainを入れただけでは精度は変わらず、適切なチューニングが必要です。
誤解2:「LangChainを使えば本番運用に必要な機能はすべて揃う」
なぜそう誤解されるのか:オフィシャル機能が豊富なため、本番で必要な観測・評価・SLAも丸ごと揃うと混同されやすい背景があります。
正しい理解:実行トレース・評価・コスト管理はLangSmith(有償)を併用する前提です。LangChain単体では十分な観測性が得られず、Datadog・Honeycomb等との別途連携が必要なケースもあります。
誤解3:「2026年もChainが標準的な書き方」
なぜそう誤解されるのか:名前が「LangChain」なので、Chainクラスがメイン抽象だと混同されやすい理由があります。
正しい理解:2025〜2026年にかけてLangGraphが推奨アーキテクチャになりました。新規プロジェクトはLangGraphから始めるのが標準です。Chainは引き続きシンプルなパイプライン用途には残りますが、エージェント開発は基本LangGraph + deepagentsです。
実務での活用シーン
実務でLangChainが活躍するシーン:
- 社内ナレッジQA(RAG):規程・FAQ・マニュアルをベクトル化してClaudeで回答
- カスタマーサポート自動化:問い合わせ分類・FAQ参照・人間エスカレーション
- コーディングエージェント:ファイル読み書き・テスト実行・PR作成までをLangGraphで自走
- データ抽出パイプライン:PDFや画像からPydanticスキーマで構造化抽出
- マルチモデル比較:同一プロンプトをClaude・GPT・Geminiに同時投入し品質比較
LangChainに関するよくある質問(FAQ)
Q1. LangChainはどのモデルプロバイダに対応していますか?
Anthropic(Claude)、OpenAI(GPT)、Google(Gemini)、Cohere、Mistral、ローカルLlamaなど主要プロバイダに対応しています。langchain-anthropic、langchain-openai、langchain-googleなどのプロバイダ別パッケージをインストールして使います。
Q2. LangGraphとLangChainの関係は?
LangGraphはLangChainプロジェクトが提供するグラフベースの実行エンジンです。2025〜2026年以降、エージェント開発の推奨アーキテクチャとなりました。LangChainの上位互換ではなく、LangChainのRunnableなどコア抽象を内部で使う「補完関係」です。
Q3. LangChainを使うのは無料ですか?
LangChain本体(langchain、langchain-core、LangGraph)はオープンソースで無料です。観測・評価のSaaSであるLangSmithは有償(無料枠あり)。モデルAPI使用料は別途プロバイダに支払います。
Q4. LlamaIndexとLangChainを併用できますか?
はい。LangChainを骨格に、LlamaIndexのRetrieverやIndexをRAGの検索層として組み込むハイブリッド構成は実務で多用されます。両者は意図的に相互運用可能に設計されています。
Q5. Chain記法はもう使うべきではありませんか?
新規エージェント開発はLangGraphが推奨ですが、シンプルな1往復のRAGや変換パイプラインではChain記法(Runnable + |演算子)はまだ標準です。複雑な条件分岐・ループ・人間介入が必要になったらLangGraphへ移行するのが目安です。
まとめ
- LangChain(ラングチェーン)はLLMアプリ・エージェント構築のオープンソースフレームワーク
- 2026年はLangGraph(グラフ実行エンジン)とdeepagents(長時間タスク向けハーネス)が中心
- モデル抽象化でClaude/OpenAI/Gemini差し替えが1行で可能、エコシステムは200+プロバイダ
- LangSmith(有償SaaS)と合わせて実行トレース・評価・コスト分析を行うのが本番標準
- LlamaIndexはRAG特化、DSPyはプロンプト最適化と棲み分けがある
- 新規エージェント開発はLangGraphから始め、Chainは単純パイプラインのみに使う
参考文献・出典
📚 参考文献・出典
- ・LangChain「Documentation」 https://docs.langchain.com/oss/python/langchain/overview
- ・LangChain「GitHub repo」 https://github.com/langchain-ai/langchain
- ・LangChain「State of Agent Engineering」 https://www.langchain.com/state-of-agent-engineering
- ・LangChain「On Agent Frameworks and Agent Observability」 https://www.langchain.com/blog/on-agent-frameworks-and-agent-observability
- ・Morph「LLM Frameworks Compared 2026」 https://www.morphllm.com/llm-frameworks

































コメントを残す