7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

読書感想文『LangChainとLangGraphによるRAG・AIエージェント実践入門』

7
Posted at

書籍情報

書籍名: LangChainとLangGraphによるRAG・AIエージェント実践入門
著者: 西見公宏、吉田真吾、大嶋勇樹
出版社: 技術評論社
発売日: 2024年11月9日
価格: 3,960円(税込)

著者について

西見公宏(にしみ まさひろ)
株式会社Generative Agents CEO。AIエージェント開発の専門家。2021年に山梨県(富士山麓)に移住し、AI関連の書籍を多数執筆。

吉田真吾(よしだ しんご)
株式会社Generative Agents COO、株式会社Section Nine CEO。AWS Serverless Hero(2019年、日本で唯一)。ChatGPT Community(JP)、LangChain Community(JP)、Serverless Community(JP)を主導。

大嶋勇樹(おおしま ゆうき)
株式会社Generative Agents CTO。AIエージェントアプリケーション開発を専門とし、Udemyでベストセラー講座を運営。

著者の他の著作

  • 西見公宏: AI関連書籍(2023年単著、2024年共著、2025年共著)
  • 吉田真吾: LangChain、RAG、ChatGPT/LLMシステムに関する技術書籍

著者リンク


読書動機

1. RAG技術への関心

世間的にも自分の身の回りでもRAGに関心が高まっており、実践的な知識を習得したかった。

2. 前提知識のハードルの低さ

前提知識と前提条件のハードルが低く、Python以外のプログラミング言語経験者でも挑戦できる点が魅力的だった。

3. 継続的な学習習慣の確立

直近の業務に直結しない技術でも、新しい物を習得する習慣を身につけたい。現業務だけに集中していると、技術者としての成長が先細りする懸念があるため。


学習メモ

image.png

image.png

image.png


学んだこと

1. 前提知識・前提条件(p.vii)

Pythonに精通していなくても、何らかのプログラミング言語を一般的に扱える程度に理解していれば問題ない。本書ではコードを丁寧に1ステップずつ説明し、動作確認済みコードも公開されている。OpenAIのAPIやGoogle Colabなど各種クラウドサービスへの登録が必要。


2. 活用され始めた生成AI(p.2)

生成AIは以下の分野で新しい応用が注目されている:

  1. 外部ソース統合型Q&Aサービス: Perplexityのように、インターネット上の外部情報から答えを生成するサービス
  2. メタデータ活用型分析(Text-to-SQL): 自然言語から複雑な分析クエリを生成するシステム
  3. カスタマーサポートの強化: LLMを活用した24時間体制のチャットボットが、従業員をカスタマーハラスメントから守る仕組みとしても機能
  4. コンテンツ生成の自動化: マーケティング部門でのブログ記事、SNS投稿、製品説明の自動生成とレビューワークフロー

3. すべてはAIエージェントになる(p.5)

LangChain v0.1からLangGraphがリリースされ、ワークフローを簡単に設計・実行できる。ステートマシーンの状態による処理制御やループ処理を簡単に実装でき、目標を達成するための多段で複雑な処理を自律的に行うエージェントらしい機能性を実現できる。


4. プロンプトエンジニアリングの必要性(p.44)

LLMは低くない割合で指示を無視してしまう。少しプロンプトを変えただけで指示を無視されることもあり、どれだけ工夫しても100%指示に従ってくれるわけではない。


5. なぜLangChainを学ぶのか(p.62)

LangChainはとても幅広い分野を扱っており、活用事例も多い。LLMアプリケーション開発の最初のステップとしてLangChainを学ぶのはおすすめの選択肢で、幅広い知見を得ることができる。


6. LangChainのパッケージ群(p.64)

主要なパッケージ構成:

  • langchain-core: ベースとなる抽象化とLCELを提供
  • partner/langchain-community: OpenAI、Anthropicなど各種サービスのインテグレーション
  • langchain/langchain-text-splitters/langchain-experimental: ユースケースに特化した機能

基本的には、langchain-coreに加えて必要最小限のパッケージをインストールして使う。


7. LangChain Expression Language(p.85)

LCELはLangChainでのChainの記述方法。プロンプトやLLMを「|」でつなげて処理の連鎖(chain)を実装する。2023年10月頃から、LangChainではLCELを使う実装が標準となった。


8. RAG(Retrieval Augmented Generation)(p.91)

質問に関係する文書をcontextに含めることで、LLMが本来知らないことを回答できる。トークン数の制限があるため、文書をベクトル化して保存し、入力テキストとベクトルが近い文書を検索してcontextに含める。テキストのベクトル化とは、テキストを数値の配列に変換すること。


9. LangChainのRAGコンポーネント(p.92)

主要な5つのコンポーネント:

  • Document loader
  • Document transfer
  • Embedding model
  • Vector Store
  • Retriever

10. LangSmithの機能(p.158)

LangSmithはLangChainの開発元が提供するプロダクショングレードなLLMアプリケーションのためのプラットフォーム。3種類の機能を持つ:

  1. Tracing: トレース収集
  2. Prompts: プロンプトの管理
  3. Evaluation: 評価

Ragasは有名なRAGの評価フレームワーク。


11. AIエージェントのためのLLM活用(p.190)

AIエージェントとは、複雑な目標を自律的に遂行できるAIシステム。従来のAIが特定のタスクに特化していたのに対し、LLMを活用したAIエージェントは目標達成に必要な行動を自ら決定し実行できる。完璧なユーザに求めるよりも、LLMアプリ自身に人間の意図に沿った品質の良い出力や高い課題解決能力が期待され始めている。


12. CrewAIのコアコンセプト(p.206)

CrewAIは抽象化されたモジュールの組み合わせによって自動化を実現。使い勝手や抽象度合いがLangChainに似ており、LangChain経験者にとっつきやすい。エージェントには役割と目標を設定し、外部ツールを指定できる。


13. マルチエージェントの定義(p.208-209)

明確な定義は存在しないが、2つの形態がある:

  • マルチステップなマルチエージェント: 複数のシステムプロンプトを使い、役割やステップ毎に別々のAIエージェントで処理するワークフロー最適化型
  • マルチロールなマルチエージェント: 異なるペルソナや役割を持つ複数のエージェントを協調動作させる形態

14. MAGIS(p.229)

MAGISはマルチエージェントフレームワークで、既存コードに対するGitHubイシュー解決を目的とする。リポジトリ全体を解釈し、既存機能のメンテナンスを伴う対応が必要。4種類の役割別エージェントがコラボレーションによって解決にアプローチする。


15. LangGraphの特徴(p.240)

LangGraphはLLMを活用した複雑なワークフローを開発するためのPythonライブラリ。ワークフローをグラフ構造にモデル化する点が特徴。各ノードが特定の処理や判断を担当し、エッジが処理間のつながりを表現することで、複雑なLLMアプリケーションの動作を視覚的に理解しやすい形で設計・実装できる。


16. エージェントデザインパターン(p.302)

4つの課題領域に対応:

1. 目標設定と計画生成

  • パッシブゴールクリエーター: ユーザー入力から目標を抽出
  • プロアクティブゴールクリエイター: 周辺環境や状況から能動的に目標を抽出

2. 推論の確実性向上

  • RAG: 外部知識の統合
  • セルフリフレクション: AIエージェントが自身の出力を評価し修正

3. エージェント間の協調

  • 投票ベースの協調: 各エージェントの判断を投票で集約
  • 議論ベースの協調: 議論や対話を通じて合意形成

4. 入出力制御

  • エージェントアダプター: AIエージェントと外部ツール/システム間のインターフェース

17. エージェントデザインパターンの位置づけ(p.307)

業界のベストプラクティスの決定版ではなく、急速に発展するAIエージェント開発分野で現段階で観察される設計パターンを整理・体系化したもの。開発者間の共通言語として有用な実践的内容。


感想

全体的な印象

分厚い本でしたが、説明がわかりやすく読みやすい本でした。Google Colabを利用することで実行環境の構築もしやすくなっている点が良いと思いました。最初は自分には難しいと思って読み始めましたが、チャレンジした甲斐がありました。これからも新しいものが出てくると思いますが、現業務以外の要素にもちょくちょく時間を割いていこうと思いました。


実践できること

短期

  1. Google Colabの内容を部分的に改変して動かしてみる
  2. 簡単なRAG実装を試す
  3. LangChainの基本的なChainを実装する

中長期

  1. TypeScript(Node.js or Next.js)で簡単なAIエージェントを作る
  2. LangGraphを使った複雑なワークフローを設計・実装する
  3. 業務で使えるRAGアプリケーションを開発する

定量評価

注意: このセクションは読書直後ではなく、1年後など実際の効果が見えてから記入してください。数値化できない学びの価値(思考力、創造性、教養など)も重要です。見積もりは保守的に行い、過度に楽観的な数値は避けてください。

スキル・知識の評価

評価項目 評価 コメント
長期的な有用性 3 LangChainは進化が早いため、数年後には内容が古くなる可能性がある
実践のしやすさ 7 Google Colabで試しやすい。OpenAIなどのクレカ登録がハードルだが仕方ない
汎用性 3 LangChainはJavaScriptとPythonのみで、他言語では使えない

スキルスコア: 13/15点

経済的インパクト

時給の計算: 年収 ÷ 2,000時間で計算。参考: エンジニア平均¥3,000(年収600万円相当)

投資コスト

項目 数値 根拠・計算
書籍価格 ¥3,960 書籍の購入価格
読書時間 10時間 通読 + 実践 + ノート作成の合計時間
読書時間コスト ¥30,000 10時間 × ¥3,000/時間(エンジニア平均時給)
総投資額 ¥33,960 書籍価格 + 読書時間コスト

リターン
後で書く!

項目 数値 根拠・計算
時間削減効果 XX時間/月 作業効率化で削減できる時間
時間削減の金額換算 ¥XXX,000/月 削減時間 × 時給
コスト削減効果 ¥XXX,000/年 インフラコスト削減、外注費削減など
年間経済効果 ¥XXX,XXX 時間削減 + コスト削減の合計
7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?