LangGraphによる複雑なLLMアプリケーション開発の実装

CCCMKホールディングス株式会社 / Ryoichi.Miura
テックリード / テックリード / 従業員規模: 51名〜100名 / エンジニア組織: 501名〜1,000名
ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|
10名以下 | 2024年5月 | B to B |
ツールの利用規模 | 10名以下 |
---|---|
ツールの利用開始時期 | 2024年5月 |
事業形態 | B to B |
アーキテクチャ
アーキテクチャの意図・工夫
このシステムでLLMに長い文章全体を参照させ要約や回答生成を行うことが出来るアプリケーションを稼働しています。
- 社内の閉じたネットワーク上で稼働
- Azure VMで構築したサーバでオープンソースLLMを稼働
- LangGraphのSend APIによってMap-Reduce型の処理を実装
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
Large Language Model(LLM)アプリケーション開発フレームワーク"LangChain"を使ったRetrieval-augmented generation(RAG)を中心としたLLMアプリケーションを開発していました。
LLMの活用が進むにつれ、機能の追加(たとえばユーザーの入力に応じてLLMが参照するデータを自律的に切り替える)や、回答精度の向上が求められるようになり、それらを実現するために複雑な処理の実装が必要になりました。
これらをスクラッチで実装しようとすると、コードが複雑になる・開発者や要件によって実装にブレが生じる、といった課題が目立つようになりました。
どのような状態を目指していたか
- 開発者や要件に関わらずコードに統一感を持たせられること
- 簡潔さだけでなく、開発者がLLMに関する新しい技術や手法をスムーズに取り入れられること
比較検討したサービス
- CrewAI
- AutoGen
比較した軸
- 取得が出来るだけ容易であること
- 研究開発部門なので、論文で提案されるような最新の手法を柔軟に実装出来ること
選定理由
- LangGraphはLangChainの拡張であり、他のフレームワークに比べ取得が比較的容易だったこと
- RAGの発展型の実装例が公式のドキュメントで紹介されているなど、ドキュメントが豊富だったこと
- 利用ユーザーが多く関連情報の取得が比較的容易だったこと
導入の成果
改善したかった課題はどれくらい解決されたか
LangGraphはNodeとEdgeで構成されるグラフ構造でアプリケーションを表現するため、ある程度決まったフォーマットで開発を進められるようになりました。さらに、Multi-AgentやRAGの発展型といった最新手法を活用した複雑な処理がLangGraphを使うことで比較的容易に組めるようになりました。
どのような成果が得られたか
LLMアプリケーション開発のスピードを向上させることが出来、いくつかのアプリを社内向けにリリースすることが出来ました。さらにLLMと外部APIなどのツール連携もLangGraphでは比較的容易に実装したり追加することが出来るようになりました。
導入時の苦労・悩み
開発スピードが速く、新しい機能や概念が高頻度で追加されるため、常にキャッチアップが必要。また、過去のドキュメントの内容が最新バージョンでは通用しないことも多かったです。
導入に向けた社内への説明
上長・チームへの説明
チーム内でLangGraphを使った基本的なLLM Agentアプリのコードを共有しました。また、LangGraphを使って当時注目を集めていたMulti-Agentを取り入れたアプリを開発し社内への共有を行いました。生成された結果に対して良好な評価を得ることが出来ました。
活用方法
複雑な処理が必要になるLLMアプリケーションを開発する際にAIエンジニアリングチームで利用しています。
よく使う機能
- Checkpointer: 会話の履歴などのアプリケーションの状態を保存したい時に使用
- get_graph: アプリケーション全体をグラフ描画する時に使用
- Command: グラフノード移行先と渡すパラメータを同時に記述可能。グラフ構築がシンプルに書ける
- Send: Map-Reduce処理を実装する時に使用
ツールの良い点
- 利用ユーザーが多くドキュメントが豊富
- プリミティブな機能が揃っているため柔軟な処理が組みやすい
- LangChainから自然に拡張できる
ツールの課題点
- 柔軟に処理が組める一方、常にある程度の量のコーディングが求められる
ツールを検討されている方へ
LangChainを使った実装経験があれば、導入のハードルは低いと思います。 公式のドキュメントに様々な実装例が紹介されていますので、それを見ながらNotebookなどで実際に試してみると、理解が深まると思います。
今後の展望
- LangGraph Studioという専用のIDEを試したい。
- Multi-Agentによる自動データ分析システムの開発。

CCCMKホールディングス株式会社 / Ryoichi.Miura
テックリード / テックリード / 従業員規模: 51名〜100名 / エンジニア組織: 501名〜1,000名

CCCMKホールディングス株式会社 / Ryoichi.Miura
テックリード / テックリード / 従業員規模: 51名〜100名 / エンジニア組織: 501名〜1,000名
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法