Översikt över lagring för agent-SDK

Lagring är en viktig komponent i SDK för Microsoft 365-agenter, vilket gör det möjligt för agenter att bevara konversationstillstånd, användardata och annan information mellan sessioner. Den stöder olika lagringsalternativ, inklusive minnesintern lagring, Azure Cosmos DB, Azure Blobs Storage och tillåter anpassade lagringsproviders.

Alternativ för nyckellagring

  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-lagringstjänst

    • 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 kan tillhandahållas genom att implementera IStorage

Använda olika lagringsleverantörer

Minneslagring

Alla exempel använder MemoryStorage

För .NET, I Program.cs registrerar du MemoryStorage

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

Azure Cosmos DB-lagring

För .NET:

  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. Mer information finns i CosmosDbPartitionedStorageOptions.

Azure Blob Storage

För .NET:

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