Menggunakan penyimpanan di agen

Penyimpanan adalah komponen penting dari Agen SDK Microsoft 365. Ini memungkinkan agen menyimpan secara berkelanjutan status percakapan, data pengguna, dan informasi lainnya di berbagai sesi. SDK mendukung berbagai opsi penyimpanan, termasuk:

  • Penyimpanan dalam memori
  • Azure Cosmos DB
  • Azure Blob Storage
  • Penyedia penyimpanan khusus

Opsi penyimpanan utama

Agen SDK menyediakan beberapa penyedia penyimpanan bawaan, masing-masing dengan kasus penggunaan dan manfaatnya sendiri. Anda dapat memilih salah satu yang paling sesuai dengan kebutuhan agen Anda. Anda juga dapat menerapkan penyedia penyimpanan kustom Anda sendiri.

  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 aplikasi web, sehingga tidak cocok digunakan saat berjalan dalam kluster.
  2. Azure Cosmos DB

    • Basis data multimodel yang terdistribusi secara global, sangat cocok untuk agen produksi.
    • Mendukung penyimpanan yang dipartisi untuk skalabilitas dan performa.
  3. Azure Blob Storage

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

Menggunakan penyedia penyimpanan yang berbeda

Penyimpanan memori

Semua sampel menggunakan MemoryStorage. Penyimpanan ini bersifat volatil dan hanya cocok untuk pengembangan dan pengujian. Untuk skenario produksi, gunakan opsi penyimpanan yang lebih andal seperti Azure Cosmos DB atau Azure Blob Storage.

Dalam Program.cs, daftarkan MemoryStorage:

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

Penyimpanan Azure Cosmos DB

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

  2. Dalam Program.cs, tambahkan pendaftaran (atau ganti yang 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. Pelajari lebih lanjut di CosmosDbPartitionedStorageOptions.

Azure blob storage

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

  2. Dalam Program.cs, tambahkan pendaftaran (atau ganti yang 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);
    });