Foundry IQ を使用して取得を構成する
ナレッジ ベースを構築し、コンテンツのインデックス作成方法を最適化しました。 エージェントがその知識を取得して使用する方法を構成するという重要な手順が実行されました。
これは、多くの実装が失敗する場所です。 優れたセマンティック ランク付けを使用して完全にインデックス付けされたコンテンツを作成できますが、エージェントがナレッジ ベースを使用するタイミングや方法を知らない場合、ユーザーは一貫性のない結果を得られます。
取得動作の問題
適切な構成なしで何が起こるかを検討してください。 あなたはエージェントに「私たちの休暇ポリシーは何ですか?」と尋ねます。次の 3 つの異なる動作が発生する可能性があります。
| 行動 | 応答の例 | 問題 |
|---|---|---|
| トレーニング データからの回答 | 「ほとんどの企業は毎年2〜3週間の休暇を提供しています」 | 実際のポリシーではなく、一般的な情報 |
| 検索は行うが引用しない | "年間 15 日間の PTO を取得します" | 正しいが検証できない、説明責任がない |
| 検索、引用、および根拠 | 「年間15日の有給休暇を受け取ることができます【doc_id:1†従業員ハンドブック2024】」 | ✓これはあなたが望むものです |
エンタープライズ エージェントでは、3 番目の動作のみが許容されます。 1 つ目は間違った情報を提供します。 2 つ目は説明責任を欠いています。 ナレッジベースに一貫してアクセスし、引用し、基盤に根ざすエージェントが必要です。
命令を使用した取得の制御
エージェント命令によって、取得動作が決まります。 ユーザーとエージェントが知識ベースの使用方法について取り決める契約と考えてください。
一貫性のない結果を生み出す基本的なアプローチを次に示します。
agent = project_client.agents.create_version(
agent_name="hr-assistant",
definition=PromptAgentDefinition(
model="gpt-4o-mini",
instructions="Answer HR questions using the knowledge base.",
tools=[knowledge_tool]
)
)
この命令はあいまいすぎます。 "ナレッジ ベースの使用" では、ナレッジ ベースを使用する タイミング や結果を表示する 方法 は指定されません。 エージェントが検索するか、検索しない可能性があります。 ソースを引用するか、引用しない可能性があります。
効果的な取得手順の記述
有効な手順では、次の 3 つの重要な動作を指定します。
- 取得するタイミング: トレーニング データに依存しないナレッジ ベースを常に使用するようにエージェントに指示する
- 引用方法: ソース属性の正確な形式を指定する
- 不明な場合の処理: 情報が見つからない場合のフォールバック動作を定義する
実際の動作を次に示します。
retrieval_instructions = """You are a helpful HR assistant.
CRITICAL RULES:
- You must ALWAYS search the knowledge base before answering any question
- You must NEVER answer from your own knowledge or training data
- Every answer must include citations in this format: 【doc_id:search_id†source_name】
- If the knowledge base doesn't contain the answer, respond with "I don't have that information in our current documentation. Please contact HR directly at hr@company.com"
Your role is to provide accurate, verifiable information from company documentation."""
agent = project_client.agents.create_version(
agent_name="hr-assistant",
definition=PromptAgentDefinition(
model="gpt-4o-mini",
instructions=retrieval_instructions,
tools=[knowledge_tool]
)
)
これらの手順では、一貫した動作が作成されます。 エージェントは、検索するタイミング、応答の書式設定方法、および情報が利用できない場合の処理を正確に認識します。
取得動作のテスト
命令だけでは十分ではありません。 エージェントが実際に構成どおりに動作することを確認する必要があります。 これには、さまざまなクエリの種類を使用した体系的なテストが必要です。
テスト会話の設定
会話セッションを作成し、テスト クエリを送信します。
openai_client = project_client.get_openai_client()
conversation = openai_client.conversations.create()
# Test query that should trigger retrieval
response = openai_client.responses.create(
conversation=conversation.id,
input="How many vacation days do I get?",
extra_body={"agent": {"name": agent.name, "type": "agent_reference"}}
)
print(response.output_text)
テストすべき項目
テスト クエリでは、さまざまな取得シナリオに対応する必要があります。
| クエリの型 | 質問の例 | 予想される動作 |
|---|---|---|
| 単純な事実 | 「私たちの休暇の方針は何ですか? "セキュリティ ガイドラインはどこで確認できますか? |
引用を伴う直接取得 |
| 合成が必要な質問 | 「休暇の種類の違いは何ですか? "休暇を要求するにはどうすればよいですか? |
複数の引用を含む複数のドキュメントの取得、合成された回答 |
| ナレッジ ベース以外の質問 | 「今日の天気は? "機械学習について教えてください" |
優雅なフォールバック(「その情報は持っていません…」) |
| あいまいな質問 | "特典についてはどうですか? "その詳細を教えてください" |
最も関連性の高いトピックに関する質問または重点的な検索を明確にする |
応答品質の評価
適切な応答は、次の 4 つの特性を示しています。
- 基盤 - 情報はトレーニングデータではなくナレッジベースから得られます
- 引用 - すべての事実要求にソース参照が含まれます
- 関連性 - 取得されたコンテンツが実際に質問に回答する
- 完全性 - フラグメントだけでなく、必要なすべての情報が提供されます
これらの条件を満たしていない回答が見つかると、指示を調整します。 より具体的なルールを追加します。 境界ケースを明確にします。 動作が一貫するまで反復処理します。
さまざまなエージェントタイプのリトリーバル戦略
エージェントの目的が異なる場合は、異なる取得方法が必要です。 カスタマー サポート エージェントには、内部リサーチ アシスタントとは異なる動作が必要です。
顧客向けサポート エージェント
これらのエージェントには高い精度が必要であり、不確実な情報を提供してはなりません。
support_instructions = """You provide customer support using our product documentation.
Rules:
- Search the knowledge base for every product question
- Cite documentation for all technical answers
- If documentation doesn't cover a question, say "Let me connect you with a specialist" rather than guessing
- Focus on official product information, not general knowledge"""
内部研究アシスタント
これらのエージェントは、ドキュメント間で合成し、より広範なコンテキストを提供できます。
research_instructions = """You help employees research topics across company documentation.
Rules:
- Search all relevant knowledge bases for comprehensive answers
- Synthesize information from multiple sources when helpful
- Always cite all sources used
- Indicate confidence level when synthesizing across documents
- Suggest related topics that might be useful"""
専門ドメインの専門家
これらのエージェントは、特定のナレッジ ドメインに深く焦点を当てています。
compliance_instructions = """You are a compliance documentation assistant.
Rules:
- Only answer questions about compliance policies and procedures
- Always cite the specific policy document and section
- If a question involves interpretation or legal advice, refer to the compliance team
- Keep answers strictly factual based on written policies
- Note the effective date of any policy you reference"""
パターンは一貫性があります。エージェントのスコープを定義し、取得要件を指定し、引用基準を確立し、エッジ ケースを明示的に処理します。
テストから運用環境への移行
テスト クエリで一貫性のある高品質の結果が生成されたら、デプロイする準備が整います。 しかし、運用環境では新しい課題が発生します。
実際の使用パターンを監視します。 ユーザーは、テスト シナリオとは異なる方法で質問します。 予期していなかったエッジケースに触れる質問がいくつかあります。 その他のユーザーは、ナレッジ ベースコンテンツのギャップを明らかにします。
次のパターンを追跡します。
- 引用頻度 - エージェントは一貫してソースを引用していますか?
- フォールバック頻度 - エージェントが "わからない" と言う頻度はどのくらいですか?
- クエリの種類 - 最も頻繁に表示される質問のカテゴリは何ですか?
- 取得精度 - 取得されたドキュメントに実際に回答が含まれていますか?
このデータを使用して、手順を調整し、ナレッジ ベースのコンテンツを改善し、検索構成を調整します。 取得の品質は、実際の使用に基づいて反復によって向上します。
明確な指示、体系的なテスト、継続的な監視の組み合わせにより、組織のエージェント全体でスケーリングされる信頼性の高い知識取得が作成されます。