Omówienie technologii przechowywania w zestawie SDK do agentów

Magazyn jest krytycznym składnikiem zestawu MICROSOFT Agents SDK, który umożliwia agentom utrwalanie stanu konwersacji, danych użytkownika i innych informacji między sesjami. Obsługuje ona różne opcje magazynowania, w tym magazyn w pamięci, usługę Azure Cosmos DB, usługę Azure Blobs Storage i umożliwia korzystanie z niestandardowych dostawców magazynu.

Opcje przechowywania kluczy

  1. Magazyn pamięci

    • Nadaje się do celów testowych i programistycznych.
    • Dane są czyszczone po ponownym uruchomieniu agenta, co czyni je nieodpowiednimi dla środowiska produkcyjnego.
    • Dane są dostępne tylko w instancji aplikacji webowej, co czyni je nieodpowiednimi do używania w klastrze.
  2. Azure Cosmos DB

    • Globalnie rozproszona wielomodelowa baza danych idealna dla agentów produkcyjnych.
    • Obsługuje magazyn partycjonowany na potrzeby skalowalności i wydajności.
  3. Azure Blob Storage

    • Zoptymalizowane pod kątem przechowywania danych bez struktury, takich jak pliki tekstowe lub binarne.
    • Często używane do przechowywania stanu agenta i transkrypcji rozmów.
  4. Niestandardowe opcje przechowywania mogą być udostępniane przez zaimplementowanie IStorage

Korzystanie z różnych dostawców magazynu

Pamięć masowa

Wszystkie przykłady używają MemoryStorage

W przypadku platformy .NET w Program.cs zarejestruj się MemoryStorage

builder.Services.AddSingleton<IStorage, MemoryStorage>();

Przechowywanie usługi Azure CosmosDb

Dla platformy .NET:

  1. Dodaj zależność pakietu dla Microsoft.Agents.Storage.CosmosDb

  2. W Program.cs dodaj (lub zastąp istniejącą) IStorage rejestrację:

    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);
    });
    
  3. Aby uzyskać więcej informacji, zobacz CosmosDbPartitionedStorageOptions.

Azure Blob Storage

Dla platformy .NET:

  1. Dodaj zależność pakietu dla Microsoft.Agents.Storage.Blobs

  2. W Program.cs dodaj (lub zastąp istniejącą) IStorage rejestrację:

    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);
    });