LangChain 入門
LangChain は、大規模言語モデル(LLM)アプリケーションを構築するための Python フレームワークです。
LangChain は、さまざまな AI モデルに接続するための統一インターフェースを提供し、ツールを自動的に呼び出し、知識を検索し、コンテキストを記憶できるスマートな Agent の構築をサポートします。

LangChain とは
簡単に言うと、LangChain は次の核心的な問題を解決します:大規模言語モデルが外部の世界とやり取りできるようにする。
ネイティブの LLM はトレーニングデータに基づいてテキストを生成するだけです。しかし、実際のアプリケーションでは、AI がデータベースを照会し、API を呼び出し、ドキュメントを検索し、メールを送信できる必要があります。
LangChain は、これらの機能を連携させるための標準化されたコンポーネントを提供します。

| コンポーネント | 機能 | コア機能 | 主な用途 |
|---|---|---|---|
| Models(モデル) | 大規模言語モデルに接続する |
|
|
| Prompts(プロンプトテンプレート) | Prompt テンプレートの管理 |
|
|
| Document Loader(ドキュメント読み込み) | 外部ドキュメントデータの読み取り |
|
|
| Text Splitter(テキスト分割) | 長いテキストの分割 |
|
|
| Memory(メモリ) | コンテキスト記憶の実装 |
|
|
| Retriever(レトリーバー) | 関連する知識コンテンツの検索 |
|
|
| Tools(ツール) | 外部ツールと API の呼び出し |
|
|
| Output Parser(出力パーサー) | モデル出力結果の解析 |
|
|
| Chains(チェーン) | 複数のコンポーネントを組み合わせてワークフローを形成する |
|
|
技術的な観点から見ると、LangChain はモジュール化された LLM アプリケーション開発フレームワークであり、次の3つの層で構成されています:
| 層 | 説明 | パッケージ名 |
|---|---|---|
| コア抽象層 | モデル、ツール、メッセージなどの基本インターフェースを定義する | langchain-core |
| ユーザーインターフェース層 | init_chat_model、create_agent などの高レベル API を提供する | langchain |
| 統合層 | OpenAI、Anthropic、Ollama などのサードパーティサービスに接続する | langchain-openai など |
なぜ LangChain を選ぶのか
モデル API を一度呼び出すだけであれば、HTTP リクエストを直接使うだけで十分です。しかし、完全な AI アプリケーションを構築する必要がある場合、LangChain には次のような利点があります:
| 機能 | 説明 | 適用シーン |
|---|---|---|
| モデル統一インターフェース | 1つのコードで OpenAI / Anthropic / DeepSeek などのモデルを切り替える | 複数モデルの比較テスト、コスト最適化 |
| Agent アーキテクチャ | モデルがツールを呼び出すタイミングを自動的に決定し、思考と行動のループを形成する | 自動化タスク、スマートカスタマーサポート |
| ミドルウェアシステム | モデル呼び出しの前後にカスタムロジック(リトライ、キャッシュ、フィルタリング)を挿入する | 本番環境での信頼性の保証 |
| 構造化出力 | モデルに指定された形式で JSON を返させ、プログラムでの解析を容易にする | データ抽出、フォームへの自動入力 |
| メモリと永続化 | 対話メモリとセッションをまたぐストレージ機能を内蔵 | マルチターン対話、ユーザー嗜好の記憶 |
| エコシステムが豊富 | 数百のサードパーティ統合があり、主要なモデルとツールをカバー | さまざまなサービスへの迅速な接続 |
LangChain でできること
以下は、LangChain の最も代表的なアプリケーションシナリオです:
スマートチャットボット
マルチターン対話の記憶を備え、外部ツール(天気確認、注文確認、メール送信)を呼び出せるチャットアシスタント。
RAG 知識ベースQ&A
プライベートドキュメント(PDF、ウェブページ、データベース)をベクトル化して保存し、モデルがこれらのドキュメントに基づいて引用元付きで質問に回答できるようにする。
Agent 自動化アシスタント
モデルがタスクの手順を自律的に計画し、必要に応じてさまざまなツールを呼び出して、「先週の売上データを整理してレポートを生成して」のような複雑なマルチステップ操作を完了する。
データ抽出と分析
非構造化テキストから構造化情報を抽出し(例:契約書のスキャン文書からキーフィールドを抽出)、またはモデルにデータ分析の結論を生成させる。
LangChain と LangGraph の関係
多くの初心者がこれら2つのライブラリの違いに困惑します。簡単に言うと:
| 比較項目 | LangChain | LangGraph |
|---|---|---|
| 位置づけ | 高レベル Agent フレームワーク、すぐに使える | 低レベルワークフローエンジン、細かな制御 |
| 習得難易度 | 低い、10行のコードで Agent を作成 | 中〜高、グラフ(Graph)の概念を理解する必要がある |
| 適用シーン | 標準的な Agent アプリケーション、迅速なプロトタイピング | 複雑なマルチステップワークフロー、複数 Agent の協調 |
| 関係 | LangChain の create_agent() は、基盤として LangGraph の上に構築されています | |
本チュートリアルは LangChain に焦点を当てています。学習を始めたばかりなら、LangChain から始めるのが正しい選択です。より細かなフロー制御が必要になったときに、LangGraph を深く学びましょう。
準備
学習を始める前に、次の基礎知識だけが必要です:
- Python の基本構文(関数、クラス、型アノテーション)
- pip を使用して Python パッケージをインストールできること
- 基本的なコマンドライン操作を理解していること
- 大規模言語モデルの API キーを持っていること(OpenAI、Anthropic などで可)
その他の拡張本チュートリアルのコード例は Python 3.10+ 環境でテスト済みです。