Speicher in Ihrem Agent verwenden

Speicher ist eine entscheidende Komponente des Microsoft 365 Agents SDK. Es ermöglicht Agents, den Unterhaltungszustand, Benutzerdaten und andere Informationen über Sitzungen hinweg zu persistieren. Das SDK unterstützt verschiedene Speicheroptionen, darunter:

  • Speicherinterner Speicher
  • Azure Cosmos DB
  • Azure Blob Storage
  • Benutzerdefinierte Speicheranbieter

Schlüsselspeicheroptionen

Das Agents SDK umfasst mehrere integrierte Speicheranbieter, die jeweils eigene Anwendungsfälle und Vorteile bieten. Sie können Sie denjenigen auswählen, der Anforderungen Ihres Agents am besten entspricht. Sie können auch Ihren eigenen benutzerdefinierten Speicheranbieter implementieren.

  1. Speicherplatz

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

    • Eine global verteilte, multimodellbasierte Datenbank ideal für Produktions-Agents.
    • Unterstützt partitionierten Speicher für Skalierbarkeit und Leistung.
  3. Azure Blob Storage

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

Verwenden verschiedener Speicheranbieter

Speicherplatz

Alle Beispiele verwenden MemoryStorage. Dieser Speicher ist flüchtig und nur für Entwicklung und Tests geeignet. Für Produktionsszenarien verwenden Sie eine dauerhaftere Speicheroption wie Azure Cosmos DB oder Azure Blob Storage.

In Program.cs, registrieren MemoryStorage:

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

Azure CosmosDb Speicher

  1. Hinzufügen einer Paketabhängigkeit für Microsoft.Agents.Storage.CosmosDb.

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

    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 Storage

  1. Hinzufügen einer Paketabhängigkeit für Microsoft.Agents.Storage.Blobs.

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

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