Brug lager i din agent

Lagring er en kritisk komponent i SDK til Microsoft 365-agenter. Det gør det muligt for agenter at bevare samtalestatus, brugerdata og anden information på tværs af sessioner. SDK'et understøtter forskellige lagringsmuligheder, herunder:

  • Lager i hukommelse
  • Azure Cosmos DB
  • Azure Blob Storage
  • Brugerdefinerede lagringsudbydere

Nøglelagringsmuligheder

Agents SDK'en tilbyder flere indbyggede lagringsudbydere, hver med sine egne anvendelsesområder og fordele. Du kan vælge den, der passer bedst til din agents behov. Du kan også implementere din egen brugerdefinerede lagerudbyder.

  1. Hukommelseslager

    • Egnet til test- og udviklingsformål.
    • Data ryddes, når agenten genstarter, så den er uegnet til produktion.
    • Data er kun tilgængelige på webappforekomsten, hvilket gør dem uegnede, når de kører i en klynge.
  2. Azure Cosmos DB

    • En globalt distribueret database med flere modeller, der er ideel til produktionsagenter.
    • Understøtter opdelt lager for skalerbarhed og ydeevne.
  3. Azure Blob Storage

    • Optimeret til lagring af ustrukturerede data, f.eks. tekst eller binære filer.
    • Bruges ofte til agenttilstand og transskriptionslager.
  4. Brugerdefinerede lagringsmuligheder ved at implementere IStorage

Brug af forskellige lagerudbydere

Hukommelseslager

Alle eksempler bruges MemoryStorage. Denne lagring er flygtig og kun egnet til udvikling og test. Til produktionsscenarier bør du bruge en mere varig lagringsløsning som Azure Cosmos DB eller Azure Blob Storage.

I Program.cs, registrer MemoryStorage:

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

Azure Cosmos DB-lagring

  1. Tilføj en pakkeafhængighed for Microsoft.Agents.Storage.CosmosDb.

  2. I Program.cs skal du tilføje (eller erstatte eksisterende) IStorage-registrering med:

    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. Få mere at vide i CosmosDbPartitionedStorageOptions.

Azure Blob Storage

  1. Tilføj en pakkeafhængighed for Microsoft.Agents.Storage.Blobs.

  2. I Program.cs skal du tilføje (eller erstatte eksisterende) IStorage-registrering med:

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