Použití úložiště v agentovi

Úložiště je klíčovou součástí Sada SDK pro agenty Microsoft 365. Umožňuje agentům uchovávat stav konverzace, uživatelská data a další informace napříč relacemi. SDK podporuje různé možnosti úložiště, včetně:

  • Úložiště v paměti
  • Azure Cosmos DB
  • Azure Blob Storage
  • Vlastní poskytovatelé úložiště

Klíčové možnosti úložiště

Agents SDK nabízí několik integrovaných poskytovatelů úložiště, z nichž každý má své specifické využití a výhody. Můžete si vybrat tu, která nejlépe vyhovuje potřebám vašeho agenta. Můžete také implementovat svého vlastního poskytovatele úložiště.

  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ě prostřednictvím implementace IStorage

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

Úložiště paměti

Všechny ukázky používají MemoryStorage. Toto úložiště je dočasné a vhodné pouze pro vývoj a testování. Pro produkční scénáře použijte trvalejší možnost úložiště, jako je Azure Cosmos DB nebo Azure Blob Storage.

Ve Program.cs zaregistrujte MemoryStorage:

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

Úložiště Azure CosmosDb

  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ší informace získáte v platformě CosmosDbPartitionedStorageOptions.

Azure Blob Storage

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