Re Reference AI

技術

LangChainとは

LLMアプリケーションの構築を、部品の組み合わせ(チェーン)として簡単にするPython/JavaScriptフレームワーク

フレームワークRAG

ひとことで言うと

AIアプリを部品の組み合わせのように作れる、開発用のフレームワーク。

概要

LangChainとは、LLMを使ったアプリケーションを構築するためのオープンソースのフレームワーク。 プロンプトの組み立て、外部データソースとの連携、ツール呼び出し、複数ステップの処理の連結(チェーン)等を、あらかじめ用意された部品(コンポーネント)を組み合わせる形で実装できるようにする。 RAGパイプラインの構築や、AIエージェントの実装によく利用され、Python版・JavaScript版が提供されている。 対応するLLMプロバイダ・ベクトルデータベース・ツールの種類が非常に多く、様々な外部サービスと連携するLLMアプリケーションの試作を素早く行える点が広く使われる理由の1つになっている。

背景

LLM活用が広がるにつれ、プロンプト管理・外部データ連携・ツール呼び出しといった、多くのLLMアプリケーションに共通する処理を毎回ゼロから実装する非効率が生じていた。 LangChainは、こうした共通処理を再利用可能な部品として提供することで開発を効率化するために開発された。

歴史

2022年10月: Harrison ChaseがLangChainを公開。 LLMアプリケーション開発の共通基盤として急速に普及し、その後の派生プロジェクト(LangGraph等)を含むエコシステムに発展した。

アーキテクチャ

プロンプトテンプレート、LLM呼び出しのラッパー、外部データ取得用のリトリーバー、ツール呼び出し、これらを連結するチェーンといったコンポーネント群から構成される。 各コンポーネントは共通のインターフェースを持ち、組み合わせて1つの処理フローを構築できる。

利点

  • RAG・ツール呼び出し等、LLMアプリケーションでよく使われる処理を部品として再利用できる
  • 対応するLLMプロバイダ・データソース・ツールの種類が豊富で、エコシステムが大きい

欠点

  • 抽象化の層が多く、内部の挙動を細かく制御・デバッグしたい場合に複雑さを感じることがある
  • バージョンアップの頻度が高く、APIの変更に追従する保守コストがかかりやすい

比較

  • LangGraphLangGraphは、LangChainのチームが開発した、より複雑な状態管理を伴うエージェント構築向けの派生フレームワーク
  • HaystackLangChainとHaystackは、いずれもRAGパイプラインの構築に使われる代表的なフレームワーク
  • RAGLangChainは、RAGパイプラインを構築するための代表的なフレームワークの1つ

関連用語

LangGraphHaystackRAGAIエージェントプロンプトチェイニング

よくある質問

LangChainとLangGraphはどちらを使うべき?

単純なチェーン処理であればLangChainのコンポーネントで十分な場合が多いが、条件分岐やループを伴う複雑なエージェントの状態管理が必要な場合はLangGraphが向くとされる。

参考文献

関連Zenn記事