Opslag gebruiken in uw agent

Opslag is een cruciaal onderdeel van de SDK voor Microsoft 365-agenten. Het stelt agenten in staat om gespreksstatus, gebruikersgegevens en andere informatie over sessies heen te behouden. De SDK ondersteunt verschillende opslagopties, waaronder:

  • Opslag in geheugen
  • Azure Cosmos DB
  • Azure Blob Storage
  • Aangepaste opslagproviders

Belangrijke opslagopties

De Agents SDK biedt verschillende ingebouwde opslagproviders, elk met hun eigen gebruiksscenario's en voordelen. U kunt de opslagprovider kiezen die het beste past bij de behoeften van uw agent. U kunt ook uw eigen aangepaste opslagprovider implementeren.

  1. Opslag in geheugen

    • Geschikt voor test- en ontwikkelingsdoeleinden.
    • Gegevens worden gewist wanneer de agent opnieuw opstart, dus het is ongeschikt voor productie.
    • Gegevens zijn alleen beschikbaar op het webtoepassingsexemplaar, waardoor het niet geschikt is voor gebruik in een cluster.
  2. Azure Cosmos DB

    • Een wereldwijd gedistribueerde multimodeldatabase, ideaal voor productieagenten.
    • Ondersteunt gepartitioneerde opslag voor schaalbaarheid en prestaties.
  3. Azure Blob Storage

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

Verschillende opslagproviders gebruiken

Opslag in geheugen

Alle voorbeelden gebruiken MemoryStorage. Deze opslag is vluchtig en alleen geschikt voor ontwikkeling en testen. Gebruik voor productiescenario's een duurzamere opslagoptie, zoals Azure Cosmos DB of Azure Blob Storage.

In Program.cs registreert u MemoryStorage:

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

Azure CosmosDb-opslag

  1. Voeg een pakketafhankelijkheid toe voor Microsoft.Agents.Storage.CosmosDb.

  2. Voeg in Program.csIStorage-registratie toe ( of vervang die) met:

    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. Meer informatie vindt u in CosmosDbPartitionedStorageOptions.

Azure Blob Storage

  1. Voeg een pakketafhankelijkheid toe voor Microsoft.Agents.Storage.Blobs.

  2. Voeg in Program.csIStorage-registratie toe ( of vervang die) met:

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