ai-agents-for-beginners

Gedächtnis für KI-Agenten

Agent Memory

Wenn die einzigartigen Vorteile der Erstellung von KI-Agenten diskutiert werden, werden hauptsächlich zwei Dinge besprochen: die Fähigkeit, Werkzeuge zur Erledigung von Aufgaben aufzurufen, und die Fähigkeit, sich im Laufe der Zeit zu verbessern. Das Gedächtnis ist die Grundlage für die Erstellung von sich selbst verbessernden Agenten, die bessere Erlebnisse für unsere Benutzer schaffen können.

In dieser Lektion werden wir uns ansehen, was Gedächtnis für KI-Agenten ist und wie wir es verwalten und zum Nutzen unserer Anwendungen einsetzen können.

Einleitung

Diese Lektion behandelt

Verständnis des Gedächtnisses von KI-Agenten: Was Gedächtnis ist und warum es für Agenten unerlässlich ist.

Implementierung und Speicherung von Gedächtnis: Praktische Methoden zum Hinzufügen von Gedächtnisfunktionen zu Ihren KI-Agenten, mit Schwerpunkt auf Kurzzeit- und Langzeitgedächtnis.

KI-Agenten selbstverbessernd machen: Wie Gedächtnis es Agenten ermöglicht, aus vergangenen Interaktionen zu lernen und sich im Laufe der Zeit zu verbessern.

Lernziele

Nach Abschluss dieser Lektion wissen Sie, wie Sie

Unterscheidung zwischen verschiedenen Arten von KI-Agenten-Gedächtnissen, einschließlich Arbeits-, Kurzzeit- und Langzeitgedächtnis sowie spezialisierten Formen wie Personal- und episodischem Gedächtnis.

Implementierung und Verwaltung von Kurzzeit- und Langzeitgedächtnis für KI-Agenten mithilfe des Semantic Kernel-Frameworks, Nutzung von Tools wie Mem0 und Whiteboard-Gedächtnis sowie Integration mit Azure AI Search.

Verständnis der Prinzipien hinter sich selbst verbessernden KI-Agenten und wie robuste Gedächtnisverwaltungssysteme zu kontinuierlichem Lernen und Anpassung beitragen.

Verständnis des Gedächtnisses von KI-Agenten

Im Kern bezieht sich das Gedächtnis für KI-Agenten auf die Mechanismen, die es ihnen ermöglichen, Informationen zu speichern und abzurufen. Diese Informationen können spezifische Details zu einer Konversation, Benutzereinstellungen, vergangene Aktionen oder sogar erlernte Muster sein.

Ohne Gedächtnis sind KI-Anwendungen oft zustandslos, was bedeutet, dass jede Interaktion von vorne beginnt. Dies führt zu einer repetitiven und frustrierenden Benutzererfahrung, bei der der Agent den vorherigen Kontext oder die Präferenzen "vergisst".

Warum ist Gedächtnis wichtig?

Die Intelligenz eines Agenten ist eng mit seiner Fähigkeit verknüpft, vergangene Informationen abzurufen und zu nutzen. Gedächtnis ermöglicht es Agenten, zu sein

Reflektierend: Aus vergangenen Handlungen und Ergebnissen lernen.

Interaktiv: Kontext während einer laufenden Konversation aufrechterhalten.

Proaktiv und reaktiv: Bedürfnisse antizipieren oder angemessen auf Basis historischer Daten reagieren.

Autonom: Eigenständiger agieren, indem sie auf gespeichertes Wissen zurückgreifen.

Das Ziel der Implementierung von Gedächtnis ist es, Agenten zuverlässiger und fähiger zu machen.

Arten von Gedächtnis

Arbeitsgedächtnis

Stellen Sie sich dies als eine Art Notizzettel vor, den ein Agent während einer einzelnen, laufenden Aufgabe oder eines Denkprozesses verwendet. Es hält sofortige Informationen zurück, die benötigt werden, um den nächsten Schritt zu berechnen.

Für KI-Agenten erfasst das Arbeitsgedächtnis oft die relevantesten Informationen aus einer Konversation, auch wenn der vollständige Chatverlauf lang oder gekürzt ist. Es konzentriert sich auf die Extraktion von Schlüsselelementen wie Anforderungen, Vorschläge, Entscheidungen und Aktionen.

Beispiel für Arbeitsgedächtnis

Bei einem Reisebuchungsagenten könnte das Arbeitsgedächtnis die aktuelle Anfrage des Benutzers erfassen, z. B. "Ich möchte eine Reise nach Paris buchen". Diese spezifische Anforderung wird im unmittelbaren Kontext des Agenten gehalten, um die aktuelle Interaktion zu steuern.

Kurzzeitgedächtnis

Diese Art von Gedächtnis behält Informationen für die Dauer einer einzelnen Konversation oder Sitzung. Es ist der Kontext des aktuellen Chats, der es dem Agenten ermöglicht, auf frühere Dialogschritte zurückzugreifen.

Beispiel für Kurzzeitgedächtnis

Wenn ein Benutzer fragt: "Wie viel würde ein Flug nach Paris kosten?" und dann fortfährt mit: "Und die Unterkunft dort?", stellt das Kurzzeitgedächtnis sicher, dass der Agent innerhalb derselben Konversation weiß, dass "dort" "Paris" bedeutet.

Langzeitgedächtnis

Dies sind Informationen, die über mehrere Konversationen oder Sitzungen hinweg bestehen bleiben. Es ermöglicht Agenten, Benutzereinstellungen, historische Interaktionen oder allgemeines Wissen über längere Zeiträume zu speichern. Dies ist wichtig für die Personalisierung.

Beispiel für Langzeitgedächtnis

Ein Langzeitgedächtnis könnte speichern, dass "Ben Skifahren und Outdoor-Aktivitäten mag, Kaffee mit Bergblick genießt und fortgeschrittene Skipisten wegen einer früheren Verletzung vermeiden möchte". Diese aus früheren Interaktionen erlernten Informationen beeinflussen Empfehlungen in zukünftigen Reiseplanungsphasen und machen diese hochgradig personalisiert.

Persona-Gedächtnis

Diese spezielle Speicherart hilft einem Agenten, eine konsistente "Persönlichkeit" oder "Persona" zu entwickeln. Es ermöglicht dem Agenten, sich Details über sich selbst oder seine beabsichtigte Rolle zu merken, wodurch Interaktionen flüssiger und fokussierter werden.

Beispiel für Persona-Gedächtnis Wenn der Reiseagent als "Experte für Skitourenplanung" konzipiert ist, kann das Persona-Gedächtnis diese Rolle verstärken und seine Antworten beeinflussen, um den Ton und das Wissen eines Experten widerzuspiegeln.

Workflow/Episodisches Gedächtnis

Dieses Gedächtnis speichert die Abfolge von Schritten, die ein Agent während einer komplexen Aufgabe unternimmt, einschließlich Erfolge und Misserfolge. Es ist, als würde man sich an spezifische "Episoden" oder vergangene Erfahrungen erinnern, um daraus zu lernen.

Beispiel für episodisches Gedächtnis

Wenn der Agent versucht hat, einen bestimmten Flug zu buchen, dieser aber wegen Nichtverfügbarkeit fehlschlug, könnte das episodische Gedächtnis diesen Fehler aufzeichnen und es dem Agenten ermöglichen, alternative Flüge zu versuchen oder den Benutzer bei einem nachfolgenden Versuch informierter über das Problem zu informieren.

Entitätsgedächtnis

Dies beinhaltet das Extrahieren und Erinnern spezifischer Entitäten (wie Personen, Orte oder Dinge) und Ereignisse aus Gesprächen. Es ermöglicht dem Agenten, ein strukturiertes Verständnis der diskutierten Schlüsselelemente aufzubauen.

Beispiel für Entitätsgedächtnis

Aus einem Gespräch über eine vergangene Reise könnte der Agent "Paris", "Eiffelturm" und "Abendessen im Restaurant Le Chat Noir" als Entitäten extrahieren. In einer zukünftigen Interaktion könnte der Agent sich an "Le Chat Noir" erinnern und anbieten, dort eine neue Reservierung vorzunehmen.

Strukturierte RAG (Retrieval Augmented Generation)

Während RAG eine breitere Technik ist, wird "Structured RAG" als eine leistungsstarke Gedächtnistechnologie hervorgehoben. Es extrahiert dichte, strukturierte Informationen aus verschiedenen Quellen (Gespräche, E-Mails, Bilder) und nutzt diese, um Präzision, Abrufgenauigkeit und Geschwindigkeit bei Antworten zu verbessern. Im Gegensatz zu klassischem RAG, das sich ausschließlich auf semantische Ähnlichkeit verlässt, arbeitet Structured RAG mit der inhärenten Struktur von Informationen.

Beispiel für strukturierte RAG

Anstatt nur Schlüsselwörter abzugleichen, könnte Structured RAG Flugdetails (Ziel, Datum, Uhrzeit, Fluggesellschaft) aus einer E-Mail parsen und sie strukturiert speichern. Dies ermöglicht präzise Abfragen wie "Welchen Flug habe ich am Dienstag nach Paris gebucht?".

Implementierung und Speicherung von Gedächtnis

Die Implementierung von Gedächtnis für KI-Agenten beinhaltet einen systematischen Prozess des Gedächtnismanagements, der das Generieren, Speichern, Abrufen, Integrieren, Aktualisieren und sogar das "Vergessen" (oder Löschen) von Informationen umfasst. Der Abruf ist ein besonders wichtiger Aspekt.

Spezialisierte Gedächtnis-Tools

Eine Möglichkeit, das Gedächtnis von Agenten zu speichern und zu verwalten, ist die Verwendung spezialisierter Tools wie Mem0. Mem0 fungiert als persistente Gedächtnisschicht, die es Agenten ermöglicht, relevante Interaktionen abzurufen, Benutzereinstellungen und faktische Kontexte zu speichern und im Laufe der Zeit aus Erfolgen und Misserfolgen zu lernen. Die Idee ist, dass zustandslose Agenten zu zustandsbehafteten werden.

Es funktioniert über eine zwei Phasen umfassende Gedächtnis-Pipeline: Extraktion und Update. Zuerst werden Nachrichten, die dem Thread eines Agenten hinzugefügt werden, an den Mem0-Dienst gesendet, der ein Large Language Model (LLM) verwendet, um den Gesprächsverlauf zusammenzufassen und neue Erinnerungen zu extrahieren. Anschließend bestimmt eine LLM-gesteuerte Update-Phase, ob diese Erinnerungen hinzugefügt, geändert oder gelöscht werden sollen, und speichert sie in einem hybriden Datenspeicher, der Vektor-, Graph- und Schlüssel-Wert-Datenbanken enthalten kann. Dieses System unterstützt auch verschiedene Speicherarten und kann Graph-Speicher zur Verwaltung von Beziehungen zwischen Entitäten integrieren.

Speicherung von Gedächtnis mit RAG

Neben spezialisierten Gedächtnis-Tools wie mem0 können Sie robuste Suchdienste wie Azure AI Search als Backend zum Speichern und Abrufen von Erinnerungen nutzen, insbesondere für strukturiertes RAG.

Dies ermöglicht es Ihnen, die Antworten Ihres Agenten mit Ihren eigenen Daten zu verankern und so relevantere und genauere Antworten zu gewährleisten. Azure AI Search kann zum Speichern benutzerspezifischer Reiseerinnerungen, Produktkatalogen oder anderer domänenspezifischer Kenntnisse verwendet werden.

Azure AI Search unterstützt Funktionen wie Structured RAG, das sich hervorragend zum Extrahieren und Abrufen dichter, strukturierter Informationen aus großen Datensätzen wie Gesprächsverläufen, E-Mails oder sogar Bildern eignet. Dies bietet eine "übermenschliche Präzision und Abrufgenauigkeit" im Vergleich zu herkömmlichen Text-Chunking- und Embedding-Ansätzen.

KI-Agenten selbstverbessernd machen

Ein gängiges Muster für sich selbst verbessernde Agenten beinhaltet die Einführung eines "Wissensagenten". Dieser separate Agent beobachtet das Hauptgespräch zwischen dem Benutzer und dem primären Agenten. Seine Aufgabe ist es,

  1. Wertvolle Informationen identifizieren: Ermitteln, ob ein Teil des Gesprächs als allgemeines Wissen oder als spezifische Benutzereinstellung gespeichert werden sollte.

  2. Extrahieren und zusammenfassen: Die wesentlichen Erkenntnisse oder Präferenzen aus dem Gespräch destillieren.

  3. In einer Wissensdatenbank speichern: Diese extrahierten Informationen dauerhaft speichern, oft in einer Vektordatenbank, damit sie später abgerufen werden können.

  4. Zukünftige Abfragen ergänzen: Wenn der Benutzer eine neue Abfrage initiiert, ruft der Wissensagent relevante gespeicherte Informationen ab und fügt sie zur Eingabeaufforderung des Benutzers hinzu, wodurch dem primären Agenten ein entscheidender Kontext bereitgestellt wird (ähnlich wie bei RAG).

Optimierungen für Gedächtnis

Latenzmanagement: Um zu vermeiden, dass Benutzerinteraktionen verlangsamt werden, kann zunächst ein kostengünstigeres, schnelleres Modell verwendet werden, um schnell zu prüfen, ob Informationen speicherungs- oder abrufenswert sind, und den komplexeren Extraktions-/Abrufprozess nur bei Bedarf aufzurufen.

Wartung der Wissensbasis: Für eine wachsende Wissensbasis können weniger häufig genutzte Informationen in ein "Kaltarchiv" verschoben werden, um Kosten zu senken.

Haben Sie weitere Fragen zum Agenten-Gedächtnis?

Treten Sie dem Azure AI Foundry Discord bei, um andere Lernende zu treffen, Sprechstunden zu besuchen und Ihre Fragen zu KI-Agenten beantwortet zu bekommen.