本文へ移動

AI導入・開発

LangChainとは?主な機能とPythonでの使い方、企業で使う注意点

LangChainとは?主な機能とPythonでの使い方、企業で使う注意点

LangChainとは、大規模言語モデル(LLM)を使うアプリやAIエージェントを作るための、オープンソースのフレームワークです。OpenAI、Anthropic、Googleなど各社のモデルを同じ書き方で呼び出せ、モデルにツールを使わせるエージェントや、社内文書を検索して答える仕組み(RAG)の部品もそろっています。2026年10月7日時点の最新版はv1.4.3で、v1になってからパッケージの構成や基本の書き方が大きく変わりました。この記事では、今の公式ドキュメントに沿って、LangChainの構成と主な機能、Pythonでのインストールと最小のコード、LangGraphやDify、各社のAgent SDKとの使い分け、企業で使うときの注意を説明します。

LangChainとは:LLMアプリとエージェントを作るためのフレームワーク

LangChainは、LangChain社がGitHubの langchain-ai/langchain で公開しているフレームワークです。ライセンスはMITで、Python版とJavaScript・TypeScript版があります。公式ドキュメントは、LangChainの中心を create_agent という関数に置いています。エージェントを「モデル」と、その周りの「ハーネス」(指示文、ツール、動作を調整するミドルウェア)の組み合わせとして説明し、用途に必要な部品だけを選んで組み合わせる作り方を勧めています。

もう1つの特徴は、モデルを呼び出す書き方が提供元によらず共通していることです。提供元ごとの連携用パッケージが同じ形の窓口を持つため、接続先のモデルを変えても、アプリの処理の大部分は書き直さずに済みます。

v1で変わったこと

インターネット上の解説記事やサンプルコードには、v1より前の書き方のものが多く残っています。公式の「What's new in LangChain v1」によると、v1では主に次の3点が変わりました。

  • エージェントの作り方:create_agent が標準になり、以前の langgraph.prebuilt.create_react_agent を置き換えました。
  • 応答の扱い方:提供元ごとに形の違う応答を、共通の content_blocks で読めるようになりました。
  • パッケージの整理:langchain の中身をエージェント作りに必要な部品に絞り、以前のチェーン(LLMChain など)や langchain.retrievers などは langchain-classic という別のパッケージに移しました。

古い記事のコードが from langchain.chains import ... のように書かれている場合、今の langchain ではそのまま動きません。langchain-classic を入れて読み込み先を langchain_classic に変えるか、create_agent を使う書き方に移します。

パッケージの構成と最新の版

LangChainは、役割ごとに複数のパッケージに分かれています。2026年10月7日にPyPIとGitHubのリリースで確認した版は次のとおりです。

  • langchain(1.4.3、9月28日公開):create_agent、モデルの初期化、ツール、メッセージなど、アプリを作るときに読み込む本体です。
  • langchain-core(1.6.7、10月6日公開):各パッケージが共通で使う基本の型と窓口です。
  • 提供元ごとのパッケージ:langchain-openai(1.6.7)、langchain-anthropic(1.7.5)、langchain-google-genai(4.4.0)など、モデルの提供元ごとに分かれています。
  • langchain-text-splitters(1.1.3):RAGで文書を小さな塊に分ける部品です。
  • langchain-classic(1.0.8):v1より前のチェーンや、以前の検索用の部品を残したパッケージです。

いずれもPython 3.10以上が必要です。公式のクイックスタートは、Python 3.11を入れた環境を例にしています。

LangGraph、LangSmith、Deep Agentsとの関係

LangChainの開発元は、ほかにも関連する製品を出しています。公式ドキュメントの説明では、それぞれの役割は次のように分かれています。

LangChainと関連する製品の役割

図をタップすると拡大します

図の要点をテキストで読む

LangChainの開発元が提供する4つの製品の役割を並べた図。LangChainはエージェントを作るためのフレームワークで、create_agent、提供元によらない共通のモデルの書き方、ツールとミドルウェア、RAG用の部品を持つ。LangGraphはLangChainのエージェントの土台になる低いレベルの仕組みで、処理の流れの細かな制御、途中で止まっても再開できる実行、状態の保存、途中での人の確認を担う。Deep AgentsはLangChainのエージェントの上に作られ、計画、サブエージェント、ファイルを扱う道具、会話の圧縮を最初から組み込んでいる。1.0前のため小さな版の更新でも書き方が変わることがある。LangSmithはライブラリではなくサービスで、動きの記録、評価、指示文の管理を行い、LangChain以外のフレームワークにも使える。LangChain、LangGraph、Deep AgentsはMITライセンスのオープンソース。

LangGraphは、長い時間動き続けるエージェントや、状態を持つ処理の流れを組むための低いレベルの仕組みです。途中で止まっても再開できる実行、処理の途中での人の確認、状態の保存などを担います。LangChainのエージェントはLangGraphの上に作られていますが、公式ドキュメントは、LangChainを使うだけならLangGraphを知らなくてもよいとしています。LangGraphの仕組みと使い方は、LangGraphとは?仕組みと使い方、LangChainとの違いで解説しています。

Deep Agentsは、LangChainのエージェントの上に、計画を立てる機能、サブエージェント、ファイルを扱う道具、長くなった会話の圧縮などを最初から組み込んだものです。公式ドキュメントは、機能のそろったエージェントをすぐ使いたいならDeep Agents、細かく作り込みたいならLangChainの create_agent を勧めています。

LangSmithは、エージェントの動きを記録して調べ、評価するためのサービスです。LangChainやLangGraphで作ったものに限らず、ほかのフレームワークで作ったエージェントにも使えます。LangChainとLangGraphがオープンソースのライブラリであるのに対し、LangSmithは開発元が提供するサービスで、料金のプランがあります。

LangChainの主な機能:モデル、ツール、エージェント、RAGの部品

モデルの呼び出し

モデルは init_chat_model で用意します。"openai:gpt-6.1-sol" のように「提供元:モデル名」の形で指定すると、対応する連携用パッケージが使われます。用意したモデルは、1回で答えを返す invoke、生成中の文章を少しずつ受け取る stream、複数の依頼をまとめて送る batch で呼び出せます。ツールの呼び出し、決まった形式での出力(構造化出力)、画像などの入力にも、共通の書き方で対応しています。

公式ドキュメントによると、連携用パッケージはモデル名をそのまま提供元のAPIに渡します。そのため、提供元が新しいモデルを出したときも、LangChainの更新を待たずにモデル名を変えるだけで試せます。使ったトークンの数は、提供元が返す場合に応答のメッセージに記録されます。

ツール

ツールは、エージェントに外部のデータを取りに行かせたり、操作をさせたりするための関数です。Pythonの関数に @tool を付けるか、型ヒントと説明文(docstring)を書いた関数をそのまま渡します。型ヒントは入力の形を決めるために必須で、説明文は「どんなときにこのツールを使うか」をモデルが判断する材料になります。ツールの名前や引数の名前もモデルへの指示の一部になるため、何をする関数かがわかる名前にしておきます。

エージェント

create_agent で作るエージェントは、モデルがツールを選んで呼び出し、その結果を見て次の行動を決める、という繰り返しで動きます。モデルがツールを呼ばなくなった時点で、最終の回答を返して終わります。

この繰り返しの各段階に処理を差し込むのがミドルウェアです。公式には、個人情報をモデルに送る前に伏せる PIIMiddleware、長くなった会話を要約する SummarizationMiddleware、決められたツールを実行する前に人の承認を求める HumanInTheLoopMiddleware などが用意されています。自分でミドルウェアを書けば、モデルを呼ぶ前後やツールを実行する前後に独自の確認を入れられます。

社内システムとの連携には、MCP(Model Context Protocol)も使えます。2026年9月1日に公開されたv1.4.0から、MCPの機能が langchain.mcp として本体に入りました。pip install "langchain[mcp]" で入れ、MCPAdapter でMCPサーバーのツールを読み込んでエージェントに渡します。以前の langchain-mcp-adapters を置き換えるものですが、2026年10月7日時点ではベータ版で、仕様が変わる可能性があると明記されています。MCPの仕組みと権限の考え方は、MCPとは?MCPサーバーの仕組みと社内システム連携の権限設計で解説しています。

RAG用の部品

社内文書をもとに答えさせるRAGには、文書を読み込む部品(ドキュメントローダー)、文書を小さな塊に分ける部品(テキストスプリッター)、文章を数値の並びに変える埋め込みモデル、その数値を保存して検索するベクトルストア、質問に合う文書を返すリトリーバーが用意されています。部品ごとに差し替えられるので、たとえばベクトルストアだけを別の製品に変えることもできます。

LangChainでRAGを組むときの部品

図をタップすると拡大します

図の要点をテキストで読む

LangChainでRAG(検索拡張生成)を組むときに使う部品を、処理の順に並べた図。まずドキュメントローダーでファイルや社内のサービスから文書を読み込む。次にテキストスプリッターで文書を検索しやすい大きさの塊に分ける。埋め込みモデルで各塊を、意味が近いほど近くなる数値の並びに変える。ベクトルストアにその数値を保存し、質問も同じように数値にして近い塊を探す。最後にリトリーバーが探した塊をモデルに渡し、モデルがその内容をもとに回答を作る。部品は1つずつ差し替えられる。

公式ドキュメントは、RAGの組み方を3つに分けています。必ず検索してから回答を作る「2-Step RAG」は、動きが予測しやすく、FAQや社内文書の案内に向きます。エージェントがツールとして検索を使い、検索するかどうかや回数を自分で決める「Agentic RAG」は、柔軟な代わりに応答時間が読みにくくなります。両方の特徴を組み合わせ、検証の工程を入れる形もあります。すでに社内に検索の仕組みやデータベースがある場合は、作り直さずにツールとしてエージェントにつなげる方法も示されています。RAGの仕組みや精度の上げ方は、RAG(検索拡張生成)とは?仕組みと作り方、精度を上げる方法で詳しく説明しています。

LangChainの使い方:インストールと最小のコード(Python)

ここからは、2026年10月7日時点の公式ドキュメントに沿って、Pythonでエージェントを1つ動かすまでの手順を示します。モデルにはOpenAIのものを使います。

インストールとAPIキーの設定

本体と、使うモデルの提供元のパッケージを入れます。

pip install -U langchain langchain-openai

uvを使う場合は uv add langchain langchain-openai です。次に、モデルの提供元で発行したAPIキーを環境変数に設定します。macOSやLinuxでは export OPENAI_API_KEY="発行したキー"、WindowsのPowerShellでは $env:OPENAI_API_KEY="発行したキー" を実行します。キーをコードに直接書かないことは、後の節で説明する企業での注意にも関わります。

モデルを呼び出す

まず、エージェントを使わずにモデルだけを呼び出します。

from langchain.chat_models import init_chat_model

model = init_chat_model("openai:gpt-6.1-sol")
response = model.invoke("LangChainを一文で説明してください。")
print(response.text)

gpt-6.1-sol は、OpenAIのモデル一覧で2026年10月7日に確認したモデルです。一覧では、最も性能の高いGPT-6 Astraに近い性能を、より低いコストで使えるモデルと説明されています。モデル名は短い間隔で入れ替わるため、使う前に提供元の一覧で確かめます。LangChainの公式ドキュメントの例でも、提供元の最新の一覧と異なるモデル名が使われていることがあります。

ツールを使うエージェントを作る

次に、ツールを1つ持つエージェントを作ります。店舗の営業時間を返す関数をツールとして渡す例です。

from langchain.agents import create_agent

def get_business_hours(store: str) -> str:
    """店舗の営業時間を返す。"""
    hours = {"渋谷店": "10時から20時", "梅田店": "11時から21時"}
    return hours.get(store, "その店舗の情報はありません")

agent = create_agent(
    model="openai:gpt-6.1-sol",
    tools=[get_business_hours],
    system_prompt="あなたは店舗の問い合わせに答えるアシスタントです。",
)

result = agent.invoke(
    {"messages": [{"role": "user", "content": "渋谷店は何時まで開いていますか?"}]}
)
print(result["messages"][-1].text)

モデルは質問を読んで get_business_hours を呼ぶと判断し、その結果をもとに回答を作ります。result["messages"] には、質問、ツールの呼び出し、ツールの結果、最終の回答が順に入っています。

OpenAIのモデル一覧によると、GPT-6.1 Solでツールを使うにはResponses APIを使う必要があります。2026年10月7日に langchain-openai 1.6.7のソースコードで確かめたところ、モデル名が gpt-6 で始まりツールを渡したときは、自動でResponses APIに切り替える作りになっていました。古い版の langchain-openai を使っている場合は、この切り替えが入っているかを確かめるか、ChatOpenAI(model="gpt-6.1-sol", use_responses_api=True) のように明示して作ったモデルを渡します。

動きを記録する

エージェントがどのツールをどの順で呼んだかを確かめるには、LangSmithを使います。LangSmithでアカウントを作ってAPIキーを発行し、環境変数 LANGSMITH_TRACING を true に、LANGSMITH_API_KEY に発行したキーを設定して実行し直すと、呼び出しの記録が画面で見られます。既定の接続先は米国のリージョンで、EUなど別のリージョンのアカウントでは LANGSMITH_ENDPOINT も設定します。

LangGraph、Dify、各社のAgent SDKとの使い分け

LLMを使ったアプリやエージェントを作る道具は、LangChainのほかにもあります。何を作るか、誰が作って保守するかで選び方が変わります。

LangChainとほかの選択肢の使い分け

図をタップすると拡大します

図の要点をテキストで読む

LLMを使ったアプリやエージェントを作る4つの選択肢を比べた表。LangChainはPythonやTypeScriptのコードで書き、create_agentでエージェントを作る。複数の提供元のモデルを比べたい場合や、RAGの部品をそろえたい場合に向く。LangGraphもコードで書き、処理の流れを細かく決める。決まった手順とモデルの判断を混ぜる業務や、承認待ちを含む長い処理に向く。Difyは画面上で部品をつないで作り、コードを書かない担当者と流れを確かめたい場合や、Webアプリとしてすぐ公開したい場合に向く。各社のAgent SDK(OpenAI Agents SDK、Claude Agent SDK、Google ADKなど)はコードで書き、特定の提供元のモデルと機能を深く使う場合に向く。

LangGraphは、処理の流れを自分で細かく決めたいときに使います。決まった手順で動く工程とモデルに判断させる工程を1つの流れに混ぜられ、途中の状態を保存して後から再開できます。承認を待つあいだ処理を止めておく業務や、何時間もかかる処理に向いています。LangChainの create_agent で足りるうちはLangChainで作り、流れを細かく制御する必要が出たらLangGraphで組む、という順に検討できます。

Difyは、画面上で部品をつないでAIアプリを作る開発基盤です。コードを書かない担当者も処理の流れを確かめやすく、Webアプリとしての公開まで同じ画面で済みます。一方で、既存の業務システムと深く連携する処理や、通常のソフトウェアと同じ手順でテストやレビューを回したい処理は、LangChainのようにコードで書くほうが管理しやすいことがあります。Difyの特徴はDifyとは?できること、使い方とクラウド版・セルフホスト版の違いで紹介しています。

各社のAgent SDKは、モデルの提供元が出しているエージェント作りのためのライブラリです。OpenAI Agents SDKは、エージェント、ほかのエージェントへの引き継ぎ、入出力の検証(ガードレール)を基本の部品とし、OpenAIのモデルを前提にしながら、アダプターを通してほかのモデルも使えます。AnthropicのClaude Agent SDKは、Claude Codeと同じツールやエージェントの仕組みをPythonとTypeScriptのライブラリとして使えるもので、利用にはAnthropicの商用利用の規約が適用されます。GoogleのAgent Development Kit(ADK)は、Python、TypeScript、Go、Java、Kotlinで使え、Geminiのモデルを中心にしながら、アダプターを通してほかのモデルにも対応します。作ったエージェントをGoogle Cloudに展開する方法も用意されています。

特定の提供元のモデルと機能を深く使うなら、その提供元のSDKが向きます。複数の提供元のモデルを比べたい、将来モデルを切り替える可能性がある、RAGの部品やほかのサービスとの連携をまとめてそろえたい、という場合はLangChainが候補になります。どの型のエージェントにするかは、AIエージェントの設計パターンとは?6つの型と業務に合わせた選び方も参考にしてください。

企業でLangChainを使うときの注意

版の更新が速い

LangChainは更新の頻度が高いフレームワークです。公式のリリース方針によると、細かな修正の版(パッチ)は週に数回出ることもあります。v1からはセマンティックバージョニングに従っており、1.xの範囲内の更新では既存の書き方が使えなくなる変更をせず、そうした変更は2.0のような大きな版の更新だけで行うとしています。v1.0は長期サポートの対象で、2.0が出た後も少なくとも1年は、セキュリティの修正と重大な不具合の修正が続きます。

古い版を使っている場合は、サポートの期限に注意が必要です。v1より前のLangChain 0.3とLangGraph 0.4は、2026年12月までの保守の扱いです。0.3のまま動いているシステムは、移行の計画を立てる時期に来ています。

更新の方針は製品ごとに異なります。Deep Agentsは1.0に達していない段階で、小さな版の更新でも書き方が変わることがあり、2026年7月のv0.7.0では計画を立てる機能が初期状態から外れました。v1.4.0で入ったMCPの機能のように、ベータ版と明記された機能もあります。本番で使う場合は、版を固定して記録し、更新の前に変更履歴(Changelog)を読み、テストを通してから上げる手順を決めておきます。

評価とログ

エージェントは、同じ質問でも毎回同じ手順をたどるとは限りません。本番で使う前に、想定する質問と正しい答えの組を用意し、モデルや指示文を変えるたびに同じ条件で比べる仕組みを作っておきます。LangSmithでは、動きの記録に加えて、こうした評価用のデータを使った比較もできます。試作から本番へ移すときの確認項目は、AIのPoCを本番運用に移すには?止まる理由と移行前の確認項目で整理しています。

記録の扱いには注意します。LangSmithのクラウド版では、記録は開発元のクラウドに保存されます。公式ドキュメントは、入力と出力を記録に残さない設定(LANGSMITH_HIDE_INPUTS と LANGSMITH_HIDE_OUTPUTS)や、決まった形の文字列を伏せる方法を案内しています。データを自社の環境に置く必要がある場合は、Enterpriseプランで提供されるBYOC(自社のクラウド環境にデータを置く形)かセルフホストを検討します。

ライセンス

LangChain、LangChain Core、LangGraph、各提供元向けの主なパッケージは、PyPIでMITライセンスと表示されています。ただし、リリース方針によると、開発元が保守していない連携用パッケージは、版の付け方や安定性の方針が異なることがあります。使うパッケージごとに、ライセンスと誰が保守しているかを確かめます。モデルそのものの利用条件は、モデルの提供元の規約に従います。LangSmithを使う場合は、そのサービスの規約とプランも確認の対象です。

APIキーと権限の管理

モデルの提供元とLangSmithのAPIキーは、環境変数やシークレットの管理サービスに置き、コードやリポジトリに書き込みません。部署やアプリごとにキーを分けておけば、利用料の確認や、漏れたときの停止がしやすくなります。

エージェントに渡すツールの権限は、特に慎重に決めます。LangChainのセキュリティ方針は、エージェントに与えた権限は、その範囲で使われうるものとして扱うよう求めています。たとえば、データを削除できる認証情報を渡せば、モデルが実際に削除する可能性があるということです。読み取り専用の認証情報を使う、操作できるディレクトリを限る、コンテナの中で動かす、といった対策を重ねます。外部に影響する操作の前には、HumanInTheLoopMiddleware などで人の承認を挟みます。どこまでをエージェントに任せるかの考え方は、AIエージェントとは?仕組みとできること、作り方と導入の進め方でも説明しています。

想定例:見積もりの下書きを作るエージェント

以下は説明のための架空の例です。営業部門で、顧客からの問い合わせメールを読み、価格表をもとに見積もりの下書きを作るエージェントをLangChainで作るとします。

ツールは、価格表のデータベースを読む関数と、見積書の下書きを保存する関数の2つにします。データベースには読み取り専用の認証情報で接続し、下書きは決まったフォルダにしか保存できないようにします。顧客にメールを送る機能はエージェントに持たせず、担当者が下書きを確かめてから自分で送ります。値引きの判断が必要な問い合わせには、下書きを作らずに担当者へ回すよう指示文に書きます。開発中はLangSmithで動きを記録し、過去の問い合わせ30件で下書きの正しさを確かめてから使い始めます。LangChainの版は固定し、更新は月に1回、同じ30件で結果を比べてから行います。

LangChainを業務に取り入れるには

LangChainは、モデルの呼び出し、ツール、エージェント、RAGの部品を共通の書き方でそろえたフレームワークです。数行のコードでエージェントを動かせますが、業務で使い続けるには、版の固定と更新の手順、評価とログの扱い、APIキーとツールの権限を先に決めておく必要があります。画面で組み立てたいならDify、流れを細かく制御したいならLangGraph、特定の提供元の機能を深く使うならその提供元のSDK、というように、作るものと体制に合わせて選びます。

inovieでは、LangChainなどのフレームワークを使ったAIエージェントの試作から、業務データでの評価、既存システムとの連携、本番運用の設計までを支援しています。支援の範囲はAI導入・システム開発の支援をご覧ください。どのフレームワークで作るかを検討している段階でも、お問い合わせからご相談いただけます。

出典確認日:2026-10-07

この記事をシェアする

← ブログ一覧に戻る記事の先頭へ ↑