Utiliser le stockage dans votre agent

Le stockage est un composant essentiel de Microsoft 365 Agents SDK. Il permet aux agents de conserver l’état de conversation, les données utilisateur et d’autres informations entre les sessions. Le Kit de développement logiciel (SDK) prend en charge différentes options de stockage, notamment :

  • Stockage en mémoire
  • Azure Cosmos DB, une base de données distribuée globale
  • Service de stockage Blob Azure
  • Fournisseurs de stockage personnalisés

Options de stockage de clés

Le Kit de développement logiciel (SDK) Agents fournit plusieurs fournisseurs de stockage intégrés, chacun avec ses propres cas d’utilisation et avantages. Vous pouvez choisir celui qui convient le mieux aux besoins de votre agent. Vous pouvez également implémenter votre propre fournisseur de stockage personnalisé.

  1. Stockage mémoire

    • Adapté aux fins de test et de développement.
    • Les données sont effacées lorsque l’agent redémarre, de sorte qu’elle n’est pas adaptée à la production.
    • Les données sont disponibles uniquement sur l’instance de l’application web, de sorte qu’elles ne conviennent pas lors de l’exécution dans un cluster.
  2. Azure Cosmos DB, une base de données distribuée globale

    • Une base de données multimodel distribuée mondialement idéale pour les agents de production.
    • Prend en charge le stockage partitionné pour la scalabilité et les performances.
  3. Service de stockage Blob Azure

    • Optimisé pour stocker des données non structurées telles que des fichiers texte ou binaires.
    • Couramment utilisé pour le stockage d’état et de transcription de l’assistant.
  4. Options de stockage personnalisées en implémentant IStorage

Utilisation de différents fournisseurs de stockage

Stockage mémoire

Tous les exemples utilisent MemoryStorage. Ce stockage est volatile et adapté au développement et aux tests uniquement. Pour les scénarios de production, utilisez une option de stockage plus durable comme Azure Cosmos DB ou Stockage Blob Azure.

Dans Program.cs, inscrivez MemoryStorage:

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

Stockage Azure CosmosDb

  1. Ajoutez une dépendance de package pour Microsoft.Agents.Storage.CosmosDb.

  2. Dans Program.cs, ajoutez (ou remplacez l’inscription existante) IStorage par :

    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. En savoir plus sur CosmosDbPartitionedStorageOptions.

Stockage Blob Azure

  1. Ajoutez une dépendance de package pour Microsoft.Agents.Storage.Blobs.

  2. Dans Program.cs, ajoutez (ou remplacez l’inscription existante) IStorage par :

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