Använda lagring i din agent

Lagring är en kritisk komponent i SDK för Microsoft 365-agenter. Den gör det möjligt för agenter att spara konversationstillstånd, användardata och annan information mellan sessioner. SDK:n stöder olika lagringsalternativ, inklusive:

  • Minneslagring
  • Azure Cosmos DB
  • Azure Blob Storage
  • Anpassade lagringsleverantörer

Nyckellagringsalternativ

Agents SDK tillhandahåller flera inbyggda lagringsleverantörer, var och en med sina egna användningsområden och fördelar. Du kan välja den som bäst passar din agents behov. Du kan också implementera din egen anpassade lagringsleverantör.

  1. Minneslagring

    • Lämplig för testning och utveckling.
    • Data rensas när agenten startas om, vilket gör den olämplig för produktion.
    • Data är bara tillgängliga på webbappsinstansen, vilket gör den olämplig när den körs i ett kluster.
  2. Azure Cosmos DB

    • En globalt distribuerad databas med flera modeller som är idealisk för produktionsagenter.
    • Stöder partitionerad lagring för skalbarhet och prestanda.
  3. Azure Blob Storage

    • Optimerad för lagring av ostrukturerade data som text eller binära filer.
    • Används ofta för agenttillstånd och transkriptionslagring.
  4. Anpassade lagringsalternativ genom att implementera IStorage

Använda olika lagringsleverantörer

Minneslagring

Alla exempel använder MemoryStorage. Denna lagring är flyktig och endast lämplig för utveckling och testning. För produktionsscenarier, använd ett mer tillförlitligt lagringsalternativ som Azure Cosmos DB eller Azure Blob Storage.

I Program.cs, registrera MemoryStorage:

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

Azure Cosmos DB-lagring

  1. Lägga till ett paketberoende för Microsoft.Agents.Storage.CosmosDb.

  2. I Program.cs lägger du till (eller ersätter befintlig) 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. Läs mer i CosmosDbPartitionedStorageOptions.

Azure Blob Storage

  1. Lägga till ett paketberoende för Microsoft.Agents.Storage.Blobs.

  2. I Program.cs lägger du till (eller ersätter befintlig) 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);
    });