LangChainの概要と特徴を徹底解説|基本機能から使い方まで網羅

  • 2026.06.26
       
LangChainの概要と特徴を徹底解説|基本機能から使い方まで網羅

ChatGPTやGemini、ClaudeといったLLM(大規模言語モデル)を活用したAIアプリケーション開発が、近年急速に広がっています。
用途も単純なチャットボットにとどまらず、社内文書の検索や問い合わせ対応チャットボット、データ分析、業務自動化など多岐にわたります。

一方で、LLMのAPIを直接呼び出して開発を進めようとすると、

  • プロンプト管理
  • 会話履歴の保持
  • 外部ツールとの連携
  • 複数モデルへの対応

といった処理を、それぞれ個別に実装する必要があります。
アプリケーションが複雑になるほど、こうした実装や管理の負担は増えていきがちです。

この課題に対する選択肢のひとつが、本記事で扱う「LangChain」です。
LangChainは、LLMを中心としたアプリケーション開発に必要な処理を、統一的なかたちで効率よく実装できるよう設計されたオープンソースのフレームワークです。
OpenAIやGoogleなど提供元の異なるモデルを共通のインターフェースで扱えるほか、プロンプトのテンプレート化、複数の処理をつなぐChains、外部ツールを自律的に使うAgent、外部データを検索して回答に活かすRAGといった機能をモジュールとして備えており、複雑になりがちな実装を部品の組み合わせで進められる点が特徴です。
そのため、複数のモデルやツールを組み合わせた開発に取り組むエンジニアや、本格的なLLMアプリの構築を目指す方に向いたフレームワークといえます。

本記事は、これからLLMアプリを開発してみたい方、API直呼びから一歩進んだ実装に取り組みたい方、RAGやAgentといった仕組みを試してみたい方に向けた内容です。
LangChainの概要や基本機能から、インストール手順、PromptTemplateやLCELの書き方、Agentの基礎までを順を追って解説していきます。

LangChainとは

LangChainは、LLM(大規模言語モデル)を中心としたAIアプリケーション開発を効率化するために設計された、オープンソースのフレームワークです。
ここでは、LangChainがどのようなものか、何ができるのか、利用する際に押さえておきたい点を順に整理します。

LangChainの基本

LangChainは、ChatGPTやGemini、ClaudeなどのLLMを使ったアプリケーションを開発する際に利用されるフレームワークです。
LLMを活用したアプリでは、モデルへの指示となるプロンプトの管理、モデルの呼び出し、外部データとの連携、外部ツールとの連携といった要素を扱う必要がありますが、LangChainはこれらを扱いやすくするための仕組みをまとめて提供しています。

対応言語はPythonとTypeScript/JavaScriptで、自分の開発環境に合わせて選べます。
ただし、利用できる機能やライブラリの充実度は言語によって異なる場合があるため、扱いたい機能に対応しているかを事前に確認しておくと安心です。

LangChainでできること

LangChainを使うと、LLMアプリ開発でよく必要になる処理を、比較的少ない手間で実装しやすくなります。

例えば、複数のLLMやチャットモデルの切り替え、プロンプトのテンプレート化、外部データを使った回答生成、複数処理のワークフロー化、Agentによるツール連携などを実装しやすくなります。

LangChainには、LLMアプリケーション開発を効率化するための機能が複数用意されています。

機能・特徴 内容
モデル操作 OpenAIやGoogleなど、複数のLLMやチャットモデルを切り替えて使いやすい
プロンプト管理 プロンプトをテンプレート化し、再利用や管理をしやすくする
Retrieval PDFやWebページ、社内文書などの外部データを使って回答を生成しやすい
Chains 複数の処理を順番につなぎ、一連のワークフローとして構築できる
Agents 状況に応じて検索ツールやAPIなどをLLM自身に選んで使わせることができる
Memory 会話履歴や文脈を保持し、継続的なやり取りに活用できる
外部ツール連携 検索、データベース、APIなどと連携したAIアプリケーションを構築しやすい

これらの機能を組み合わせることで、チャットボットや文書検索、業務自動化など、目的に応じたAIアプリケーションを構築しやすくなります。

LangChainを使う際に押さえておきたい点

LangChainは、複雑になりがちなAIアプリ開発を効率化しやすいフレームワークですが、すべてのケースで必要になるわけではありません。
たとえば、小規模な処理や単純なAPI呼び出しだけで済む場合は、LangChainを導入せずに実装したほうがシンプルなこともあります。

また、機能が多い分、ある程度の学習コストがかかるほか、バージョン変更にともなう仕様変更への対応が必要になる場合もあります。
LangChainを導入するかどうかは、プロジェクトの規模や実装したい機能を踏まえ、API直接呼び出しと使い分ける視点を持っておくとよいでしょう。

次の章では、この使い分けについてもう少し詳しく見ていきます。

LangChainとAPIを直接呼び出す開発のどちらを選ぶべきか?違いと選定基準

APIを直接呼び出す場合とLangChainを使用する場合の違いを、以下にまとめました。

項目 API LangChain
導入 簡単 少し重い
学習コスト
モデル変更 面倒 簡単
Agent 自作 標準
RAG 自作 対応

【 API直接呼び出し 】

メリット

  • シンプル
  • 軽量
  • 学習コストが低い
  • デバッグしやすい

デメリット

  • モデル変更が大変
  • プロンプト管理が煩雑
  • ツール連携を自作する必要あり

【 LangChain 】

メリット

  • モデルを切り替えやすい
  • ツール連携を容易に実行可能
  • AgentやRAGにも対応可能

デメリット

  • 学習コストが少し高め
  • バージョン変化へのこまめな対応が必要

プロジェクトの規模ややりたいことに合わせて使い分けるポイント

LangChainの強みは、モデルの切り替えやプロンプト管理、ツール連携といった複雑になりがちな処理を、自作することなく容易に行える点にあります。
個人利用や小規模開発などで、複雑な機能を必要としないケースでは使用せずとも問題ありませんが、複数のモデルやツールが必須となる開発においては開発効率に大きな差が出ます。

主に、以下の規模を基準に使い分けるのがおすすめです。

用途とおすすめ

小規模プロジェクトの場合は導入や学習コストが低めのAPI直呼び、中〜大規模プロジェクトの場合はLangChainを採用するといいでしょう。

LangChainのGitHubリポジトリから学ぶ環境構築とパッケージの最新動向

Python版とTypeScript版の選び方とインストール手順

Python環境でインストールする場合は、以下のコマンドを実行します。

Python
pip install langchain
pip install langchain-openai

インストールが完了したら、.envに使用するモデルのAPIキーを環境変数として設定しましょう。

Python
export OPENAI_API_KEY=xxxxx

TypeScriptの場合は、以下のコマンドでインストールできます。

TypeScript
npm install langchain
npm install @langchain/openai

公式リポジトリの構造を理解して最新アップデートを追うコツ

公式リポジトリを確認する際は、以下の項目を中心に見るといいでしょう。

  • README
  • examples
  • releases
  • migration

特に、v1以降はAgent APIの変更が多いため、Migration Guide確認が重要となります。

LangChainによるLLMアプリ実装の基本とよく使う機能の使い方

PromptTemplateを使った入力の固定とモデルの呼び出し方

上述したように、PromptTemplateを使用することによって、繰り返し利用する可能性のあるテキストフォーマットをテンプレート化することができます。

from langchain_core.prompts import ChatPromptTemplate

template = ChatPromptTemplate.from_template("こんにちは、{name}さん")

prompt = template.format(name="太郎")
print(prompt)

【実行結果】

こんにちは、太郎さん

これを呼び出したモデルと組み合わせることにより、特定のフォーマットに基づいたプロンプト生成を容易に行うことができます。

from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate

# テンプレートを作成
template = ChatPromptTemplate.from_template("{place}の県庁所在地は?")

prompt = template.format(name="北海道")

# モデルの呼び出し
chat = ChatOpenAI(model="gpt-5-nano")

output = chat.invoke([HumanMessage(content=prompt)])
print(output)

パイプ記号(|)で処理をスマートに繋ぐLCELの書き方

LCELは、Chainsをより簡潔に記述することのできる新たな記法です。
以下のように、パイプ記号(|)を使用して記述します。

chain = prompt | model
from langchain_openai import ChatOpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain


template = PromptTemplate.from_template("{place}の県庁所在地は?")
chat = ChatOpenAI(model="gpt-5-nano")

chain = template | chat
output = chain. invoke({"place": "北海道"})

print(output)

LangChain Agentとは?AIに自分で考えて動く仕組みを紐解く

LLMにGoogle検索などの「道具」を使わせる基本の考え方

入力テキストの内容や状況に応じて行うべき処理を自動で判断し、適切にツールを使い分けてくれる機能です。
あらかじめ定義されたフローに従うのではなく、リアルタイムで状況を判断して処理を実行します。

Agentは、モデル自身が次に行うべきアクションを自動で判断し、与えられたツールを使用して目的が完了するまで繰り返し処理を行う機能です。

Agentが利用する外部機能をToolと呼び、標準で用意されているツールから自作ツールまで、幅広く活用することができます。
以下は、LangChainで用意されているツールの一例です。

  • Google Search
  • Tavily Search
  • Python REPL
  • AWS Lambda

Agentを使用することにより、以下のような複雑な流れも自動で判断して処理してくれるようになります。

質問 → 天気情報が必要 → 天気APIを呼ぶ → 摂氏を取得 → 計算ツールを呼ぶ → 華氏へ変換 → 回答生成

思考・行動・観察を繰り返してゴールを目指すReActプロンプトの裏側

LangChain Agentの考え方の基礎となっているのが、ReAct(Reason + Act)です。
ReActとは、推論と行動の繰り返しによってタスクを解決する仕組みのことを言います。

ReActの基本サイクルは、以下の3つで構成されます。

  • 思考(Thought) … 与えられたタスクに対し、AIが今何をすべきかを論理的に考える
  • 行動(Action) … 思考結果に基づき、外部ツールを使用する指示を出す
  • 観察(Observation)… 返ってきた結果やデータを読み取る

これらの工程を、Thought → Action → Observation → Thought → … といった流れで、目的の回答が得られるまで繰り返し実行します。

LangChain Agentの実践|外部ツールと連携したエージェント構築

ここからは、簡単なToolを登録してAgentに利用させる例を紹介します。

Google検索や計算機能をエージェントに組み込む実装ステップ

Agentで使用するツールは、標準で用意されているツールを利用する方法と、自作のツールを利用する方法の2通りがあります。

以下は、ツールを作成する場合のサンプルコードです。

@tool
def multiply(a: int, b: int) -> int:
    """
    2つの整数を掛け算する
    """
    return a * b

@toolデコレータを付けることにより、関数をAgentが利用できるツールとして登録することができます。

ツールの準備が完了したら、続いて使用したいモデルを準備します。

model = ChatOpenAI(
    model="gpt-4o"
)

準備が完了したら、ツールとモデルをAgentへ登録します。

agent = create_agent(
    model=model,
    tools=[multiply]
)

あとは、実行したいプロンプトをAgentに渡せばOKです。

response = agent.invoke(
    {
        "messages": [
            {
                "role": "user",
                "content": "23×47を計算してください"
            }
        ]
    }
)

print(response)

また、使用したいツールが複数ある場合は、以下のようにカンマで区切って記述することで合わせて登録できます。

agent = create_agent(
    model=model,
    tools=[
        search_tool,
        multiply
    ]
)

これにより、複数のツールを組み合わせた処理を実行できます。

無限ループによるAPIコストの暴走を防ぐための設定と注意点

Agentは便利である反面、ツールを必要以上に呼び出してしまう問題も抱えています。
例えば、特定の情報を検索した際に取得した情報量が十分でないと判断した時など、同じ行為を延々と繰り返すループに陥ってしまう可能性があります。

そのため、実運用では実行回数の制限を設けたり、タイムアウトを設定するといった対策を取ることが重要となります。
具体的に取れる主な方法は以下の通りです。

  • 最大実行回数を制限する
  • タイムアウトを設定する
  • 使用するツールの数を増やしすぎない
  • Toolの説明文を適切に書く

ツールの過剰使用は処理面だけでなく、APIの利用料などコスト面でも影響が出る可能性があるため、十分な対策が必要です。

まとめ

LangChainは、AIアプリケーションの開発効率を高めてくれる便利なフレームワークです。
全ての機能を使いこなすにはある程度の慣れが必要となりますが、AIエージェントや業務自動化を実現するための有力な選択肢の一つで言えるでしょう。

     

Otherカテゴリの最新記事