Azure AI SearchとAzure AI Agent Serviceを使用したAgentic Retrieval
はじめに
Build2025でAgentic RetrievalというAI Searchの機能が紹介されました。
通常のRAGシステムではユーザークエリをもとにAI Searchに検索をかけて、LLMで回答整形という流れでした。
Advanced RAGではQuery Expansionなどでユーザークエリを書き換えたり、複数回検索をかけたりして回答精度を上げる工夫がありました。
そこにDeepResearchのようなReasoning手法だったり、o1などのReasoningモデルが出てきたわけですが、
Agentic Retrievalは簡単にユーザークエリの分解によるReasoning(Query Planning)をして、AI Searchに検索をかけ、結果のReRankingとマージをして回答を生成できるもので、複雑なタスクで精度を上げる手法になると思いました。
アーキテクチャ
コンポーネント | リソース | 使用方法 |
---|---|---|
LLM (gpt-4o および gpt-4.1 シリーズ) | Azure OpenAI | LLM には 2 つの関数があります。 まず、クエリ プランのサブクエリを作成し、ナレッジ エージェントに送り返します。 次に、クエリの実行後、LLM はクエリ応答からグラウンド データを受け取り、それを応答の定式化に使用します。 |
検索インデックス | Azure AI Search | 必要に応じて、プレーン テキストとベクター コンテンツ、セマンティック構成、およびその他の要素が含まれます。 |
知識エージェント | Azure AI Search | LLM に接続し、クエリ プランを構築するためのパラメーターと入力を提供します。 |
検索エンジン | Azure AI Search | LLM で生成されたクエリ プランとその他のパラメーターで実行され、コンテンツとクエリ プランのメタデータを含む豊富な応答が返されます。クエリはキーワード、ベクター、ハイブリッドです。結果はマージされ、ランク付けされます。 |
セマンティック ランカー | Azure AI Search | L2 の再ランク付けを実行し、最も関連性の高い一致をランクアップします。エージェンティック検索にはセマンティック ランカーが必要です。 |
導入
ここに、簡単にAgentic Retrievalを試せるNotebookがあります。
実行方法や中身は適宜変わってそうなので載せませんが、おおまかに下記の処理が書かれています。
Agentic Retrievalを使うには、ざっくり下記の流れです。
-
KnowledgeAgentの作成、登録
https://learn.microsoft.com/ja-jp/azure/search/search-agentic-retrieval-how-to-create -
KnowledgeAgentRetrievalClientでretrieve関数実行
やり方があるのかもしれませんが、API認証だと403エラーが発生したので、AI Searchのアクセス制御をRBAC制御もできるようにして、リソースに権限を付与して、DefaultAzureCredentialで認証しました。
まとめ
KnowledgeAgentを登録するだけで、賢くなるのは良いなーと思いました。
実行してみると、クエリを分解するところで工夫ができそうですし、
今後、後処理の結果のマージ手法などにもエージェントが入れられたりするようになるのかなと思いました。
Discussion