langchain について
LangChain で LLM アプリケーションを構築する開発者向けのリファレンススキルです。LCEL、RAG、エージェント、デプロイを扱い、LangChain v1.0 に沿った指針を提供します。
主な機能
- 01LCEL によるチェーン構成
- 02RAG パイプラインのガイダンス
- 03create_agent によるエージェント作成
- 04LangSmith による可観測性とデプロイ
- 05AgentExecutor からの移行ガイダンス
活用シーン
- 01プロンプト、モデル、パーサーをチェーン化
- 02ドキュメント QA パイプラインの構築
- 03ツールを使うエージェントの作成
- 04LangChain アプリケーションの本番導入準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ magnus919/ agent-skills --skill langchainインストール後、Claude Code で/langchainを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdevals/evals.jsonreferences/agent-patterns.mdarchitecture.mdcallbacks.mdfaq-and-troubleshooting.mdintegration-ecosystem.mdlcel-reference.mdproduction-deployment.mdrag-strategies.mdvalidation-audit.mdscripts/check-setup.pytemplates/agent-with-tools.pybasic-chain.pyproduction-deploy.pyrag-pipeline.py詳細
LangChain エキスパートスキル
LangChain は、LLM を活用したアプリケーションを構築するための MIT ライセンスの Python フレームワークです。v1.0(2025 年 10 月)以降、レイヤー化されたアーキテクチャを提供しています。LCEL(LangChain Expression Language)による高レベルなチェーン構成、create_agent(内部では LangGraph ランタイム上で実行)によるエージェントの作成、LangSmith による本番環境のオブザーバビリティを備えています。1000 以上のインテグレーションと 100K 以上の GitHub スターを獲得し、最も広く採用されている LLM オーケストレーションフレームワークです。
v1.0 の主な変更点: 新しい LangChain エージェントはすべて LangGraph ランタイム上で実行されます。AgentExecutor は 2026 年 12 月までメンテナンスモードです。新しいエージェントには create_agent を使用してください。ステートマシンを完全に制御する必要がある場合は、LangGraph を直接使用してください。
⚠️ 重要:新しいコードでは AgentExecutor を使用しないでください。 2026 年 12 月までメンテナンスモードです。代わりに
create_agent(model, tools, prompt)を使用してください。ストリーミング、永続化、オブザーバビリティを標準で備えた LangGraph ステートマシンが生成されます。
基本原則
LangChain を使って構築する際のあらゆる判断は、以下の原則に基づいて行います。リファレンスガイドに進む前にお読みください。
- LCEL は構成の基本要素です。 パイプ演算子(
|)で Runnable を連結します。プロンプト、モデル、パーサー、リトリーバーなど、すべてのコンポーネントが Runnable インターフェースを実装しています。すべてを LCEL で構築してください。 - エージェントは LangGraph 上で実行されます。 v1.0 以降、
create_agentは内部で LangGraph ステートマシンを生成します。グラフのコードを書かなくても、ストリーミング、永続化、オブザーバビリティを利用できます。分岐、ループ、または人間を介した処理が必要な場合は、LangGraph を直接使用してください。 - RAG はフレームワークではなくチェーンです。
retriever | prompt | model | parserが標準的な RAG パターンです。ドキュメントローダー、スプリッター、ベクトルストアはすべて、互換性のあるコンポーネントです。 - LangSmith は本番環境のオブザーバビリティを提供します。 起動時にトレーシングを有効にしてください。本番環境のチームの 89% がオブザーバビリティを利用しています。これがなければ、エージェントの動作のデバッグは当てずっぽうになります。
- エコシステムが最大の強みです。 1000 以上のインテグレーションにより、モデルプロバイダー、ベクトルストア、ツールを 1 行で切り替えられます。実装ではなく、インターフェースを基準に構築してください。
どこから始めるか
| すでにあるもの... | ここから始める |
|---|---|
| 何もない — 空のプロジェクト | LangChain をインストールし、基本的な LCEL チェーンを構築する |
| 検索したいドキュメント | RAG チェーンを構築する(読み込み、分割、埋め込み、検索、生成) |
| エージェント的な動作が必要 | ツールとともに create_agent を使用する |
| 既存の AgentExecutor コード | create_agent に移行する — references/agent-patterns.md を参照 |
| 本番環境へのデプロイ | LangSmith トレーシングと LangServe デプロイを追加する |
| フレームワークを比較中 | フレームワーク選択ガイドを参照 |
パイプラインモード
| モード | 使用する場面 | 実行するフェーズ | 省略するもの |
|---|---|---|---|
| クイック | 単一のチェーン、試行 | prompt → model → parser | 検索、エージェント、本番環境向けの強化 |
| RAG | ドキュメントの Q&A | load → split → embed → retrieve → generate | エージェントのオーケストレーション、デプロイ |
| エージェント | ツールを使用するエージェント | create_agent + tools + LangGraph ランタイム | シンプルなチェーンで十分な場合 |
| 本番環境 | ユーザー向けのリリース | RAG/Agent + LangSmith + LangServe | なし |
クイックリファレンス
| タスク | アプローチ | リファレンス |
|---|---|---|
| 基本的なチェーン | prompt | model | parser | references/lcel-reference.md |
| RAG パイプライン | retriever | prompt | model | parser | references/rag-strategies.md |
| エージェントの作成 | create_agent(model, tools, prompt) | references/agent-patterns.md |
| ツールの定義 | @tool デコレーター | references/agent-patterns.md |
| マルチエージェント | LangGraph のスーパーバイザーパターン | references/agent-patterns.md |
| オブザーバビリティ | LANGCHAIN_TRACING_V2=true を設定 | references/production-deployment.md |
| デプロイ | LangServe または LangSmith Deployment | references/production-deployment.md |
| ベクトルストア | 1 行で切り替え(Chroma、Pinecone、pgvector) | references/integration-ecosystem.md |
このスキルを使用するタイミング
次のいずれかを行う際は、このスキルを読み込んでください。
- LLM を活用したアプリケーション向けに LCEL チェーンを構築する
- エンタープライズデータまたは個人データを対象とする RAG パイプラインを実装する
- ツール呼び出しと複数ステップの推論を行うエージェントを作成する
- 可観測性を備えた LLM アプリケーションを本番環境にデプロイする
- LangChain を LlamaIndex、Haystack、または生の API 呼び出しと比較する
フレームワーク選択ガイド
このスキルは、複数のフレームワークスキルの一部です。どれが適しているかを判断する際は、次を参考にしてください。
| シナリオ | 選択肢 | 理由 |
|---|---|---|
| チェーンを組み合わせたい | LangChain | LCEL はパイプベースの合成モデルとして最もすっきりしています |
| クエリ対象のドキュメントがある | LlamaIndex | データの取り込みと検索が第一級のプリミティブです |
| エージェントをオーケストレーションしたい | LangGraph | ステートマシンのセマンティクス、サブグラフ、ヒューマン・イン・ザ・ループに対応します |
| ツールをエージェントとしてラップしたい | PydanticAI | 依存性注入を備えた型安全なエージェント定義を利用できます |
| 検索パイプラインが必要 | Haystack | 検索ワークロード向けのパイプラインモデルがより成熟しています |
| あらゆる種類の高速なプロトタイプを作りたい | LangChain | ゼロから動作するチェーンまでの最短経路です |
| エージェントのワークフロー内で、型付きの範囲が限定された判断が必要 | System One | System One は質問/モデルの振る舞いとキャリブレーションを担います。実装の接続点には LangChain ミドルウェアまたは外側の条件付きオーケストレーションを使用し、配置とタスク全体の成果については harness-engineering を参照してください |
リファレンスファイル
| リファレンス | 読み込むタイミング | ファイル |
|---|---|---|
| LCEL リファレンス | パイプ演算子でチェーンを構築する場合 | references/lcel-reference.md |
| アーキテクチャ | パッケージ構造、Runnable、v1.0 を理解する場合 | references/architecture.md |
| RAG 戦略 | RAG パイプラインを構築する場合 | references/rag-strategies.md |
| エージェントパターン | ツールを使うエージェントやマルチエージェントを作成する場合 | references/agent-patterns.md |
| エージェント内の型付き System One 判断 | アダプターの接続点、不明時の経路、モデルのセマンティクスとハーネスの成果の間の引き継ぎを決める場合 | references/agent-patterns.md — 「チャットモデルの外部に型付き判断を配置する」を参照してください。配置とタスク全体のエビデンスについては、harness-engineering も参照してください |
| 本番環境とデプロイ | LangServe、LangSmith、デプロイについて確認する場合 | references/production-deployment.md |
| 統合エコシステム | モデルプロバイダー、ベクトルストア、ツールについて確認する場合 | references/integration-ecosystem.md |
| FAQ とトラブルシューティング | よくあるエラーと解決方法を確認する場合 | references/faq-and-troubleshooting.md |
| コールバックシステム | カスタムロギング、監視、エージェントの監査について確認する場合 | references/callbacks.md |
| 検証監査 | すべての API に関する主張の検証調査を確認する場合 | references/validation-audit.md |
テンプレートファイル
| テンプレート | 使用するタイミング | ファイル |
|---|---|---|
| 基本的なチェーン | 単一の prompt→model→parser チェーン | templates/basic-chain.py |
| RAG パイプライン | 検索を使ったドキュメントの Q&A | templates/rag-pipeline.py |
| ツールを使うエージェント | LangGraph ランタイムを使うツール利用エージェント | templates/agent-with-tools.py |
| 本番環境へのデプロイ | LangSmith を使った LangServe のデプロイ | templates/production-deploy.py |
スクリプト
| スクリプト | 用途 | ファイル |
|---|---|---|
| check-setup | LangChain のインストールを確認する | scripts/check-setup.py |
トラブルシューティングガイド
| 症状 | 考えられる原因 | 解決方法 | 参照先 |
|---|---|---|---|
| チェーンが何も返さない | 出力パーサーが接続されていない | .pipe(StrOutputParser()) または同等の処理を追加します | references/lcel-reference.md |
| エージェントがツールを呼び出さない | ツールのスキーマが一致していない | ツールに docstring と型ヒントがあることを確認します | references/agent-patterns.md |
| LangSmith のトレースが表示されない | LANGCHAIN_TRACING_V2 が設定されていない | チェーンを実行する前に環境変数を設定します | references/production-deployment.md |
| 非推奨の警告が表示される | AgentExecutor を使用している | create_agent(LangGraph ランタイム)に移行します | references/agent-patterns.md |
| モデルが見つからない | インテグレーションパッケージが不足している | langchain-openai、langchain-anthropic などをインストールします | references/integration-ecosystem.md |
| ストリーミングが機能しない | LCEL チェーンがストリーミングにネイティブ対応していない | すべてのコンポーネントが stream() を実装していることを確認します | references/lcel-reference.md |
| ベクトルストアへの接続に失敗する | 認証情報が誤っている、またはパッケージが不足している | langchain-community とプロバイダーパッケージをインストールします | references/integration-ecosystem.md |
LangChain を使用しないケース
- 単一モデル、単一プロンプトのアプリケーション — 生の API 呼び出しのほうがシンプルでデバッグしやすいです
- 最大限の透明性が必要 — LangChain が内部で使用する LangGraph のほうが、可視性に優れています
- 純粋なマルチエージェント状態機械 — 高レベル API ではなく、LangGraph を直接使用するのが適切なツールです
- LLM のオーケストレーションを必要としないステートレスなマイクロサービス — LangChain はメリットがないままオーバーヘッドを増やします