TOYOTA さんの Microsoft Ignite セッション「Lessons from Toyota for building durable multi-agent copilots」が非常に面白く勉強になったのでメモ。
Microsoft 事例ページ
UI からエージェントを "召喚" し、それぞれの意見を聞くことができる
「O-beya」 UI では待機している複数のエージェントから意見を聞きたいエージェントを選択して質問に回答させることができる。オート選択も可能。
専門家ごとにエージェントを分割。各エージェントごとにシステムプロンプト、ナレッジベース、アクションを持つ。
UI から確認できるエージェントは 10 種類。
Next RAG としてのマルチエージェントシステム
RAG の次は Agentic AI! TOYOTA に続け!
TOYOTA Multi-Agent RAG Pattern
RAG パターンについて多数の検証を行い、各エージェントの特定のタスクの精度とパフォーマンスを向上させるために個別に調整しており、ニーズに応じたアーキテクチャを選択している。メインで使っているものは、
- 簡単デプロイ: Azure AI Search ベースの RAG、SharePoint データを検索
- 信頼性とパフォーマンス:Azure Cosmos DB ベースの RAG、運用データ・ベクトルを検索
というふうに分けているようだ。確かに Azure AI Search は UI から簡単に RAG を構築できる。信頼性という点では、Azure Cosmos DB for NoSQL は 可用性 SLA 99.999% が可能。
エージェントには Azure Functions の Durable Functions を採用している
マルチエージェントには専用のライブラリなどを用いているわけではなく、堅牢なワークフローとしての実装が見える。Durable Functions は、サーバーレス コンピューティング環境でステートフル関数を記述できる機能で、いわゆる枯れた技術と言える。Durable Functions 採用理由は以下とのこと。
- 並列実行が可能
- エラーハンドリングと再実行が可能
- 状態のモニタリングが可能
これは、Durable Functions の設計パターン「ファンアウト/ファンイン」である。ファンアウト/ファンイン パターンでは、複数の関数を並列で実行し、すべての関数が完了するまで待機する。 複数の関数から返される結果に基づいて集計作業を実行する。
全体のアーキテクチャ
エージェントに Durable Functions を用いるアーキテクチャ
参考までに、エージェントに Durable Functions を用いたり、ベクトルデータベースに Cosmos DB を用いる考え方は品川で開催した AI Challenge Day 第3回 で Well-Architected な高信頼性 RAG アーキテクチャとして ZEN ARCHITECTS 三宅さんが詳しく紹介してくれている。
アーキテクチャ設計には ZEN ARCHITECTS さんが関わっている
Cosmos DB をセマンティックキャッシュに利用する
セマンティック キャッシュを使用すると、以前のユーザープロンプトと LLM 出力履歴を使用し、ベクトル類似性検索を使用して、同じようなユーザープロンプトにはキャッシュを返す。コストが高い LLM コールを減らすためのテクニック。
Azure Cosmos DB によるベクトル検索
Azure Cosmos DB for NoSQL の最新アップデート。このアップデートによって Cosmos DB 側にも全文検索機能を持たせようとしており、Azure AI Search との機能差は急速に薄まることが予想される。
- General Availability (GA) of Vector Search in Azure Cosmos DB for NoSQL
- General Availability (GA) of the Microsoft DiskANN vector index
- Public Preview of Full Text Search and Ranking (using BM25)
- Public Preview of Hybrid Search (using RRF)
Microsoft DiskANN による高速なベクトル検索機能が GA
データインジェストのためのソリューションアクセラレーターを提供
あぁこれは Integ..(ry
参考