AI フレームワークの記事を読むと「LangChain」という名前を必ず見かけるのに、結局それが何をしてくれる道具なのか、いまひとつ像を結ばない——そんな状態の方が多いと思います。Chain・Memory・Retrieval・Agent と機能名が並ぶほど、かえって「で、私は何をすればいいの?」と迷子になりがちです。
私自身、業務で生成AIを扱うとき LangChain は必要な場面でだけ部分的に使い、主軸は公式 SDK(Anthropic / OpenAI / Google)を直接呼ぶ自前の組み方です。だからこの記事は機能を網羅するより、「LangChain は結局何の道具か」と「使うとき・使わないときの判断軸」を背骨に置いて整理します。読み終えるころには、名前に振り回されず、自分の用途で要るか要らないかを自分で判断できる状態を目指します。
とりあえず最短で全体像だけ掴みたい方は、セクション 1(結論の一行マップ)とセクション 10(使うとき・使わないときの判断軸)の 2 つだけ先に読んでも大丈夫です。
01 — 結論|LangChain は「LLM アプリの部品を連結する、レゴブロック箱」
📖 この章で使う用語
- LangChain(ラングチェーン):LLM アプリの部品(プロンプト・モデル・検索・記憶・ツール)をつなぐためのフレームワーク。LLM アプリ用の「レゴブロック箱」のイメージ。
- フレームワーク:よくある処理の「型」をあらかじめ用意してくれる土台。毎回ゼロから組まなくて済む道具箱。
- LLM(大規模言語モデル):ChatGPT や Claude の正体。膨大な文章を学習した「次の言葉を予測する装置」。
- 直 API:Anthropic や OpenAI などの公式の窓口を直接呼ぶこと。フレームワークという包みを挟まない方法。
結論から言うと、LangChain は「LLM を使ったアプリを組むときに、部品を連結する土台」です。LangChain 公式は自身を「エージェントと LLM を使ったアプリケーションを作るためのフレームワーク」と説明しています(LangChain Overview|公式ドキュメント、取得:2026-06-09)。一言にすると「LLM アプリ用のレゴブロック箱」で、よく使う処理(複数のモデルを呼ぶ・文書を検索する・会話を覚える・外部ツールを使う)を、毎回ゼロから書かずに組み合わせられます。
ただ、ここで先に私の立ち位置をはっきりさせておきます。私は業務で LangChain にすべてを任せてはいません。主軸は公式 SDK を直接叩く自前の組み方で、LangChain は「ここは LangChain に乗せると楽だ」という場面で部分的に使う立場です。だからこの記事は、機能を端から並べるチュートリアルではなく、「何の道具か」と「自分の用途に要るのか」を判断するための地図として書きます。
範囲を最初に区切っておきます。本記事で扱うのは LangChain 本体の概念です。次のテーマは、それぞれ専門の記事に送ります。
- LangChain と LangGraph の違いの深掘り:LangGraph とはへ(本記事はセクション 7で要点だけ)
- RAG そのものの基礎:RAG とはへ
- ベクトル検索ライブラリ:FAISS とはへ
- AIエージェント構築の全体像(4ルート比較):AIエージェント 作り方へ
- LLM そのものの基礎:LLM とはへ
02 — LangChain とは何か/読み方・名前の由来
📖 この章で使う用語
- OSS(オープンソースソフトウェア):ソースコードが公開され、無料で使えるソフトウェア。
- SDK:あるサービスを自分のプログラムから呼ぶための、公式の道具一式。
読み方は「ラングチェーン」です。「Lang」は Language(言語)の頭で、「Chain」は処理を数珠つなぎにすること。つまり「言葉を扱う処理を、数珠つなぎにする道具」というのが名前の由来です。
LangChain は OSS(オープンソース)で、本体のライセンスは MIT、本体そのものは無料で使えます(langchain-ai/langchain|GitHub、取得:2026-06-09)。Python 版と JavaScript / TypeScript 版があり、本記事は Python を前提に進めます。
なぜこういう道具が生まれたのか。LLM 単体は「質問すると答えを返す」ことはできても、「手元の文書を読む」「前の会話を覚えておく」「外部のツールを呼ぶ」といった作業は、自分でつなぎのコードを書かないとできません。そのつなぎの部分を、定番の型としてまとめてくれたのが LangChain です。
営業時代のたとえでいうと、商談には「アポ → ヒアリング → 提案 → クロージング」という一直線の流れ(フロー)がありました。LangChain の「Chain」は、まさにこの一直線のフローを、処理に置き換えたものだと考えると入りやすいと思います。
03 — LangChain で何ができるか|中核の構成要素
📖 この章で使う用語
- Models(モデル):LLM を呼ぶための共通の窓口。Anthropic でも OpenAI でも、同じ作法で呼べるようにする部分。
- Prompts(プロンプト):AI への指示文を組み立てる部分。営業時代の「話す前に整える台本」のイメージ。
- Chains(チェーン):処理を一方向に数珠つなぎにする部分。名前の由来。
- Memory(メモリ):会話の履歴・文脈を覚えておく仕組み。
- Retrieval(リトリーバル):外部の文書から関連情報を検索して取り出すこと。RAG の土台。
- Agents(エージェント):AI が自分で手順を考えてツールを使う仕組み。
LangChain ができることは、ざっくり「LLM を中心に置いて、その周りの定番の部品を組み合わせること」です。公式ドキュメントでは、モデル・埋め込み・ベクトルストア(あとで出てくる検索のための保存先)などに対して「共通のインターフェース(窓口)」を提供する、と説明されています(LangChain Overview|公式ドキュメント、取得:2026-06-09)。下の図が、その「部品箱」の全体像です。
中核の部品を、未経験の方向けに「何を肩代わりしてくれるか」で一つずつ見ていきます。新しい言葉が続くので、1 つずつ区切って読んでください。
3-1. Models と Prompts(LLM を呼ぶ・指示を組む)
Models は、LLM を呼ぶための共通の窓口です。普通に書くと、Anthropic の Claude を呼ぶコードと OpenAI の GPT を呼ぶコードは別物になります。LangChain はその差を吸収して、同じ作法で呼べるようにしてくれます。
Prompts は、AI に渡す指示文を組み立てる部分です。「この変数をここに差し込んで」といった台本づくりを、毎回手で文字列をつなぐより整理された形でできます。
3-2. Chains(処理を数珠つなぎにする=名前の由来)
Chains は、複数の処理を一方向にひとつなぎにする部分です。「プロンプトを組む → モデルを呼ぶ → 返ってきた答えを整形する」を、一本の流れとして扱えます。
商談フローと同じで、入口から出口まで台本どおりに進む——そういう「一直線の処理」を組むのが Chains の役目です。
3-3. Memory(会話の文脈を覚える)
Memory は、会話の履歴や文脈を覚えておく仕組みです。LLM はそのままだと「前に何を話したか」を持ちません。Memory を挟むことで、前のやりとりを踏まえた返答ができるようになります。
3-4. Retrieval と Agents(RAG の土台・自律実行)
Retrieval は、外部の文書から関連情報を検索して取り出す部分で、後で出てくる RAG(検索拡張生成)の土台です。Agents は、AI が自分で手順を考えてツールを使う仕組みです。
この 2 つは LangChain の中でも特に深いテーマなので、それぞれセクション 5(RAG)とセクション 6(Agent)で扱います。さらに踏み込んだ全体像はRAG とは・AIエージェント とはに送ります。
04 — 中核概念 LCEL と Runnable|「| でつなぐ」新しい書き方
📖 この章で使う用語
- LCEL(LangChain Expression Language):
prompt | model | parserのように、|(パイプ)で部品をつなぐ書き方。- Runnable(ランナブル):LCEL でつなげる、共通の作法を持った部品の単位。
- パイプ(
|):左の出力を右の入力に渡す記号。工場のベルトコンベアのイメージ。- langchain-community:コミュニティ製の外部連携部品をまとめたパッケージ。
近年の LangChain を理解するうえで外せないのが LCEL(LangChain Expression Language)です。これは prompt | model | parser のように、|(パイプ)という記号で部品をつなぐ書き方を指します。| は「左の出力を、右にそのまま渡す」という意味で、工場のベルトコンベアを想像すると分かりやすいです。素材(入力)が左から流れてきて、各工程(部品)を通り、最後に製品(答え)が出てくる、という流れです。
その「ベルトコンベアに乗せられる部品」の単位が Runnable です。LangChain の部品は共通の作法(Runnable)を持つように作られているので、| で素直につなげられます。
ここで一つ、私自身の使用感を正直に書いておきます。LCEL の | でつなぐ書き方は、確かに読みやすく、後から部品を差し替えやすい良さがあります。ただ、私が業務で薄い処理(プロンプトを一回投げて、答えを受け取るだけ、のような)を書くときは、LCEL で組んでも公式 SDK を直接叩いても、体感としてあまり変わりませんでした。| の恩恵が効いてくるのは、つなぐ部品が増えて、分岐や差し替えが多くなってきたときです。この温度感は、後のセクション 10の判断軸につながります。
外部サービスとの連携部品は langchain-community というパッケージにまとまっています。ここの細かい仕様は版によって変わるので、使うときは必ず公式ドキュメントで自分の版を確認するのが安全です(細部は私もフル依存していないため、公開情報からの整理として書いています)。
05 — RAG での LangChain の使われ方
📖 この章で使う用語
- RAG(検索拡張生成):外部文書を検索して、その内容を LLM の回答に使う仕組み。
- 埋め込み(embedding):テキストを「意味を表す数値の並び」に変える操作。「カレー」と「シチュー」を近い場所に置くような変換。
- ベクトルDB:意味が近いものを素早く取り出せる保存先。本屋の「ジャンル別の棚」のイメージ。
RAG(検索拡張生成)は、手元の文書を検索して、その中身を LLM の回答に使う仕組みです。社内マニュアルや過去の議事録のように「LLM が学習していない、自分たちの文書」を答えに反映させたいときに使います。
LangChain で RAG を組むときの典型的な流れは、こうです。文書を扱いやすいサイズに分割する → それぞれを埋め込み(意味を表す数値)に変える → ベクトルDB に入れる → 質問が来たら近いものを検索する → 取り出した文書を LLM に渡して答えさせる。LangChain は、この一連の「つなぎ」を定番の型として提供してくれます。
ここでも、私の実際の組み方を書いておきます。私は RAG を組むとき、「全部 LangChain に任せる」のではなく、検索の中心になるベクトルDB(業務では FAISS や Chroma を使うことが多いです)は直接扱い、その前後の「つなぎ」だけ LangChain に乗せる、という使い分けをしてきました。検索の精度や挙動は RAG の心臓部なので、ここは自分の手で握っておきたい、という判断です。ローカルで動かす構成(Ollama などを使う)にも LangChain は対応していますが、これも「土台として何ができるか」を知ったうえで、必要な部分だけ使うのが私のやり方です。
RAG そのものの基礎、ベクトル検索の中身は、それぞれRAG とは・FAISS とはに詳しく書いています。本記事は「LangChain が RAG のどこを肩代わりするか」に絞っています。
06 — エージェント(Agent)での LangChain の使われ方
📖 この章で使う用語
- AgentExecutor:Agent が「考える → ツールを使う → 結果を見てまた考える」を回す実行係。
- Tools(ツール):Agent が使える外部の道具(検索・計算・API 呼び出しなど)。
Agent(エージェント)は、AI が自分で手順を考えながらツールを使い、タスクを進めていく仕組みです。「答えを一回返す」LLM に、「考えて、道具を使って、また考える」という動きを足したもの、と捉えると分かりやすいです。
LangChain では、この「考える → ツールを使う → 結果を見てまた考える」のループを回す実行係(AgentExecutor 的な役割)と、Agent が使える道具(Tools)を組み合わせて作ります。私自身、業務で AI エージェントを扱う中で、こうした「自分でツールを選んで動く」仕組みの設計には触れてきました。
ただし注意点があります。LangChain の素直な Agent は、どちらかというと「一直線寄り」の流れに向いています。これに対して、途中で行ったり来たりしたい、条件で枝分かれしたい、何度もループさせたい——といった「状態を持つ複雑なフロー」が必要になると、LangGraph のほうが向いてきます。この橋渡しは次のセクションで触れます。
エージェント構築の全体像(どんな作り方の選択肢があるか)はAIエージェント 作り方に、外部ツール連携の標準的な仕組みはAIエージェント MCPに送ります。
07 — LangChain と LangGraph の違い(要点だけ)
📖 この章で使う用語
- グラフ(graph):処理を点(ノード)と線(エッジ)で表した構造。行ったり来たり・枝分かれができる。
- State(状態):処理の途中経過を持ち回す入れ物。
違いを一行でいうと、「LangChain=部品とチェーン(基本は一方向)/LangGraph=状態とグラフ(行き来・分岐・ループができる)」です。実は LangGraph は、LangChain の発展形として位置づけられていて、公式も LangGraph を「より高度な制御やエージェントの組み立てが必要なとき」のための枠組みとして紹介しています(LangChain Overview|公式ドキュメント、取得:2026-06-09)。
| LangChain | LangGraph | |
|---|---|---|
| 得意な処理 | 一直線の流れ(つなぐ) | 行き来・分岐・ループのある流れ |
| 構造の単位 | チェーン(数珠つなぎ) | グラフ(点と線) |
| 状態の持ち回し | 基本はシンプル | State で明示的に持ち回す |
| 向く場面 | 定番の連結・薄めの処理 | 複雑な制御が要るエージェント |
どちらを使うかは用途次第で、一直線で済むなら LangChain(や直 API)、状態・分岐・ループが要るなら LangGraph、というのが私の中の目安です。どちらが絶対に優れている、という話ではありません。
State・ノード・エッジの中身、最小サンプルを使った違いの深掘りは、親記事のLangGraph とはに詳しく書いています。本記事ではここまでの要点にとどめます。
08 — Python での始め方|インストールと最小の流れ
📖 この章で使う用語
- pip:Python のライブラリを入れる道具。スマホにアプリを入れる感覚。
- パッケージ:機能ごとにまとめられたライブラリの単位。
始め方はシンプルで、pip install langchain で本体を入れ、使う LLM のプロバイダに合わせた部分を追加で入れます。公式ドキュメントでは、プロバイダ別のパッケージを合わせて入れる書き方が案内されています(LangChain Overview|公式ドキュメント、取得:2026-06-09)。
8-1. インストール(langchain + プロバイダ別パッケージ)
# 本体を入れる
pip install langchain
# 使うプロバイダに合わせて追加(Anthropic の Claude を使う例)
pip install "langchain[anthropic]"
# OpenAI なら langchain[openai]、Google Gemini なら langchain[google-genai]
Python のバージョンは、新しめのものが必要になることが多いです。これは版によって変わるので、入れる前に公式ドキュメントで自分が使う版の要件を確認するのが確実です。
8-2. 最小の流れ(prompt | model を 1 回動かす)
# プロンプト → モデル を | でつなぐ、最小の流れ
from langchain.prompts import ChatPromptTemplate
from langchain_anthropic import ChatAnthropic
# APIキーは環境変数(ANTHROPIC_API_KEY 等)から読む想定。コードに直書きしない
prompt = ChatPromptTemplate.from_template("{topic} を、小学生にも分かるように一言で説明して")
model = ChatAnthropic(model="claude-sonnet-4-5")
chain = prompt | model # ベルトコンベアに乗せるイメージ
answer = chain.invoke({"topic": "LangChain"})
print(answer.content)
私が新しいフレームワークに触れるときに大事にしているのは、「いきなり全機能を使おうとせず、まず最小で 1 回動かす」ことです。営業時代も、新しい商材は分厚い資料を読み込む前に、まず一件お客様に当ててみて反応を見るのが結局いちばん早かった。コードでも同じで、最小サンプルが 1 回動くと、そこから先の理解がぐっと速くなります。
API キーの準備(どこで発行するか)は、Anthropic Console 使い方・Anthropic API・Gemini API 使い方に送ります。日本語で使えるかは、LangChain は土台なので言語に依存せず、使うモデルが日本語に対応していれば日本語の入出力で問題なく動きます。
09 — LangChain の料金|本体は無料、有料は周辺
📖 この章で使う用語
- LangSmith:LLM アプリの動きを記録・観測・評価するサービス。無料枠と有料枠がある。
- LangGraph Platform:作ったアプリを動かす・公開する(デプロイする)ためのサービス。
- 従量課金:使った分だけ料金がかかる方式。
LangChain 本体(OSS / MIT)は無料です。お金が関わってくるのは、主に次の 3 つです。
- LangSmith(アプリの動きを記録・観測・評価するサービス)
- LangGraph Platform(作ったアプリを動かす・公開するサービス)
- 実際に呼ぶ LLM API の従量課金(Claude / GPT / Gemini を呼んだ分の料金)
LangSmith には無料の Developer プランが用意されています。公式の料金ページでは、Developer は「$0 / seat per month、その後は従量課金」、Plus は「$39 / seat per month、その後は従量課金」と案内されています(LangChain Pricing|公式、取得:2026-06-09)。ただし、こうした金額やプランの構成は変更されることがあるので、申し込む前に必ず公式の料金ページで最新を確認してください。ここで金額を断定するのは避けます。
伝えたいのは、「学ぶ段階・最小サンプルを動かす段階では、本体は無料で、お金の心配はほぼいらない」ということです。実際にコストがかかってくるのは、呼ぶ LLM API の分と、観測・デプロイの周辺サービスを本格的に使い始めてからです。
10 — 使うとき・使わないときの判断軸|直 API+自前との線引き
📖 この章で使う用語
- 自前パイプライン:フレームワークに頼らず、必要な処理だけを自分のコードで組んだ流れ。
- オーバーエンジニアリング:必要以上に複雑に作り込んでしまうこと。
ここが、この記事でいちばん伝えたいところです。先に結論を書くと、私の業務での立ち位置は「主軸は公式 SDK を直接叩く自前の組み方、LangChain は必要な場面でだけ部分的に使う」です。LangChain が絶対に正解とも、絶対に不要とも思っていません。要は適材適所だと考えています。
私が「LangChain に乗せると楽だ」と感じる場面は、こういうときです。
- 複数のプロバイダを差し替えたいとき:Claude と GPT を場面で切り替えたい、といった要件で、共通の窓口が効く
- RAG や Agent の定番処理を素早く組みたいとき:つなぎを毎回ゼロから書かずに済む
- チームで共通の型を持ちたいとき:人によって書き方がばらつくのを抑えられる
- つなぐ部品が多く、分岐や差し替えが頻繁なとき:
|で組む読みやすさが効いてくる
反対に、「直 API + 自前で十分」と感じる場面はこうです。
- 一直線の薄い処理:プロンプトを投げて答えを受け取るだけなら、フレームワークを挟む意味が薄い
- 依存と学習コストが見合わないとき:版が変わると書き方も変わるので、薄い用途では維持コストのほうが重く感じることがある
- 後から読み返す保守性を最優先したいとき:自分のコードだけのほうが、半年後の自分が追いやすい場面もある
営業時代に学んだことのひとつに、「道具を増やしすぎると、かえって現場が回らなくなる」というのがありました。便利そうな提案ツールを全部抱えるより、本当に効く 2〜3 個に絞ったほうが、お客様にも自分にも分かりやすかった。コードのフレームワークも同じで、「これは本当に LangChain が要る処理か?」を一度立ち止まって自問するのを、私は習慣にしています。シンプルな処理にまで重い枠組みを被せると、それはオーバーエンジニアリング(必要以上の作り込み)になりがちです。
未経験のうちは「とりあえず有名な LangChain を入れておけば安心」と思いがちですが、まず素の API で 1 回動かしてみて、「これは自分で書くと面倒だな」と感じた部分から LangChain に乗せていく順番のほうが、結果的に道具に振り回されずに済むと思います。
11 — つまずきポイント・失敗パターン 5 個
📖 この章で使う用語
- langchain-core:LangChain の中核部分だけをまとめたパッケージ。
LangChain で未経験の方がハマりやすい点を、対処とセットで挙げます。これは私自身が触る中で実際に引っかかったり、迷ったりしたところでもあります。
1. 版が違って、参考にした記事のコードが動かない LangChain は変化が速く、少し前の記事のコードがそのままでは動かないことがよくあります。私も、見つけたサンプルを写経したらインポート(読み込み)の書き方が変わっていて動かない、という場面に何度も出くわしました。対処は、必ず公式ドキュメントで自分が入れた版の書き方を確認することです。
2. パッケージが分かれていて、どれを入れるか迷う
langchain / langchain-core / langchain-community / プロバイダ別(langchain-anthropic など)と分かれていて、最初は「結局どれを入れればいいの?」と迷います。私も最初はここで止まりました。対処は、まず本体(langchain)と、使うプロバイダのパッケージから入れること。足りなければ後から足せます。
3. 最初から全機能を使おうとして挫折する ドキュメントが膨大なので、全部理解してから書こうとすると進みません。対処はセクション 8の「最小で 1 回動かす」を起点にすることです。
4. LangChain と LangGraph の責務を混同する 「一直線か、行き来・分岐があるか」で住み分けるのが整理のコツです。迷ったらセクション 7の一行に立ち返ってください。
5. 「とりあえず LangChain」で被せすぎる 薄い処理にまで枠組みを被せると重くなります。これはセクション 10の判断軸に立ち返るのが対処です。
12 — まとめ|LangChain は「部品を連結する土台」、フル依存より適材適所
最後に、背骨をもう一度だけ。LangChain は「LLM アプリの部品(モデル・プロンプト・検索・記憶・ツール)を連結する土台」です。単発の薄い処理なら直 API でも足り、状態・分岐・ループのある複雑なフローなら LangGraph が向きます。大事なのは機能を全部覚えることより、「自分の用途に、これは要るのか」を判断できることだと思います。
次の一歩は、興味のある方向に進んでください。違いをもっと知りたいならLangGraph とは、検索を組みたいならRAG とは、エージェントを作りたいならAIエージェント 作り方、そもそもの LLM を押さえたいならLLM とはへ。
未経験から触るとき、最初は名前の多さに圧倒されると思います。私もそうでした。でも「まず最小で 1 回動かす」を起点にすれば、一つずつ像を結んでいきます。焦らず、自分の用途に合う部品から触ってみてもいいと思います。
よくある質問
Q1: LangChain の読み方は?
A. 「ラングチェーン」です。「Lang」は Language(言語)の頭、「Chain」は処理を数珠つなぎにすること。「言葉を扱う処理を、数珠つなぎにする道具」が名前の由来です。
Q2: LangChain と LangGraph は、どちらを使えばいいですか?
A. 用途次第です。一直線の流れなら LangChain(や直 API)、行き来・分岐・ループのある複雑な流れなら LangGraph が向きます。どちらが絶対に優れているという話ではありません。深掘りはLangGraph とはへ。
Q3: LangChain は無料で使えますか?
A. 本体は OSS(MIT)で無料です。費用が関わるのは LangSmith / LangGraph Platform などの周辺サービスと、実際に呼ぶ LLM API の従量課金です。金額・プランは変更されることがあるので、公式の料金ページで最新を確認してください。
Q4: Python が必須ですか?
A. 本記事は Python を前提にしています。JavaScript / TypeScript 版もあります。まずは Python で最小サンプルを動かすのが、いちばん分かりやすいと思います。
Q5: 未経験でも触れますか?
A. 最小サンプルなら動かせます。LLM や API の基礎があると理解が速いので、不安なら先にLLM とは・RAG とはに目を通しておくのがおすすめです。
関連記事
- LangGraph とは:LangChain の発展形。状態・分岐・ループのあるフローの組み方を深掘り(親ハブ)
- RAG とは:LangChain の Retrieval が支える「検索拡張生成」の全体像
- FAISS とは:RAG の心臓部、ベクトル検索ライブラリの中身
- AIエージェント 作り方:Agent 構築の選択肢を 4 ルートで俯瞰
- LLM とは:ChatGPT や Claude の中身、生成 AI の土台を整理
営業 7 年から生成AIエンジニアになった aikun が、業務で LangChain を「使うとき・使わないとき」で線引きしてきた手触りをもとに書いています。
※本記事の料金・仕様は 2026-06-09 時点で公式ドキュメントを確認したものです。LangChain は変化が速いため、実際に使う際は必ず公式の最新情報をご確認ください。内容に誤りを見つけられた場合は、お問い合わせ(send@bon-bon-tools.com)からご連絡いただけると助かります。
出典
- LangChain Overview|LangChain 公式ドキュメント(取得:2026-06-09)
- langchain-ai/langchain|GitHub(取得:2026-06-09)
- LangChain Pricing(LangSmith)|LangChain 公式(取得:2026-06-09)