A
AIエージェントの仕組み
ch5-s4 · Claude with RAG

Claude with RAG

約 16 分

この回のゴール

1. 全体パイプライン

 [事前準備]
 ┌────────────┐  ┌──────────┐  ┌──────────┐
 │ 文書ファイル │─▶│ チャンク   │─▶│ 埋め込み  │
 └────────────┘  └──────────┘  └─────┬────┘
                                      ▼
                          ┌─────────────────┐
                          │  FAISS index    │  (永続化可能)
                          └─────────────────┘

 [問い合わせ時]
                      埋め込み              Top-k 取得
 [質問] ─────────────▶ [q_vec] ─────────────▶ [ chunks ]
                                                   │
                                                   ▼
                                      ┌──────────────────────┐
                                      │  Claude (システム指示付) │
                                      └──────────┬───────────┘
                                                 ▼
                                      ┌──────────────────────┐
                                      │  回答 + 引用元 [1][2] │
                                      └──────────────────────┘

2. RAG プロンプトの設計

system プロンプトの基本型

system = """あなたは社内アシスタントです。
以下のルールを厳守してください:

1. 回答は【参考情報】に基づいてのみ行うこと
2. 参考情報にない質問には「その情報は確認できません」と答えること
3. 回答の根拠となった文書を [1][2] のように引用すること
4. 憶測や学習済み知識での補完は禁止
"""

user メッセージの組み方

【参考情報】
[1] ネオテックでは入社初年度から年間 15 日の有給休暇を付与します...
[2] 勤続 3 年以上の社員は年間 20 日、5 年以上は 25 日...

【質問】
有給は入社何年目で 25 日になる?

なぜこの形式?

3. Citation — 引用元を出す

回答例:

有給休暇は勤続 5 年以上で 25 日に増えます[1]。
入社初年度は 15 日で、3 年以上で 20 日になります[1]。

Claude に「[1] のような番号で引用してね」と指示し、実装側で番号 → 原文にマッピングして表示します。

なぜ引用が重要?

4. 検索失敗時のフォールバック

質問が文書にない場合:

悪い応答: LLM の学習知識から勝手に回答してしまう 良い応答: 「その情報は確認できません」と明確に伝える

system プロンプトで強く釘を刺すのが定石です。

5. RAG 改善の技術(発展)

これらを 組み合わせる ことで、意味検索だけでは拾えない 固有名詞・数字 も取れる。

Reranking

Top-k を多めに取ってから、別の軽量モデル(Cross-Encoder)でリランク する:

query → [粗い検索: top 20] → [リランク: top 3] → Claude

Query Expansion

質問を Claude で 言い換え・展開 してから検索:

Q: "休みの話"
    ↓ (Claude に展開させる)
Q': "有給休暇、祝日、夏季休暇について"

Contextual Retrieval (Anthropic, 2024)

各チャンクに 文脈情報を先に付けてから埋め込む。精度大幅向上。


まとめ

第 5 章のクロージング → 次章への接続

ここまでで「自分の文書から答える Claude」が作れた。でも: - 「文書になかったら Web 検索する」フォールバック - 「DB から具体的数字を取る」必要 - 質問によって検索するかどうかを判断する 動的な対応

👉 これらは AI エージェント(次章)で解決します。RAG は「検索というツールを持ったエージェント」の特殊ケースと見なせます。

参考文献

A
本家 Claude Academy で手を動かす
この回に対応する Anthropic 公式のレッスンです。ここは「なぜそう動くか」、向こうは「どう書くか」。サインインなしで読めます。
📝 理解度クイズ (3 問) 💡 ログインすると進捗が保存されます

💬 このサブステップの Q&A

まだ質問はありません。最初の質問を投稿してみましょう。

質問の投稿にはログインが必要です。