この記事の要点
- LangChain: LLM アプリ開発のためのフレームワーク、Python と JS / TS の両方で利用可
- 主要コンポーネント: Models / Prompts / Chains / Agents / Memory / Indexes (Retrievers)
- LCEL (LangChain Expression Language): パイプ
|演算子でチェーンを宣言的に組み立て - LangSmith: 公式デバッグ・観測ツール、本番アプリのトレース・評価必須
- LangGraph: 状態管理付きの Agent / マルチステップワークフロー構築
- 代替: LlamaIndex (RAG 特化), Haystack (検索特化), Semantic Kernel (Microsoft)
1LangChain とは
LangChain は、LLM (大規模言語モデル) を使ったアプリケーション開発のためのオープンソースフレームワークです。OpenAI / Anthropic / Google / ローカル LLM など多様なモデルを統一的なインターフェースで扱え、RAG・Agent・チェーン処理など複雑なワークフローを少ないコードで構築できます。
2022 年末の ChatGPT 登場と同時期に Harrison Chase 氏が公開して以来、LLM アプリ開発のデファクトスタンダードとなっており、GitHub Star 数も生成 AI 関連 OSS としてはトップクラス。Python 版とJS / TS 版が並行開発されています。
2LangChain Python と LangChain JS
| LangChain Python | LangChain JS / TS | |
|---|---|---|
| 用途 | データ処理・バッチ・研究 | Web アプリ・Edge・Serverless |
| 機能の網羅性 | ★ 最新機能が先行 | 主要機能はカバー |
| パッケージ名 | langchain | @langchain/core 他 |
| 環境 | FastAPI / Streamlit / Jupyter | Next.js / Cloudflare Workers / Vercel |
3セットアップ・準備
# Python 版
pip install langchain langchain-openai langchain-anthropic langchain-community langchain-text-splitters
# JS / TS 版
npm install @langchain/core @langchain/openai @langchain/anthropic langchain
4最初のコード — Hello World
Python (LCEL)
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
# モデル
llm = ChatOpenAI(model="gpt-5")
# プロンプトテンプレート
prompt = ChatPromptTemplate.from_messages([
("system", "あなたはプロの日本語コピーライターです。"),
("user", "{product} のキャッチコピーを 3 つ考えて")
])
# パーサ
parser = StrOutputParser()
# チェーン構築(LCEL)
chain = prompt | llm | parser
# 実行
print(chain.invoke({"product": "低糖質おやつ"}))
JS / TS
import { ChatOpenAI } from "@langchain/openai";
import { ChatPromptTemplate } from "@langchain/core/prompts";
import { StringOutputParser } from "@langchain/core/output_parsers";
const llm = new ChatOpenAI({ model: "gpt-5" });
const prompt = ChatPromptTemplate.fromMessages([
["system", "あなたはプロの日本語コピーライターです。"],
["user", "{product} のキャッチコピーを 3 つ考えて"]
]);
const parser = new StringOutputParser();
const chain = prompt.pipe(llm).pipe(parser);
console.log(await chain.invoke({ product: "低糖質おやつ" }));
5主要コンポーネント
| コンポーネント | 役割 | 主なクラス |
|---|---|---|
| Models | LLM / Chat / Embedding モデルの統一 IF | ChatOpenAI, ChatAnthropic, OpenAIEmbeddings |
| Prompts | プロンプトテンプレート・Few-shot | ChatPromptTemplate, FewShotPromptTemplate |
| Output Parsers | LLM 出力を構造化(JSON / Pydantic) | JsonOutputParser, PydanticOutputParser |
| Chains | 複数ステップの組合せ | LCEL (| 演算子) |
| Agents | ツールを使う自律 AI | create_agent |
| Memory | 会話履歴の保持 | ConversationBufferMemory(v1 では langchain-classic へ移動) |
| Indexes / Retrievers | RAG のためのデータ取得 | VectorStoreRetriever |
| Document Loaders | PDF / HTML / Notion 等から取込 | PyPDFLoader, WebBaseLoader |
| Text Splitters | 長文をチャンク化 | RecursiveCharacterTextSplitter |
6LCEL (LangChain Expression Language)
LCEL は LangChain 0.1 以降の標準チェーン記述方法。Unix パイプのように | で要素を繋いで、データの流れを宣言的に表現します。
LCEL の利点
- シンプル: 1 行でチェーンが書ける
- 非同期対応:
ainvoke()/astream()を自動で生成 - バッチ実行:
batch()で並列処理 - ストリーミング:
stream()でトークン単位の逐次出力 - LangSmith 統合: 自動でトレース取得
7実践コード例
例 1: RAG をシンプルに構築
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
from langchain_community.document_loaders import PyPDFLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_core.output_parsers import StrOutputParser
# 1. PDF を読み込んでベクトル化
docs = PyPDFLoader("manual.pdf").load()
chunks = RecursiveCharacterTextSplitter(chunk_size=1000).split_documents(docs)
vectordb = Chroma.from_documents(chunks, OpenAIEmbeddings())
retriever = vectordb.as_retriever()
# 2. RAG チェーン
prompt = ChatPromptTemplate.from_template(
"以下の文脈を踏まえて回答してください。\n文脈: {context}\n質問: {question}"
)
rag_chain = (
{"context": retriever, "question": RunnablePassthrough()}
| prompt
| ChatOpenAI(model="gpt-5")
| StrOutputParser()
)
print(rag_chain.invoke("経費精算の手順は?"))
例 2: Agent (Tool Use)
from langchain_openai import ChatOpenAI
from langchain.agents import create_agent
from langchain_core.tools import tool
@tool
def get_weather(city: str) -> str:
"""指定した都市の現在の天気を返す"""
# 実際は外部 API を呼ぶ
return f"{city} の天気: 晴れ、気温 22℃"
@tool
def calculator(expression: str) -> str:
"""簡単な数式を評価する"""
return str(eval(expression))
tools = [get_weather, calculator]
llm = ChatOpenAI(model="gpt-5")
agent = create_agent(llm, tools=tools)
print(agent.invoke({"messages": [{"role": "user", "content": "東京の天気を教えて、それから 23+45 を計算"}]}))
例 3: 構造化出力(JSON / Pydantic)
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from pydantic import BaseModel, Field
class CustomerInfo(BaseModel):
name: str = Field(description="顧客の名前")
age: int = Field(description="年齢")
email: str = Field(description="メールアドレス")
llm = ChatOpenAI(model="gpt-5").with_structured_output(CustomerInfo)
prompt = ChatPromptTemplate.from_messages([
("user", "次の自己紹介から情報を抽出: {text}")
])
result = (prompt | llm).invoke({
"text": "私は山田太郎、35歳、メールは yamada@example.com です"
})
print(result.name, result.age, result.email)
# → CustomerInfo オブジェクトとして取得
8LangSmith でのデバッグ
LangSmith は LangChain 公式の観測・デバッグ・評価プラットフォーム。本番運用するなら必須レベル:
- トレース: チェーン内の各ステップの入出力・所要時間を可視化
- プロンプトデバッグ: 実際にどんなプロンプトが投げられたか確認
- データセット: 良い回答・悪い回答を蓄積して評価セット化
- 評価: GPT-4 等を Judge にして自動評価
- A/B テスト: プロンプト変更の影響を統計的に検証
# 環境変数を設定するだけで自動でトレース送信される
export LANGSMITH_TRACING=true
export LANGSMITH_API_KEY="..."
export LANGSMITH_PROJECT="my-rag-app"
9LangGraph(状態管理)
LangGraph は LangChain チームが開発するグラフベースの Agent / ワークフローフレームワーク。複雑な状態遷移・サイクル・ヒューマン・イン・ザ・ループが必要なケースで威力を発揮:
- 各ノードが LLM やツールを呼び出す
- 条件分岐で次のノードを動的に決定
- 状態 (State) をグラフ全体で共有
- チェックポイント機能で中断・再開可能
- 本格的なマルチステップ Agent / ワークフローを構築可能
10代替フレームワーク
| フレームワーク | 得意分野 | 特徴 |
|---|---|---|
| LlamaIndex | ★ RAG / 検索 | RAG に特化、インデックス管理が強力 |
| Haystack | 検索 / NLP | deepset 社製、エンタープライズ実績 |
| Semantic Kernel | .NET / C# | Microsoft 製、Azure と相性良 |
| DSPy | プロンプト自動最適化 | Stanford 発、プログラムでプロンプトを記述 |
| AutoGen | マルチエージェント | Microsoft Research 製、複数 Agent 協調 |
| CrewAI | マルチエージェント | 役割ベースの Agent オーケストレーション |
11注意点・落とし穴
- 頻繁な破壊的変更: バージョン間で API が変わることが多い、ピン留め推奨
- 抽象化のオーバーヘッド: シンプルな用途では生 API のほうが早い
- パッケージ分割: 0.1 以降
langchain-core/langchain-openai等に分割、混乱しやすい - ドキュメントの古さ: ネット上の古いサンプルが現行 API で動かないことがある、公式ドキュメント優先
- Agent API は v1 で刷新: 旧
AgentExecutor/create_react_agentは langchain-classic へ移動、新規はcreate_agentを使う。細かな制御が必要なら LangGraph - コスト管理: チェーンを多段に組むとトークン消費が膨れる、LangSmith でモニタリング
12関連リンク
子ページ
子ページはありません
同階層のページ
- OpenAI API 入門 — Python / Node.js から GPT-5 を呼ぶ
- Anthropic Claude API 入門 — Messages API の基本と実装
- RAG (Retrieval-Augmented Generation) 入門
- LangChain 入門 — LLM アプリ開発フレームワーク
人気ページ
- 1 AIツール初心者向け使い方ガイド|ChatGPT・Claude・Midjourney
- 2 Suno 使い方完全ガイド|AI 楽曲生成 / 歌詞付き / 商用利用 / 日本語対応
- 3 医療業界での AI 活用法|診療記録・画像診断・論文要約をAIで効率化
- 4 Stable Diffusion ローカル環境構築|AUTOMATIC1111 / SDXL / 無料・商用可
- 5 Runway 使い方完全ガイド|Gen-3 / Text-to-Video / Image-to-Video
- 6 Ollama 使い方完全ガイド|ローカル LLM / Llama / Mistral / Phi を 1 コマンドで
- 7 Cline 使い方完全ガイド|VS Code 拡張 OSS / 自律エージェント
- 8 Microsoft Copilot 使い方完全ガイド|Office / Windows / 365 Copilot
- 9 NotebookLM 使い方完全ガイド|Google AI 知識ベース / 音声ポッドキャスト生成
- 10 RAG 入門|検索 + LLM の仕組み・実装・ベクトル DB 完全ガイド
最近更新/作成されたページ
- 動画生成 AI 比較|Runway・Kling・Veo・Luma・Pika の料金と選び方(Sora は終了) 2026-10-03 10:29:07
- 画像生成 AI 比較|ChatGPT Images・Midjourney・Firefly・Stable Diffusion・FLUX の料金と選び方 2026-10-03 10:29:07
- ChatGPT Operator は終了|後継と今ブラウザ操作 AI を使う方法(2026 年版) 2026-10-03 10:29:06
- Claude API 入門|Messages API・Prompt Caching・Tool Use の使い方 2026-10-03 10:15:56
- AI 倫理完全ガイド|バイアス・ディープフェイク・プライバシー・企業ガイドライン 2026-10-03 10:15:05
- AI 著作権完全ガイド|学習データ・生成物の権利・商用利用チェックリスト 2026-10-03 10:15:05
- RAG 入門|検索 + LLM の仕組み・実装・ベクトル DB 完全ガイド 2026-10-03 10:15:05
- 医療業界での AI 活用法|診療記録・画像診断・論文要約をAIで効率化 2026-10-03 10:15:05
- 教育現場での AI 活用法|教師向け教材作成・採点・個別最適化 2026-10-03 10:15:05
- 人事・HR のための AI 活用法|採用・研修・評価をChatGPT/Claudeで効率化 2026-10-03 10:15:05
- 営業職向け AI 活用ガイド|メール / リード調査 / 提案書 / 議事録の効率化 2026-10-03 10:15:05
- 無料 AI ツール 30 選|2025 年版 / チャット/画像/動画/音声/開発 2026-10-03 10:15:05
- AIツール初心者向け使い方ガイド|ChatGPT・Claude・Midjourney 2026-10-03 10:15:05
- LangChain 入門|LCEL / Agent / RAG / LangSmith 完全ガイド 2026-10-03 10:15:04
- OpenAI API 入門|Python / Node.js で GPT-5 を呼ぶ完全ガイド 2026-10-03 10:15:04