Bruk lagring i agenten

Lagring er en kritisk komponent i SDK for Microsoft 365-agenter. Den lar agenter bevare samtaletilstand, brukerdata og annen informasjon på tvers av økter. SDK-en støtter ulike lagringsalternativer, inkludert:

  • Lagring i minnet
  • Azure Cosmos DB
  • Azure Blob Storage
  • Egendefinerte lagringsleverandører

Viktige lagringsalternativer

SDK for agenter tilbyr flere innebygde lagringsleverandører, hver med sine egne bruksområder og fordeler. Du kan velge den som passer best til agentens behov. Du kan også implementere din egen tilpassede lagringsleverandør.

  1. Minnelagring

    • Egnet for test- og utviklingsformål.
    • Data fjernes når agenten starter på nytt og er dermed uegnet for produksjon.
    • Data er bare tilgjengelig i nettappforekomsten og er dermed uegnet når du kjører i en klynge.
  2. Azure Cosmos DB

    • En globalt distribuert database med flere modeller som er ideell for produksjonsagenter.
    • Støtter partisjonert lagringsplass for skalerbarhet og ytelse.
  3. Azure Blob Storage

    • Optimalisert for lagring av ustrukturerte data, for eksempel tekst eller binære filer.
    • Brukes vanligvis for agenttilstand og utskriftslagring.
  4. Tilpassede lagringsalternativer ved å implementere IStorage

Bruk av ulike lagringsleverandører

Minnelagring

Alle eksempler bruker MemoryStorage. Denne lagringen er flyktig og bare egnet til utvikling og testing. For produksjonsscenarioer velger du et mer pålitelig lagringsalternativ som Azure Cosmos DB eller Azure Blob Storage.

Registrer MemoryStorage i Program.cs:

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

Azure CosmosDb-lagring

  1. Legg til en pakkeavhengighet for Microsoft.Agents.Storage.CosmosDb.

  2. Legg til (eller erstatt eksisterende) IStorage-registrering i Program.cs 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. Mer informasjon i CosmosDbPartitionedStorageOptions.

Azure Blob Storage

  1. Legg til en pakkeavhengighet for Microsoft.Agents.Storage.Blobs.

  2. Legg til (eller erstatt eksisterende) IStorage-registrering i Program.cs 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);
    });