ストレージは Microsoft Agents SDK の重要なコンポーネントであり、エージェントはセッション間で会話状態、ユーザー データ、およびその他の情報を保持できます。 メモリ内ストレージ、Azure Cosmos DB、Azure Blobs Storage など、さまざまなストレージ オプションがサポートされており、カスタム ストレージ プロバイダーに対応しています。
キー ストレージ のオプション
メモリ ストレージ
- テストと開発の目的に適しています。
- エージェントの再起動時にデータがクリアされるため、運用環境には適さない。
- データは Web アプリ インスタンスでのみ使用できるため、クラスターで実行する場合は不適切です。
Azure Cosmos DB
- 運用エージェントに最適なグローバル分散マルチモデル データベース。
- スケーラビリティとパフォーマンスのためにパーティション分割ストレージをサポートします。
Azure Blob Storage
- テキスト ファイルやバイナリ ファイルなどの非構造化データを格納するために最適化されています。
- エージェントの状態とトランスクリプトのストレージでよく使用されます。
カスタム ストレージ オプションは、
IStorageを実装することによって提供できます。
異なるストレージ プロバイダーの使用
メモリ ストレージ
すべてのサンプルで MemoryStorage を使用します。
.NET の場合は、Program.csで登録します。 MemoryStorage
builder.Services.AddSingleton<IStorage, MemoryStorage>();
Azure CosmosDb ストレージ
.NET の場合:
のパッケージ依存関係を追加する
Microsoft.Agents.Storage.CosmosDbProgram.csで、
IStorageの登録を追加するか、次のように既存のものを置き換えます。builder.Services.AddSingleton<IStorage>(sp => { var options = new CosmosDbPartitionedStorageOptions() { CosmosDbEndpoint = "your-cosmosdb-endpoint", DatabaseId = "your-database-id", ContainerId = "your-container-id", // Get a TokenCredential from your defined Connections TokenCredential = sp.GetService<IConnections>().GetConnection("ServiceConnection").GetTokenCredential() }; return new CosmosDbPartitionedStorage(options); });詳細については、
CosmosDbPartitionedStorageOptionsを参照してください。
Azure Blob ストレージ
.NET の場合:
のパッケージ依存関係を追加する
Microsoft.Agents.Storage.BlobsProgram.csで、
IStorageの登録を追加するか、次のように既存のものを置き換えます。builder.Services.AddSingleton<IStorage>(sp => { // Get a TokenCredential from your defined Connections var tokenCredential = sp.GetService<IConnections>().GetConnection("ServiceConnection").GetTokenCredential(); return new BlobsStorage( new Uri("{{your-blobs-storage-endpoint}}/agent-state"), tokenCredential); });