「LangChainとLangGraphによるRAG・AIエージェント［実践］入門」でつまずいたことメモ:まとめ

# はじめに

[「LangChainとLangGraphによるRAG・AIエージェント［実践］入門」](https://gihyo.jp/book/2024/978-4-297-14530-9)が読破できたので、感想やこれから読む方に向けてのメッセージをまとめます。購入を悩んでいる方や、読み始めたけど途中で挫折してしまった方の参考になれば幸いです。

https://gihyo.jp/book/2024/978-4-297-14530-9

:::note info
この記事は個人で作成したものであり、内容や意見は所属企業・部門見解を代表するものではありません。
:::

# ほとんどの人は「AIエージェント」をわかっていない

「AIエージェント」がバズっていますが、世の中の解説ではAIエージェントの真のすごさが伝わりません。おそらく、「自立的に目的に向かって行動してくれるAIのことか。いちいち指示を出さなくても勝手にやってくれるAIをそう呼ぶのね」くらいの理解になってしまうでしょう。かくいう私も、この本を読む前はそうでした。

少し前の話になりますが、2023年頭ごろにChatGPTが登場してAPIの提供が開始され、みなさん大熱狂しましたよね。そして、時間が経つのも忘れてプロンプトと格闘し、便利な使い方を編み出して世の中に発信してみたり、APIを呼び出して何か作ってみたり、社内で使ってみたり、実際にサービスを作ってリリースしてみたりと、ワクワク駆動で夢中になっていたかと思います。

そのワクワクがAIエージェントで再びやってきます。まだワクワクしていない方は、まだAIエージェントをわかっていません。そんな方にオススメしたい一冊です。

# この本をオススメしたい方

以下のような方にオススメです。

- 前述のようにChatGPTが登場した頃は熱狂していたけど、最近なんか飽きてきてしまった方
- AIに携わるエンジニアの方、これから携わっていきたいエンジニアの方
- AI関連の事業をやっているベンダー側の方
- 自社でAIを活用したいと考えていてるユーザー側の方

ただし、Pythonで少しコードを書ける必要があります。何らかの開発経験があれば問題ないかと思いますが、コードを一行も書いたことのない方にはオススメできません。

# この本で学べること

学べることは大きく4つです。

## LLMの使い方（第1章〜第3章）

ChatGPTをはじめとする大規模言語モデル（LLM）の基本的な使い方が学べます。独学でプロンプト（LLMへの指示文）を作って利用してきた私のような方の学び直しにもよいでしょう。これからLLMの使い方を学ぼうと思われている方にも適しています。

## LangChainの使い方（第4章〜第5章）

LLMを活用したプログラム開発のためのフレームワーク「LangChain」（ラングチェーン）の使い方が学べます。

LangChainを使わずにLLMのAPIを直接叩いて開発することもできますが、今後、LLMを使ったプログラムはどんどん複雑化していきますので、すべてを自前で作るのは大変です。LangChainは特定の用途に限定したフレームワークではなく、LLMを使う上で面倒なことがおまかせできる非常に汎化センスのよいライブラリです。

## RAGの仕組み（第6章〜第7章）

LLMが保有している知識だけでは解決できないことがたくさんあります。たとえば、LLMは最新の情報を知らないので最新のニュースに基づく事柄には答えられませんし、自社の非公開情報に基づくような回答もできません。そのような用途では外部情報を取り込んでLLMに処理させる必要があります。その手法であるRAG（ラグ）の仕組みを学べます。

単純に検索のシステムと連携するだけでなく、複数の検索処理を組み合わせたり、結果の並びを調整したり、その結果を評価したりする部分まで踏み込んでおり、入門書の域を超えています。本のタイトルが「[実践]入門」になっているのも伊達ではありません。

## AIエージェントの作り方（第8章〜第12章）

LangChainを基盤としたLangGraph（ランググラフ）というフレームワークと、それを使ったAIエージェントの作り方が学べます。

第10章では要求を伝えたら要件定義書を生成してくれるAIエージェントを作るのですが、まずここで度肝を抜かれます。LLMのプロンプトを工夫すればそれくらいできるのでは？と思われたみなさん、次元がまったく違います。内部では、まずその要求に合うペルソナ（想定するエンドユーザー）を複数人召喚します。そしてそのペルソナにインタビューを実施し、そのインタビュー結果を市場の声として評価し、最初の要求と統合的に判断して要件定義書を作るのです。

第12章では「カレーライスの作り方」という超適当な投げかけに対して、ユーザーの求めるゴールを明確化したり、そのアウトプットのあるべき姿を明確化したり、ゴールに向けてのタスクを考えたり、状況に応じて適切な調査手法を選択したり、その振り返りを実施して次回の精度向上につながるように結果をデータベースに格納して活用したり、専門家を召喚してレポートを書かせ、それを総合的に判断したりします。しかも、処理の途中経過を永続化する実装になっているので、途中で外部要因による待ちが生じても、次回の実行時に状態を復元して継続することができます。本のタイトルが「[実践]入門」になっているのも伊達ではありません（2回目）。

ここで召喚してくるペルソナや専門家は実際の人ではなく、LLMに与える仮想の役割です。これまでにLLMを使ったことのある方なら、プロンプトで「あなたはITサービスの事業立ち上げに詳しい経験豊富なコンサルタントです」とか指示して企画書の草案を書かせたり、「あなたは顧客対応のスペシャリストです」とか指示してお詫びのメールの下書きをさせたりしたことがあるでしょう。そのイメージです。

なんだ、今までやってたことを組み合わせるだけか、と思われた方もいるかも知れませんが、そんなに単純な話ではありません。LLMに演じさせるペルソナや専門家にRAGで必要な知識や情報を与えると、その可能性はとてつもなく広がります。

- 最近話題になっているDeep Researchのようなものと連携すれば[^deepresearch]、一流のリサーチャーを召喚できます
- これまでに人類が生み出してきたビジネスのフレームワークを与えれば、ベテランのコンサルタントが召喚できます
- 社内の業務ルールや過去の業務手順書を与えれば、その社内業務のスペシャリストを召喚できます
- 社内の共有フォルダーや各種データベースと検索連携したら、会社の生き字引のようなベテラン社員を召喚できます

さまざまな外部サービスとAPIで連携することにより、RAGにおける外部情報の収集方法も進化していくことでしょう。たとえば、消費者に実際にアンケートをしたり、ネットにバズるような記事を投稿して反応を収集するような市場調査もできそうです。また、外部情報が不足していてうまく処理できなかった場合に、次回に向けて外部情報側を補うような処理、たとえば新たな業務手順書を作成してDBに追加格納していくことで、次回以降のRAGの精度を自動的に上げていくようなサイクルも回せるかもしれません。

必要に応じて人間にメールやチャットで問いかけて判断を仰ぐこともできるでしょうし、人間に行動を促すこともできます。音声や動画での入出力も進化するでしょうから、コンピューターやネットにつながっていない部分との連携もどんどん進むはずです。

妄想はどんどん広がりますが、私の文章の生成能力では冗長な説明が増えるだけでワクワク感をうまくお伝えできそうにありません。そこで、私の大好きな映画「The Matrix」のモーフィアスから主人公ネオ（Matrixの正体を知りたがっている）へのセリフを少しもじって話をひと段落させます。

**AIエージェントの正体は人に教わるものではない、自分で見るしかない。[^matrix]**

AIエージェントの正体を、ぜひこの本で見てください！

# この本で気になったこと

この本で気になったことは次の2点です。

## 説明が意外とあっさりしている

500ページくらいあるのに、説明は比較的あっさりとしています。

それもそのはず、本来は「LLM入門」、「LangChain入門」、「Advanced RAG入門」、「AIエージェント入門」と4冊に分けてもおかしくないテーマを1冊に詰め込んでしまっています。残念ながらこの1冊では広く浅くしか学ぶことができません。興味のあるところは別の手段で深掘りしましょう。

## 本の掲載コードに古いものがある

進化の早い分野なので、書籍の性質上どうしようもありません。ただ、[GitHubのサイト](https://github.com/GenerativeAgents/agent-book)でソースコードが最新化されていますので困ることはありません。本に掲載されているコードは読む用と割り切り、実際に試す時はGitHubのソースコードを使いましょう。

https://github.com/GenerativeAgents/agent-book

本のすべてのコードがGoogle Colabで動かせるので、手元の環境を変えずに試せるのも非常にありがたいです。


# この本のオススメの読み方

実際にプログラムを動かしながら読み進めることをオススメします。一部、読むだけの章もありますが、通勤通学中の電車の中で読むような本ではありません。

なお、私はもう何年もまともなプログラミングをしていないのと本業が多忙なこともあって、一から自分でコードを書く時間は取れませんでした。そんな私でも、GitHubで公開されているコードをそのまま動かしたり、部分的にちょっと変えてみたりすることで、すごく理解が進みました。LangSmith（ラングスミス）で内部の途中経過が簡単に確認できるのも非常にありがたかったです。

私がこの本を読んだ時に感じたことやつまずいたことを、以下のQiitaの記事にまとめていますので、もしよかったらご参照ください。

|本の内容|Qiitaに投稿したメモ|
|:-|:-|
|第1章 LLMアプリケーション開発の基礎|[つまずいたことメモ:1章](https://qiita.com/segavvy/items/b31efa98a2d4c20e9ec8)|
|第2章 OpenAIのチャットAPIの基礎|[つまずいたことメモ:2章](https://qiita.com/segavvy/items/2801a079c686c906e582)|
|第3章 プロンプトエンジニアリング|[つまずいたことメモ:3章](https://qiita.com/segavvy/items/97ab2c1958b894124d44)|
|第4章 LangChainの基礎|[つまずいたことメモ:4章](https://qiita.com/segavvy/items/41225198677cf4f498b5)|
|第5章 LangChain Expression Language(LCEL)徹底解説|[つまずいたことメモ:5章](https://qiita.com/segavvy/items/7751b41db1e9c672b6f1)|
|第6章 Advanced RAG|[つまずいたことメモ:6章](https://qiita.com/segavvy/items/3185ca18afe28c96e6bd)|
|第7章 LangSmithを使ったRAGアプリケーションの評価|[つまずいたことメモ:7章](https://qiita.com/segavvy/items/ac0ce03f9b3cd83ee5ed)|
|第8章 AIエージェントとは|[つまずいたことメモ:8章](https://qiita.com/segavvy/items/8109b3a1ed3a4efe1140)|
|第9章 LangGraphで作るAIエージェント実践入門|[つまずいたことメモ:9章](https://qiita.com/segavvy/items/a4f9d80fe6a3f541d4b5)|
|第10章 要件定義書生成AIエージェントの開発|[つまずいたことメモ:10章](https://qiita.com/segavvy/items/0cbd272e280cfaf6ee28)|
|第11章 エージェントデザインパターン|[つまずいたことメモ:11章](https://qiita.com/segavvy/items/7e4c1af72b2280665be3)|
|第12章 LangChain/LangGraphで実装する<br>エージェントデザインパターン|[つまずいたことメモ:12章](https://qiita.com/segavvy/items/3833525ebace5ff24a4e)|

# おわりに

この本のおかげで、AIエージェントのワクワクする世界を知ることができました。著者の西見さん、吉田さん、大嶋さん、本当にありがとうございます！

また、3ヶ月以上もかかってしまいましたが、みなさんからのいいねやストック、Xでの拡散などに励まされて、途中で諦めずに読破できました。ありがとうございました！
誤りや勘違いもあるかも知れません。お気づきの点がありましたらぜひお気軽にご指摘ください。

このメモが、後に続く方の何かの参考になれば幸いです。

[^deepresearch]: [Deep Research](https://openai.com/index/introducing-deep-research/)はOpenAI社が提供する、調査に特化したサービスです。2025年2月の時点では月額$200のChatGPT Pro加入者しか利用できずPlusプランの私はまだ試したことがないのですが、かなり優秀だと聞いています。そのうちAPIでも利用できるようになるでしょうから、AIエージェントの中でも活躍することになるかと思います。
[^matrix]: 映画[「The Matrix」](https://warnerbros.co.jp/home_entertainment/detail.php?title_id=1541)は1999年の映画です。最近の若い方は知らないかも😅 AI好きな方はきっと好きだと思うので、ぜひ観てみてください！