書評:LangChainとLangGraphによるRAG・AIエージェント[実践]入門
2024年11月9日(金)に発売予定の「LangChainとLangGraphによるRAG・AIエージェント[実践]入門」を著者から献本いただきましたので、書評を書かせていただきます。ありがとうございます!
書籍の概要
この書籍は、ジェネラティブエージェンツ社の3名による共著で、OpenAIのチャットAPI、LangChain、LangGraphを活用し、大規模言語モデル(LLM)を本番環境で運用するための技術を学べる実践的な内容になっています。
LLMの基礎的な使い方から、RAGアプリケーションやAIエージェントシステムの構築まで、具体的な手順が丁寧に解説されています。初めてLLMを利用する方も、応用的なRAGアプリやAIエージェント開発に挑戦したい方も、体系的なスキルを習得できる一冊です。
使っているツールや技術について、一つひとつ丁寧にかかれており、現在のAI開発の最新トレンドをキャッチアップするのに最適な本だと思います。
目次
目次は次のとおりです。
500ページ弱の大変ボリュームのある内容になっています。
著者の吉田さんと大嶋さんは、昨年「ChatGPT/LangChainによるチャットシステム構築[実践]入門」を出版されており、こちらは約280ページの内容でした。今回の新刊は目次を見ても、内容が大幅にパワーアップしていることがわかります。
ChatGPT/LangChainによるチャットシステム構築[実践]入門の目次
第1章 大規模言語モデル(LLM)を使ったアプリケーションを開発したい!
第2章 プロンプトエンジニアリング
第3章 ChatGPTをAPIから利用するために
第4章 LangChainの基礎
第5章 LangChainの活用
第6章 外部検索、履歴を踏まえた応答をするWebアプリの実装
第7章 ストリーム形式で履歴を踏まえた応答をするSlackアプリの実装
第8章 社内文書に答えるSlackアプリの実装
第9章 LLMアプリの本番リリースに向けて
付録 Webアプリ、Slackアプリ開発の環境構築
第1章 LLMアプリケーション開発の基礎
- 1.1 活用され始めた生成AI
- 1.2 Copilot vs AIエージェント
- 1.3 すべてはAIエージェントになる
- 1.4 AIエージェントの知識地図
- 1.5 まとめ
第2章 OpenAIのチャットAPIの基礎
- 2.1 OpenAIのチャットモデル
- 2.2 OpenAIのチャットAPIの基本
- 2.3 入出力の長さの制限や料金に影響する「トークン」
- 2.4 Chat Completions APIを試す環境の準備
- 2.5 Chat Completions APIのハンズオン
- 2.6 Function calling
- 2.7 まとめ
第3章 プロンプトエンジニアリング
- 3.1 プロンプトエンジニアリングの必要性
- 3.2 プロンプトエンジニアリングとは
- 3.3 プロンプトの構成要素の基本
- 3.4 プロンプトエンジニアリングの定番の手法
- 3.5 まとめ
第4章 LangChainの基礎
- 4.1 LangChainの概要
- 4.2 LLM/Chat model
- 4.3 Prompt template
- 4.4 Output parser
- 4.5 Chain―LangChain Expression Language(LCEL)の概要
- 4.6 LangChainのRAGに関するコンポーネント
- 4.7 まとめ
第5章 LangChain Expression Language(LCEL)徹底解説
- 5.1 RunnableとRunnableSequence―LCELの最も基本的な構成要素
- 5.2 RunnableLambda―任意の関数をRunnableにする
- 5.3 RunnableParallel―複数のRunnableを並列につなげる
- 5.4 RunnablePassthrough―入力をそのまま出力する
- 5.5 まとめ
第6章 Advanced RAG
- 6.1 Advanced RAGの概要
- 6.2 ハンズオンの準備
- 6.3 検索クエリの工夫
- 6.4 検索後の工夫
- 6.5 複数のRetrieverを使う工夫
- 6.6 まとめ
第7章 LangSmithを使ったRAGアプリケーションの評価
- 7.1 第7章で取り組む評価の概要
- 7.2 LangSmithの概要
- 7.3 LangSmithとRagasを使ったオフライン評価の構成例
- 7.4 Ragasによる合成テストデータの生成
- 7.5 LangSmithとRagasを使ったオフライン評価の実装
- 7.6 LangSmithを使ったフィードバックの収集
- 7.7 フィードバックの活用のための自動処理
- 7.8 まとめ
第8章 AIエージェントとは
- 8.1 AIエージェントのためのLLM活用の期待
- 8.2 AIエージェントの起源とLLMを使ったAIエージェントの変遷
- 8.3 汎用LLMエージェントのフレームワーク
- 8.4 マルチエージェント・アプローチ
- 8.5 AIエージェントが安全に普及するために
- 8.6 まとめ
第9章 LangGraphで作るAIエージェント実践入門
- 9.1 LangGraphの概要
- 9.2 LangGraphの主要コンポーネント
- 9.3 ハンズオン:Q&Aアプリケーション
- 9.4 チェックポイント機能:ステートの永続化と再開
- 9.5 まとめ
第10章 要件定義書生成AIエージェントの開発
- 10.1 要件定義書生成AIエージェントの概要
- 10.2 環境設定
- 10.3 データ構造の定義
- 10.4 主要コンポーネントの実装
- 10.5 ワークフロー構築
- 10.6 エージェントの実行と結果の確認
- 10.7 全体のソースコード
- 10.8 まとめ
第11章 エージェントデザインパターン
- 11.1 エージェントデザインパターンの概要
- 11.2 18のエージェントデザインパターン
- 11.3 まとめ
第12章 LangChain/LangGraphで実装するエージェントデザインパターン
- 12.1 本章で扱うエージェントデザインパターン
- 12.2 環境設定
- 12.3 パッシブゴールクリエイター(Passive Goal Creator)
- 12.4 プロンプト/レスポンス最適化(Prompt/Response Optimizer)
- 12.5 シングルパスプランジェネレーター(Single-Path Plan Generator)
- 12.6 マルチパスプランジェネレーター(Multi-Path Plan Generator)
- 12.7 セルフリフレクション(Self-Reflection)
- 12.8 クロスリフレクション(Cross-Reflection)
- 12.9 役割ベースの協調(Role-Based Cooperation)
- 12.10 まとめ
本書をお勧めしたい方
私が実際に読んでみて感じた対象読者をご紹介します。本書は網羅性が高く、幅広い方にお勧めできると思いますが次のような方にはぜひ読んでいただきたいです。
- LLMのアプリケーション開発を一から学びたい方
- LangChainやLangGraphの初心者で、これから活用してみたいと考えている方
- 「AIエージェント」について深く理解し、開発に活かしたい方
本書は、タイトルにあるとおりLangChainやLangGraphに関する技術を詳しく解説していますが、他にも関連するソフトウェアやサービス、AIエージェントの基礎概念、エージェントのデザインパターンについても取り上げており、エンジニア以外の方が読んでも学びのある内容となっています。
おすすめの章
個人的に特に面白く、ぜひ読んでいただきたい章を簡単にご紹介します。
第5章 LangChain Expression Language(LCEL)徹底解説
LangChainは非常に優れたフレームワークで、複雑な処理をシンプルに実現できるのが特徴です。しかし、基本的な構造を理解していないと、応用的な使い方をする際に戸惑ったり、エラー発生時に原因が分かりづらいこともあります。
この章では、LangChainの重要な基礎技術であるLCELとRunnableの仕組みが詳しく解説されています。LangChainを初めて使う方には、ぜひ1度は目を通してほしい内容になっています。
第8章 AIエージェントとは
「AIエージェント」という言葉は多くの場面で聞かれるようになりましたが、人によって理解が異なる場合も多いかと思います。この章を読むことで、「AIエージェントとは何か」「AIの進化によってアプリケーション開発がどのように変わるのか」といった理解が深まります。
プログラミングなど具体的な開発内容は含まれていないため、普段コードを書かない方にも読みやすく、AIエージェントの基礎を学ぶのに適した章です。
また、先日書かれた以下のブログも非常に興味深い内容ですので、合わせてご覧いただくことをお勧めします。
第11章 エージェントデザインパターン
18種類のエージェントデザインパターンが、図や表を使って非常にわかりやすく解説されています。LLMのアプリケーション(エージェント)を作成したいときに、設計の参考として繰り返し読み返しながら活用したい章です。
第12章 LangChain/LangGraphで実装するエージェントデザインパターン
第11章で紹介されたデザインパターンを、実際にLangChainとLangGraphを使って実装する章です。エンジニアの方は、第11章とこの章を交互に読み進めながら、理解を深めつつ手を動かしていくと良いと思います。付録には全コードが収録されており、全体像を把握しやすくなっています。
デザインパターンの組み合わせについても具体的に解説されており、実際のコードを読むことで11章の理解が深まりました!
感想
書籍全体を通しての感想を簡単にまとめました。
図解が丁寧でわかりやすい
各所で使われている図や表が非常に丁寧に作られており、内容がとてもわかりやすくなっています。論文からの内容も含まれていますが、引用ではなく、著者が日本語でわかりやすく再構築しているため、スムーズに理解を深められます。
ツールの説明やバージョンの変化などもコラムや解説にかかれている
本書では、使用されるツールや技術の基本的な説明に加え、バージョンごとの変化や新機能についてもコラムや解説が随所に書かれています。コラムの内容も豊富で、学びが多く、楽しんで読み進められる構成になっています。
基礎から詳細まで網羅性がすごい
LLMの開発初心者でも理解できるように、OpenAIのAPIの使い方やプロンプトエンジニアリングの基本が丁寧に解説されている一方、エージェントの詳細な実装内容も充実しており、ある程度のアプリ開発経験があるエンジニアでも楽しめる内容になっています。その上、個別の内容が十分に詳しく書かれており、網羅性が素晴らしいと感じました。500ページ近いボリュームになるのは納得です。
特に、LangChainを開発ツールとして採用しているチームには、新規メンバーのキャッチアップにも役立つ総合的な良書だと感じました。
おわりに
LLMは、まだまだ進化が止まらず、1年、半年単位でトレンドや手法が移り変わっています。しかし、個人的には、これからはAIエージェントのアーキテクチャや基礎的な理論が、より重要なフェーズになってくるのかなと予想しています。
なによりAIエージェントへの理解が深まるほど、AIを使ったアプリケーションの開発がより楽しくなることは間違いないです。
本書は、AIエージェント開発の日本語で書かれた入門書として非常に適した1冊だと思います。興味を持たれた方は、ぜひ手に取ってみてください。
ここまでお読みいただきありがとうございます!
Discussion