Gambaran umum penyimpanan SDK agen

Penyimpanan adalah komponen penting dari Microsoft Agents SDK, memungkinkan agen untuk mempertahankan status percakapan, data pengguna, dan informasi lainnya di seluruh sesi. Ini mendukung berbagai opsi penyimpanan, termasuk penyimpanan dalam memori, Azure Cosmos DB, Azure Blobs Storage, dan memungkinkan penyedia penyimpanan kustom.

Opsi penyimpanan kunci

  1. Penyimpanan Memori

    • Cocok untuk tujuan pengujian dan pengembangan.
    • Data dibersihkan ketika agen dimulai ulang, menjadikannya tidak cocok untuk produksi.
    • Data hanya tersedia pada instans webapp, membuatnya tidak cocok saat berjalan dalam kluster.
  2. Azure Cosmos DB

    • Database multi-model yang didistribusikan secara global ideal untuk agen produksi.
    • Mendukung penyimpanan yang dipartisi untuk skalabilitas dan performa.
  3. Azure Blob Storage

    • Dioptimalkan untuk menyimpan data yang tidak terstruktur seperti teks atau file biner.
    • Umumnya digunakan untuk status agen dan penyimpanan transkrip.
  4. Opsi penyimpanan kustom dapat disediakan dengan menerapkan IStorage

Menggunakan penyedia penyimpanan yang berbeda

Penyimpanan memori

Semua sampel menggunakan MemoryStorage

Untuk .NET, pada file Program.cs, daftarkan MemoryStorage

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

Penyimpanan Azure CosmosDb

Untuk .NET:

  1. Menambahkan dependensi paket untuk Microsoft.Agents.Storage.CosmosDb

  2. Di Program.cs, tambahkan (atau ganti pendaftaran yang sudah ada) IStorage dengan:

    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. Untuk detail lebih lanjut, lihat CosmosDbPartitionedStorageOptions.

Penyimpanan blob Azure

Untuk .NET:

  1. Menambahkan dependensi paket untuk Microsoft.Agents.Storage.Blobs

  2. Di Program.cs, tambahkan (atau ganti pendaftaran yang sudah ada) IStorage dengan:

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