- はじめに
- 【結論】LangChainとは「AIの万能接着剤」
- 図解でわかる!LangChainの3大機能
- Step 1: 必要なライブラリをインストール
- !pip install langchain-openai langchain-community faiss-cpu
- Step 2: ドキュメントを読み込む(例:社内マニュアルのテキストファイル)
- Step 3: ドキュメントを分割(AIが一度に読める量に小分けにする)
- Step 4: ベクトルDBに保存(検索できるように変換)
- Step 5: RAGチェーンを作成して質問する
- 「マニュアルの内容」をもとにAIが回答してくれる
- Step 1: 必要なライブラリをインストール
- !pip install langchain-openai langchain-community duckduckgo-search
- Step 2: 道具(ツール)を用意する
- Step 3: AIエージェントを作成(道具を持たせる)
- Step 4: エージェントに質問する(必要なら勝手に検索してくれる)
- LangChain vs LlamaIndex vs Haystack:どれを選ぶべきか
- 【実践】Google ColabでAIツールを作ってみよう
- APIキーをここに設定(本来は安全な管理が必要ですが、テスト用に直接代入します)
- 1. シェフ(AIモデル)を呼ぶ
- 2. 注文書(プロンプト)を作る
- {topic}の部分に好きな言葉が入ります
- 3. 盛り付け係(結果をきれいな文字にする)
- 4. 連結!(チェーン)
- パイプ(|)という記号で、左から右へデータが流れるようにつなぎます
- 「量子コンピュータ」について解説してもらう
- 【一次情報】累計200件で見えた失敗パターンTOP3
- NG: デフォルト設定のままだとループが止まらない
- OK: 反復上限とエラー処理を必ず設定する
- NG: 全会話履歴を蓄積し続ける(長期運用で破綻する)
- OK: 直近kターンのみ保持(コストと品質のバランスが良い)
- 応用:何ができるようになる?
- まとめ:LangChainとはAIの可能性を広げる最強ツール
- 参考文献・リンク
はじめに
「ChatGPTはすごいけど、最新のニュースを知らないのが不便…」
「社内のPDFファイルを読み込ませて回答させたい…」
そんな悩みを解決するのが、AI開発の現場で必須となっている「LangChain(ラングチェーン)」です。
私はこれまで、ランサーズ・クラウドワークスでChatGPT API連携・業務自動化ツールの案件を累計200件以上受注してきました(残念評価ゼロ)。その経験から言えるのは、「AIに手足を与える仕組みを知っているかどうかで、作れるものの幅が10倍変わる」ということです。
> 著者について: Python3エンジニア認定実践試験合格。AI業務自動化の専門フリーランスとしてランサーズ・クラウドワークスで累計200件以上の受注実績・残念評価ゼロ。tactical-ai.netにてAI活用・業務自動化の技術ブログを運営中。
LangChainとは、一言で言えばAIに「手足」を与えるPythonライブラリのことです。 GitHubで★9万以上のスターを獲得しており(2025年時点)、AI開発ライブラリの中でも世界トップクラスの採用実績を持ちます(公式ドキュメント)。名前は難しそうですが、中身はシンプルです。「AIという天才シェフに、包丁やレシピ本を渡して料理を作らせるための仕組み」のことです。
本記事では、エンジニアでなくても理解できるように、LangChainとは何か・その仕組みと使い方を解説します。
この記事で分かること:
- LangChainとは何か(概念・仕組み)
- Chains・RAG・Agentsの使い方(コード付き)
- 実際のクライアント案件での活用事例と失敗談
- LlamaIndex・Haystackとの違い(比較表付き)
【結論】LangChainとは「AIの万能接着剤」
ChatGPT(AIモデル)単体では、「脳みそ」しかありません。手も足も記憶力も持っていないのです。
- ChatGPTだけ: 「カレーの作り方は知ってるけど、実際に材料を買ったり、鍋を火にかけたりはできないよ」
- LangChainを使うと: 「ネットスーパーで材料を注文して(検索)、レシピ通りに調理して(実行)、お皿に盛り付けて出すね(出力)」
つまり、LangChainとはAIを「ただの話し相手」から「実際に仕事ができるツール」へと進化させるための連結パーツ(接着剤)です。AIに手足を与えることで、単独では不可能だった業務自動化が実現します。
実際、従業員30名規模のアパレルECスタートアップから受注した「商品説明文自動生成システム構築」案件では、LangChainを使った商品説明文の自動生成ツールを構築しました。それまで1件の説明文を書くのに平均15分かかっていたものが、LangChain導入後は1件あたり約40秒に短縮(処理時間96%削減)。月300件の出品作業が、実質ほぼ自動化されました。
図解でわかる!LangChainの3大機能
LangChainには多くの機能がありますが、初心者が覚えるべきは以下の3つだけです。
1. Chains(チェーン):AIへの指示を数珠つなぎにする
「英語に翻訳して」→「その内容を要約して」→「メールの下書きを作って」というように、複数の命令を連続で実行させる機能です。
イメージ: 工場のベルトコンベア。材料(入力)を置くと、自動的に加工されて完成品(出力)が出てきます。
2. RAG(ラグ):カンニングペーパーを渡す
AIは知らないこと(社内の極秘情報や最新ニュース)は答えられません。そこで、必要なデータを外部から引っ張ってきて、AIに見せながら答えさせる機能です。
イメージ: 試験中に「教科書(PDFや自社データ)」を持ち込んで、それを見ながら答案を書かせるようなものです。
#### RAGのコード例(Step形式)
“python
Step 1: 必要なライブラリをインストール
!pip install langchain-openai langchain-community faiss-cpu
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.document_loaders import TextLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain_community.vectorstores import FAISS
from langchain.chains import RetrievalQA
Step 2: ドキュメントを読み込む(例:社内マニュアルのテキストファイル)
loader = TextLoader("manual.txt", encoding="utf-8")
documents = loader.load()
Step 3: ドキュメントを分割(AIが一度に読める量に小分けにする)
splitter = CharacterTextSplitter(chunk_size=500, chunk_overlap=50)
docs = splitter.split_documents(documents)
Step 4: ベクトルDBに保存(検索できるように変換)
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.from_documents(docs, embeddings)
Step 5: RAGチェーンを作成して質問する
qa_chain = RetrievalQA.from_chain_type(
llm=ChatOpenAI(model="gpt-4o"),
retriever=vectorstore.as_retriever()
)
「マニュアルの内容」をもとにAIが回答してくれる
result = qa_chain.invoke("有給休暇の申請手順を教えて")
print(result["result"])
`
> ポイント: chunk_size=500はドキュメントの分割サイズです。長すぎるとコストが上がり、短すぎると文脈が切れます。実案件では300〜600が最適でした。
---
RAGのコードはこのままGoogle Colabに貼り付けて実行できます。 manual.txtを自分のテキストファイルに変えるだけで、すぐに「社内データに答えるAI」が完成します。まず動かしてみることが理解への最短経路です。
実装で詰まった場合はランサーズからお気軽にご相談ください。
---
3. Agents(エージェント):道具を使わせる
AIに「Google検索」や「計算機」などの道具を持たせ、AI自身に「あ、これは今の知識じゃわからないから検索しよう」と判断させて行動させる機能です。
イメージ: 優秀な秘書。「航空券取っておいて」と言えば、勝手にカレンダーを見て、空き状況を検索し、予約まで完了してくれます。
#### Agentsのコード例(Step形式)
`python
Step 1: 必要なライブラリをインストール
!pip install langchain-openai langchain-community duckduckgo-search
from langchain_openai import ChatOpenAI
from langchain.agents import initialize_agent, AgentType
from langchain_community.tools import DuckDuckGoSearchRun
Step 2: 道具(ツール)を用意する
search_tool = DuckDuckGoSearchRun()
tools = [search_tool]
Step 3: AIエージェントを作成(道具を持たせる)
llm = ChatOpenAI(model="gpt-4o", temperature=0)
agent = initialize_agent(
tools=tools,
llm=llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True # Trueにすると思考過程が見える
)
Step 4: エージェントに質問する(必要なら勝手に検索してくれる)
result = agent.invoke("2026年3月の為替レート(USD/JPY)を調べて、100ドルは何円か教えて")
print(result["output"])
`
> 注意点: verbose=Trueにすると、AIがどの道具を使ってどう考えたかが確認できます。デバッグ時には必ずオンにしましょう。
LangChain vs LlamaIndex vs Haystack:どれを選ぶべきか
「LangChainの他にもLlamaIndexやHaystackがあると聞いたけど何が違うの?」—実案件でよく聞かれる質問です。200件の受注経験から、選定基準をまとめました。
| 比較項目 | LangChain | LlamaIndex | Haystack |
|:--------|:----------|:-----------|:---------|
| 主な用途 | 汎用LLMアプリ開発 | RAG・検索特化 | エンタープライズNLP |
| 学習コスト | 中(概念が多い) | 低〜中(RAGがシンプル) | 高(設定項目が多い) |
| RAG構築 | 可能、汎用的 | 最も得意 | 可能、Pipeline形式 |
| Agent機能 | 豊富 | 限定的 | 限定的 |
| GitHubスター | ★9万以上 | ★4万以上 | ★2万以上 |
| 日本語情報量 | 多い | 中程度 | 少ない |
| 向いている案件 | 複雑な自動化全般 | 社内文書Q&A特化 | 大規模検索システム |
LangChainを使わなかった案件
社内規程PDFに特化したQ&Aシステムの案件では、LangChainではなくLlamaIndexを選びました。LangChainでも実装はできますが、LlamaIndexはRAGの設定がより直感的で、PDFのチャンク分割・インデックス構築が約3分の1のコード量で済んだためです。
判断基準:「RAGだけ作りたい」→ LlamaIndex、「検索以外の自動化も組み合わせたい」→ LangChain。 この使い分けが200件を経た結論です。逆に言えば、LangChainを選んでおけば後からRAG以外の機能を追加しやすいという拡張性が最大のメリットです。
【実践】Google ColabでAIツールを作ってみよう
ここからは実際に、Googleが提供する無料のプログラム実行環境「Google Colab」を使って、LangChainを動かしてみましょう。
※Googleアカウントがあれば誰でも無料でできます。
Step 1: 準備(ライブラリのインストール)
Google Colabを開き、以下のコードを貼り付けて再生ボタン(▶)を押してください。LangChainという道具箱をインストールします。
`
!pip install langchain-openai langchain-core
`
Step 2: AI(シェフ)と注文書(プロンプト)の用意
次に、AIに指示を出すための準備をします。ここでは最新の書き方(LCEL記法)を使いますが、やっていることは「つなぐ」だけです。
※OpenAIのAPIキーが必要です。
`python
import os
APIキーをここに設定(本来は安全な管理が必要ですが、テスト用に直接代入します)
os.environ["OPENAI_API_KEY"] = "sk-あなたのAPIキーを入力してください"
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
1. シェフ(AIモデル)を呼ぶ
model = ChatOpenAI(model="gpt-4o")
2. 注文書(プロンプト)を作る
{topic}の部分に好きな言葉が入ります
prompt = ChatPromptTemplate.from_template("{topic}について、中学生でもわかるように3行で解説して")
3. 盛り付け係(結果をきれいな文字にする)
parser = StrOutputParser()
4. 連結!(チェーン)
パイプ(|)という記号で、左から右へデータが流れるようにつなぎます
chain = prompt | model | parser
`
Step 3: 実行!
最後に、チェーンを実行してみましょう。
`python
「量子コンピュータ」について解説してもらう
result = chain.invoke({"topic": "量子コンピュータ"})
print(result)
`
実行結果の例:
「従来のコンピュータは0か1しか扱えませんが、量子コンピュータは0と1を同時に扱える不思議な機械です。
これにより、スーパーコンピュータでも何万年もかかる計算を、一瞬で解く可能性を秘めています。
まだ開発途中ですが、新しい薬の開発やAIの進化に役立つと期待されています。」
【一次情報】累計200件で見えた失敗パターンTOP3
200件以上の実案件を経て、初心者がLangChainでつまずくパターンは明確に絞られています。他の解説記事では読めない、クライアントワークの現場から得た失敗と解決策をまとめます。
失敗TOP1:プロンプトに全データを突っ込んでAPIコスト月10万円超え
従業員50名規模のIT商社から受注した「社内FAQ検索チャットボット開発」案件でのことです。クライアントから「チャットボットに社内FAQ500件を全部覚えさせてほしい」という依頼がありました。
最初は「プロンプトに全部突っ込めばいい」と考え、500件のFAQをそのままシステムプロンプトに貼り付けました。結果、1回の質問あたりのAPIコストが約25円になり、月間コストが10万円超えの見積もりに。クライアントから「高すぎる」と言われ、その場で方針転換。
RAGに切り替えてベクトルDBで検索させるように実装し直したところ、1回あたりのコストが約0.3円(98.8%削減)になりました。この経験から、「大量データはRAG、少量の指示はプロンプトに入れる」という使い分けを徹底するようになりました。
失敗TOP2:Agent無限ループで1日サーバーコスト3,000円超え
都内で物件1,000件超を管理する不動産管理会社からの「問い合わせ対応チャットボット開発」案件で、LangChain AgentsにAIの手足として物件情報DBを繋いだチャットボットを構築した時のことです。
初期実装でAgentが無限ツール呼び出しループに陥り、サーバーコストが1日で3,000円超える事故が発生しました。原因は「答えが見つからない時にAgentが同じ検索を繰り返す」というLLMの特性を見落としていたことです。
`python
NG: デフォルト設定のままだとループが止まらない
agent = initialize_agent(tools=tools, llm=llm, ...)
OK: 反復上限とエラー処理を必ず設定する
agent = initialize_agent(
tools=tools,
llm=llm,
max_iterations=10, # ループ上限
handle_parsing_errors=True, # パースエラーで止まらない
...
)
`
max_iterations=10とhandle_parsing_errors=Trueを追加するだけで解決。本番後は月200件の問い合わせ対応を自動化し、人件費換算で月8万円分の工数削減を達成しました。Agentsを使う場合はこの2行を忘れずに入れてください。
失敗TOP3:会話履歴の蓄積でコストが指数関数的に増加
長期運用チャットボット案件でConversationBufferMemory(会話履歴をすべてAIに渡す機能)を使ったところ、会話が30ターンを超えた時点でコンテキスト上限オーバーのエラーが発生。それ以前の段階でも会話が長くなるにつれてAPIコストが指数関数的に増加していました。
解決策はConversationBufferWindowMemory(k=5)で直近5ターンのみ保持する設定への変更です。コストを約70%削減しながら、会話の自然さは維持できました。
`python
NG: 全会話履歴を蓄積し続ける(長期運用で破綻する)
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory()
OK: 直近kターンのみ保持(コストと品質のバランスが良い)
from langchain.memory import ConversationBufferWindowMemory
memory = ConversationBufferWindowMemory(k=5)
“
応用:何ができるようになる?
LangChainとはAIに手足を与える仕組みです。この基本的な「つなぐ」仕組みを応用すると、以下のようなツールが作れます。
- YouTube要約AI: 動画のURLを渡すと、字幕データを取得し(Tool)、要約して(Chain)、ブログ記事にする。
- 社内ヘルプデスク: マニュアルPDFを全部読み込ませ(RAG)、社員の質問に「マニュアルの〇ページに書いてあります」と答えるbot。
- 価格調査エージェント: 競合商品の価格を自動でWeb検索して比較レポートを作成(Agent)。関東に20店舗を展開する飲食チェーンの「競合価格モニタリング自動化」案件で実際に導入し、週次レポート作成の工数を4時間→15分に削減した実績があります。
まとめ:LangChainとはAIの可能性を広げる最強ツール
LangChainとはAIに手足を与えるPythonライブラリ—それが今回の核心です。
- LLM(脳)だけでは仕事はできない。
- LangChainでAIに手足を与えれば、AIは最強の社員になる。
- Chains・RAG・Agentsの3機能を組み合わせれば、ほとんどの業務自動化が実現できる。
最初は難しく感じるかもしれませんが、やっていることは「ブロックを並べて命令の流れを作る」だけです。まずはChainsのコードをそのままコピーして実行することから始めてみてください。
次のステップとして、RAGの詳細実装やAgentsの活用事例も当ブログ(tactical-ai.net)で随時公開しています。
「自分の業務に使えそう」と感じた方は、ぜひコメントで業種・用途を教えてください。具体的な実装方法を一緒に考えます。
参考文献・リンク
—
この記事の内容に関する開発・自動化のご依頼はお気軽にご相談ください。
累計200件以上の受注実績・残念評価ゼロ。


コメント