📖

Azure AI SearchとAzure AI Agent Serviceを使用したAgentic Retrieval

に公開

はじめに

Build2025でAgentic RetrievalというAI Searchの機能が紹介されました。

https://learn.microsoft.com/ja-jp/azure/search/search-agentic-retrieval-concept

通常のRAGシステムではユーザークエリをもとにAI Searchに検索をかけて、LLMで回答整形という流れでした。

Advanced RAGではQuery Expansionなどでユーザークエリを書き換えたり、複数回検索をかけたりして回答精度を上げる工夫がありました。

そこにDeepResearchのようなReasoning手法だったり、o1などのReasoningモデルが出てきたわけですが、

Agentic Retrievalは簡単にユーザークエリの分解によるReasoning(Query Planning)をして、AI Searchに検索をかけ、結果のReRankingとマージをして回答を生成できるもので、複雑なタスクで精度を上げる手法になると思いました。

アーキテクチャ

引用元:https://techcommunity.microsoft.com/blog/azure-ai-services-blog/introducing-agentic-retrieval-in-azure-ai-search/4414677

コンポーネント リソース 使用方法
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 の再ランク付けを実行し、最も関連性の高い一致をランクアップします。エージェンティック検索にはセマンティック ランカーが必要です。

導入

https://github.com/Azure-Samples/azure-search-python-samples/tree/main/Quickstart-Agentic-Retrieval

ここに、簡単にAgentic Retrievalを試せるNotebookがあります。

実行方法や中身は適宜変わってそうなので載せませんが、おおまかに下記の処理が書かれています。

Agentic Retrievalを使うには、ざっくり下記の流れです。

  1. KnowledgeAgentの作成、登録
    https://learn.microsoft.com/ja-jp/azure/search/search-agentic-retrieval-how-to-create

  2. KnowledgeAgentRetrievalClientでretrieve関数実行

やり方があるのかもしれませんが、API認証だと403エラーが発生したので、AI Searchのアクセス制御をRBAC制御もできるようにして、リソースに権限を付与して、DefaultAzureCredentialで認証しました。

まとめ

KnowledgeAgentを登録するだけで、賢くなるのは良いなーと思いました。

実行してみると、クエリを分解するところで工夫ができそうですし、
今後、後処理の結果のマージ手法などにもエージェントが入れられたりするようになるのかなと思いました。

ヘッドウォータース

Discussion