Agentic RAGとは?従来RAGとの違いをわかりやすく解説
今日伝えたいこと
- 従来RAGは「検索→生成」の単純な2ステップ
- Agentic RAGはAIエージェントが自律的に判断して動く進化版
- 3つの核心機能:Query Planning、Tool Use、Self-Reflection
はじめに
RAG(Retrieval-Augmented Generation)って聞いたことありますか?
LLMに外部知識を与えて回答精度を上げる仕組みなんですが、最近その進化版「Agentic RAG」が注目を集めているんですよね。
今日は新米エンジニアのわたくしミンミンが勉強した内容をこの記事にまとめてみようと思います。
従来RAGの仕組みと限界
従来RAGの流れ
従来のRAGはシンプルな2ステップです。
ユーザーの質問 → ベクトル検索 → 関連文書を取得 → LLMが回答生成
固定パラメータ(top_k=5、chunk_size=500など)で検索を実行するんですね。
何が問題?
「日本の首都は?」という単純な質問と、「過去3ヶ月の売上から来期戦略を提案して」という複雑な質問。
同じパラメータで対応するのは無理があるんですよね。
| 質問タイプ | 従来RAGの対応 |
|---|---|
| 単純な質問 | ✅ うまくいく |
| 複雑な質問 | ❌ 情報不足になりがち |
| マルチステップ | ❌ 対応できない |
Agentic RAGとは?
定義
Agentic RAGは、AIエージェントが自律的に判断を下し、複雑なマルチステップワークフローを実行できるRAGシステムです。
要はパラメータとか検索のやり方とか回数とかを、タスク難易度に応じて動的に変えようぜ!って話。
従来RAGとの違い
| 観点 | 従来RAG | Agentic RAG |
|---|---|---|
| 検索戦略 | 固定 | 動的に決定 |
| 検索回数 | 1回 | 必要に応じて複数回 |
| ツール | ベクトルDBのみ | 複数ツールを選択 |
| 自己評価 | なし | 回答品質をチェック |
一言で言うと
「情報の取得戦略そのものを動的に決定する」
これがAgentic RAGの本質なんだそうです。
3つの核心機能
Agentic RAGには3つの重要な機能があります。
1. Query Planning(クエリ計画)
複雑な質問を小さなサブタスクに分解する機能です。
質問:「A社との契約条件を踏まえて、B社への提案内容を検討して」
従来RAG:
→ "契約 提案"で1回検索 → 不完全な回答
Agentic RAG:
→ Step1: A社の契約条件を取得
→ Step2: 条件を分析
→ Step3: B社向けに必要な情報を取得
→ 完全な回答
2. Tool Use(ツール利用)
複数のツールから最適なものを選択する機能です。
利用可能なツール例:
- ベクトルDB検索(社内知識ベース)
- Web検索(リアルタイム情報)
- 社内DB(売上データなど)
- 計算ツール(Python実行)
クエリの特性に応じて、最適なツールを自動選択してくれるんですね。
3. Self-Reflection(自己反省)
生成した回答の品質を自己評価する機能です。
回答生成 → 「この回答は完全か?」と自問
→ 不十分なら再検索 → 回答を改善
→ 十分なら出力
従来RAGにはなかった「反復改善」のプロセスが入る。
AIエージェントで進歩したツール利用や計画実行、反省をRAGに持ち込んだってことですね。
どんな場面で効果的?
Agentic RAGが特に力を発揮するケースを紹介しますね。
効果が高いケース
| ケース | 具体例 |
|---|---|
| マルチホップ質問 | 「AとBを比較して、Cの観点から評価して」 |
| 複数情報源が必要 | 社内DBとWeb両方の情報が必要 |
| 計算が絡む質問 | 「売上の前年比を計算して分析して」 |
| リアルタイム情報 | 「今日の株価を踏まえて判断して」 |
従来RAGで十分なケース
- 単純なFAQ対応
- 1つの文書から回答できる質問
- 速度が最優先の場面
Agentic RAGの処理フロー
全体の流れを図解しますね。
┌─────────────────────────────────────────────────┐
│ 1. Query Planning │
│ クエリの複雑度を分析 → 実行計画を作成 │
└─────────────────┬───────────────────────────────┘
▼
┌─────────────────────────────────────────────────┐
│ 2. Tool Use │
│ 最適なツールを選択 → 情報を取得 │
└─────────────────┬───────────────────────────────┘
▼
┌─────────────────────────────────────────────────┐
│ 3. 回答生成 │
│ 取得した情報をもとにLLMが回答 │
└─────────────────┬───────────────────────────────┘
▼
┌─────────────────────────────────────────────────┐
│ 4. Self-Reflection │
│ 回答品質を評価 → 不十分なら2へ戻る │
└─────────────────┬───────────────────────────────┘
▼
最終回答
導入時の注意点
Agentic RAGには課題はどこでしょう。
レイテンシの増加
複数回の推論と検索を行うため、応答時間が長くなります。
- 従来RAG:数秒
- Agentic RAG:10秒以上かかることも
対策:キャッシング、並列処理の導入
無限ループのリスク
エージェントが同じアクションを繰り返すことがあります。
自己反省した結果、自分に厳しすぎて回答にOKを出せないんですね(笑)
対策:最大反復回数の設定、ループ検出の実装
コストの増加
LLM呼び出し回数が増えるため、APIコストが上昇します。
対策:キャッシング、クエリの複雑度に応じた戦略切り替え
段階的な導入アプローチ
いきなり全部導入するのは大変なので、3段階で進めることをおすすめしますね。
段階1:Self-Reflectionから始める
既存RAGに自己評価メカニズムを追加するだけ。
リスクが低く、効果を実感しやすいですよ。
段階2:Tool Useを追加
複数のツールを使い分ける能力を追加します。
段階3:Query Planningを追加
完全なAgentic RAGの完成です!
まとめ
| 項目 | 内容 |
|---|---|
| Agentic RAGとは | AIエージェントが自律的に動くRAG |
| 3つの核心機能 | Query Planning、Tool Use、Self-Reflection |
| 従来RAGとの違い | 検索戦略を動的に決定、自己評価で改善 |
| 導入のコツ | Self-Reflectionから段階的に |
Agentic RAGは従来RAGの限界を突破する強力なアプローチです。
次回の記事では、JupyterNotebookを使った実装チュートリアルを紹介しますね!
次回予告
【実践】JupyterNotebookでAgentic RAGの中身をゴリゴリ作ってみる