学習目標
- LLMアプリケーションをゼロから構築する際の課題を理解する
- LangChainとは何か、その核心的な価値を学ぶ
- LangChainエコシステム(LangChain、LangGraph、LangSmith)を探る
- LangChain v1.0の主要な変更点を理解する
- LangChainをシステムにインストールする
1.1 LLMアプリケーション構築の課題
GPT-4、Claude、GeminiなどのLarge Language Models(LLM)は、AIで可能なことを革新しました。しかし、これらのモデルを使用して本番対応のアプリケーションを構築するには、いくつかの課題があります:
異なるAPI] C2[プロンプト管理
テンプレートとバージョニング] C3[メモリと状態
会話履歴] C4[ツール統合
外部APIとデータ] C5[エラー処理
リトライとフォールバック] end C1 --> Problem[複雑で断片化したコード] C2 --> Problem C3 --> Problem C4 --> Problem C5 --> Problem style Problem fill:#e74c3c,color:#fff
フレームワークなしの場合
フレームワークなしでLLMアプリケーションを構築するには、以下が必要です:
- 複数のAPIを処理:各LLMプロバイダー(OpenAI、Anthropic、Google)は異なるAPI、認証方法、レスポンス形式を持つ
- プロンプトを手動で管理:テンプレート化、バージョン管理、プロンプトの組み合わせの標準的な方法がない
- メモリを自分で実装:会話履歴の追跡、コンテキストウィンドウの管理、トークン制限の処理
- ツール統合をゼロから構築:データベース、API、外部サービスへの接続
- エラーを個別に処理:リトライ、フォールバック、優雅な劣化の実装
1.2 LangChainの登場
LangChainは、Large Language Modelsを活用したアプリケーション構築を簡素化するオープンソースフレームワークです。
LangChainとは?
LangChainは、言語モデルを活用したアプリケーション開発のためのフレームワークです。あらゆるLLMと連携するための統一インターフェース、複雑なワークフローを構築するためのコンポーザブルなコンポーネント、そしてストリーミング、キャッシュ、可観測性などの本番対応機能を提供します。
主な価値提案
| 機能 | メリット |
|---|---|
| 統一インターフェース | 1行のコードでLLMプロバイダーを切り替え |
| コンポーザビリティ | シンプルなコンポーネントを連結して複雑なワークフローを構築 |
| 組み込みメモリ | 会話履歴管理が標準搭載 |
| ツール統合 | LLMを外部ツールやAPIに簡単に接続 |
| 本番対応機能 | ストリーミング、キャッシュ、リトライ、可観測性を含む |
# LangChain:シンプルで統一されたインターフェース
from langchain_openai import ChatOpenAI
from langchain_anthropic import ChatAnthropic
from langchain_google_genai import ChatGoogleGenerativeAI
# 1行でプロバイダーを切り替え - 同じインターフェース!
llm = ChatOpenAI(model="gpt-4")
# llm = ChatAnthropic(model="claude-sonnet-4-20250514")
# llm = ChatGoogleGenerativeAI(model="gemini-pro")
# 同じコードがすべてのプロバイダーで動作
response = llm.invoke("量子コンピューティングを簡単に説明してください")
print(response.content)
1.3 LangChainエコシステム
LangChainは単なるライブラリではなく、LLMアプリケーション開発のさまざまな側面に対応したツールのエコシステムです:
コアフレームワーク] LG[🌐 LangGraph
エージェントオーケストレーション] LS[🔍 LangSmith
可観測性] end LC -->|構築| Apps[アプリケーション] LG -->|複雑なワークフロー| Apps LS -->|監視とデバッグ| Apps style LC fill:#667eea,color:#fff style LG fill:#11998e,color:#fff style LS fill:#f093fb,color:#fff style Apps fill:#28a745,color:#fff
LangChain(コア)
主要フレームワークが提供するもの:
- チャットモデルとLLM抽象化
- プロンプトテンプレートと出力パーサー
- ドキュメントローダーとテキストスプリッター
- ベクトルストアとリトリーバー
- チェーンと新しい
create_agentAPI
LangGraph
ステートフルなマルチアクターアプリケーション構築のための別ライブラリ:
- グラフベースのワークフロー定義
- 耐久性のある状態管理
- Human-in-the-loop機能
- 複雑なエージェントオーケストレーション
LangSmith
LLMアプリケーションの可観測性プラットフォーム:
- トレーシングとデバッグ
- 評価とテスト
- 本番環境での監視
- データセット管理
1.4 LangChain v1.0:新機能
LangChainは2025年10月に最初の安定版(v1.0)をリリースしました。このマイルストーンで重要な変更がありました:
v1.0の主な変更点
- 新しい
create_agentAPI:create_react_agentを置き換える簡素化されたエージェント作成 content_blocksプロパティ:プロバイダー間でマルチモーダルコンテンツへの統一アクセス- 簡素化された名前空間:コア機能は
langchainに、レガシーはlangchain-classicに - TypedDict状態:エージェントはPydanticモデルの代わりにTypedDictを使用
from langchain.agents import create_agent
from langchain_openai import ChatOpenAI
# ツールを定義(第3章で詳しく説明)
def search_web(query: str) -> str:
"""Webで情報を検索する。"""
return f"検索結果: {query}"
# 新しいv1.0 APIでエージェントを作成
agent = create_agent(
model=ChatOpenAI(model="gpt-4"),
tools=[search_web],
system_prompt="あなたは親切なリサーチアシスタントです。"
)
# エージェントを実行
result = agent.invoke({
"messages": [
{"role": "user", "content": "今日の天気は?"}
]
})
print(result)
1.5 LangChainのインストール
LangChainはモジュラーインストール方式を採用しています。必要なものだけをインストールしてください:
# コアLangChainパッケージ
pip install langchain
# プロバイダー固有のパッケージ(必要に応じてインストール)
pip install langchain-openai # OpenAIモデル用
pip install langchain-anthropic # Anthropic Claude用
pip install langchain-google-genai # Google Gemini用
# コミュニティ統合
pip install langchain-community
# インストール確認
python -c "import langchain; print(f'LangChain {langchain.__version__} installed!')"
現在のバージョン(2026年1月)
langchain-core:1.2.6langchain:1.2.0- Python要件:>= 3.9
APIキーの設定
ほとんどのLLMプロバイダーはAPIキーが必要です。環境変数として設定してください:
# Linux/macOS
export OPENAI_API_KEY="your-openai-key"
export ANTHROPIC_API_KEY="your-anthropic-key"
# Windows (PowerShell)
$env:OPENAI_API_KEY="your-openai-key"
$env:ANTHROPIC_API_KEY="your-anthropic-key"
1.6 最初のLangChainアプリケーション
すべてが動作することを確認するために、シンプルなチャットボットを構築しましょう:
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
# モデルを初期化
llm = ChatOpenAI(
model="gpt-4",
temperature=0.7 # ランダム性を制御(0=決定論的、1=創造的)
)
# メッセージを作成
messages = [
SystemMessage(content="あなたは物事を簡単に説明する親切なアシスタントです。"),
HumanMessage(content="機械学習とは何ですか?")
]
# レスポンスを取得
response = llm.invoke(messages)
print(response.content)
演習
演習1:インストール確認
LangChainと少なくとも1つのプロバイダーパッケージをインストールしてください。以下のコードを実行して確認します:
import langchain
from langchain_core.messages import HumanMessage
print(f"LangChain version: {langchain.__version__}")
print("インストール成功!")
演習2:マルチプロバイダー比較
複数のプロバイダーのAPIキーをお持ちの場合、同じ質問を異なるモデルに投げかけ、レスポンスを比較してみてください。スタイル、長さ、内容にどのような違いがありますか?
まとめ
- LLMアプリケーションをゼロから構築するのは複雑でエラーが起きやすい
- LangChainはLLMアプリケーション開発のための統一フレームワークを提供
- エコシステムにはLangChain(コア)、LangGraph(オーケストレーション)、LangSmith(可観測性)が含まれる
- v1.0で新しい
create_agentAPIと簡素化されたアーキテクチャが導入された - インストールはモジュラー:コア + プロバイダーパッケージを必要に応じてインストール