Overzicht van Agents SDK-opslag

Opslag is een essentieel onderdeel van de Microsoft Agents SDK, waardoor agents de gespreksstatus, gebruikersgegevens en andere informatie in sessies kunnen behouden. Het biedt ondersteuning voor verschillende opslagopties, waaronder opslag in het geheugen, Azure Cosmos DB, Azure Blobs Storage en biedt aangepaste opslagproviders.

Opties voor sleutelopslag

  1. Geheugenopslag

    • Geschikt voor test- en ontwikkelingsdoeleinden.
    • Gegevens worden gewist wanneer de agent opnieuw wordt opgestart, waardoor deze niet geschikt is voor productie.
    • Gegevens zijn alleen beschikbaar op het web-app-exemplaar, waardoor deze niet geschikt zijn wanneer ze worden uitgevoerd in een cluster.
  2. Azure Cosmos DB

    • Een wereldwijd gedistribueerde database met meerdere modellen die ideaal is voor productieagents.
    • Ondersteunt gepartitioneerde opslag voor schaalbaarheid en prestaties.
  3. Azure Blob Storage (opslagdienst van Azure)

    • Geoptimaliseerd voor het opslaan van ongestructureerde gegevens, zoals tekst- of binaire bestanden.
    • Wordt vaak gebruikt voor agentstatus- en transcriptopslag.
  4. Aangepaste opslagopties kunnen worden geboden door IStorage te implementeren.

Verschillende opslagproviders gebruiken

Geheugenopslag

Alle voorbeelden gebruiken MemoryStorage

Voer de registratie uit in Program.cs voor .NET MemoryStorage

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

Azure CosmosDb-opslag

Voor .NET:

  1. Een pakketafhankelijkheid toevoegen voor Microsoft.Agents.Storage.CosmosDb

  2. Voeg in Program.cs registratie toe (of vervang bestaande) IStorage door:

    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. Zie CosmosDbPartitionedStorageOptions voor meer informatie.

Azure Blob Storage

Voor .NET:

  1. Een pakketafhankelijkheid toevoegen voor Microsoft.Agents.Storage.Blobs

  2. Voeg in Program.cs registratie toe (of vervang bestaande) IStorage door:

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