Verwenden von Speicher in Ihrem Agent

Speicher ist eine wichtige Komponente von Microsoft 365 Agents SDK. Damit können Agenten den Konversationsstatus, Benutzerdaten und andere Informationen sitzungsübergreifend beibehalten. Das SDK unterstützt verschiedene Speicheroptionen, darunter:

  • In-Memory-Speicher
  • Azure Cosmos DB (ein Microsoft-Datenbankdienst)
  • Azure Blob Storage (Speicherdienst von Azure für unstrukturierte Daten)
  • Benutzerdefinierte Speicheranbieter

Schlüsselspeicheroptionen

Das Agents SDK bietet mehrere integrierte Speicheranbieter mit jeweils eigenen Anwendungsfällen und Vorteilen. Sie können die Option auswählen, die den Anforderungen Ihres Agenten am besten entspricht. Sie können auch Ihren eigenen benutzerdefinierten Speicheranbieter implementieren.

  1. Speicherspeicher

    • Geeignet für Test- und Entwicklungszwecke.
    • Daten werden gelöscht, wenn der Agent neu gestartet wird, sodass sie für die Produktion nicht geeignet ist.
    • Daten sind nur in der Web-App-Instanz verfügbar, daher ist sie nicht geeignet, wenn sie in einem Cluster ausgeführt wird.
  2. Azure Cosmos DB (ein Microsoft-Datenbankdienst)

    • Eine global verteilte, multimodellige Datenbank ideal für Produktionsmitarbeiter.
    • Unterstützt partitionierten Speicher für Skalierbarkeit und Leistung.
  3. Azure Blob Storage (Speicherdienst von Azure für unstrukturierte Daten)

    • Optimiert zum Speichern unstrukturierter Daten wie Text oder Binärdateien.
    • Wird häufig für Agentstatus- und Transkriptspeicher verwendet.
  4. Benutzerdefinierte Speicheroptionen durch Implementierung von IStorage

Verwenden verschiedener Speicheranbieter

Speicherspeicher

Alle Beispiele verwenden MemoryStorage. Dieser Speicher ist veränderlich und eignet sich nur für Entwicklung und Tests. Verwenden Sie für Produktionsszenarien eine langlebigere Speicheroption wie Azure Cosmos DB oder Azure Blob Storage.

In Program.cs registrieren Sie MemoryStorage:

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

Azure CosmosDb-Speicher

  1. Fügen Sie eine Paketabhängigkeit für Microsoft.Agents.Storage.CosmosDb.

  2. Fügen Sie in Program.cs die IStorage-Registrierung hinzu (oder ersetzen Sie die vorhandene) durch:

    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. Weitere Informationen finden Sie unter CosmosDbPartitionedStorageOptions.

Azure Blob-Speicher

  1. Fügen Sie eine Paketabhängigkeit für Microsoft.Agents.Storage.Blobs.

  2. Fügen Sie in Program.cs die IStorage-Registrierung hinzu (oder ersetzen Sie die vorhandene durch):

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