Přehled úložiště sady Agents SDK

Úložiště je důležitou součástí sady Microsoft Agents SDK, která umožňuje agentům zachovat stav konverzace, uživatelská data a další informace napříč relacemi. Podporuje různé možnosti úložiště, včetně úložiště v paměti, Azure Cosmos DB, Azure Blobs Storage a umožňuje vlastní poskytovatele úložiště.

Možnosti úložiště klíčů

  1. Úložiště paměti

    • Vhodné pro účely testování a vývoje.
    • Data se vymažou, když se agent restartuje, takže není vhodný pro produkční prostředí.
    • Data jsou dostupná pouze v instanci webové aplikace, což zneužito při spuštění v clusteru.
  2. Azure Cosmos DB

    • Globálně distribuovaná vícemodelová databáze ideální pro produkční agenty.
    • Podporuje dělené úložiště pro zajištění škálovatelnosti a výkonu.
  3. Azure Blob Storage

    • Optimalizované pro ukládání nestrukturovaných dat, jako jsou textové nebo binární soubory.
    • Běžně se používá pro úložiště stavu agenta a přepisu.
  4. Vlastní možnosti úložiště je možné poskytnout implementací IStorage

Použití různých poskytovatelů úložiště

Úložiště paměti

Všechny ukázky používají MemoryStorage

Pro .NET v Program.cs zaregistrujte MemoryStorage

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

Azure CosmosDb Storage

Pro .NET:

  1. Přidání závislosti balíčku pro Microsoft.Agents.Storage.CosmosDb

  2. V Program.cs přidejte (nebo nahraďte existující) registraci IStorage hodnotou:

    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. Další podrobnosti najdete tady: CosmosDbPartitionedStorageOptions.

Úložiště objektů blob Azure

Pro .NET:

  1. Přidání závislosti balíčku pro Microsoft.Agents.Storage.Blobs

  2. V Program.cs přidejte (nebo nahraďte existující) registraci IStorage hodnotou:

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