Agent Platform Memory Bank

Mit Agent Platform Memory Bank können Sie dynamisch langfristige Erinnerungen basierend auf Unterhaltungen zwischen dem Nutzer und Ihrem Agenten generieren. Diese Erinnerungen sind personalisierte Informationen, die über mehrere Sitzungen hinweg bestehen bleiben. So kann Ihr Agent Antworten an den Kontext anpassen und personalisieren.

Funktionen

Mit Memory Bank können Sie Erinnerungen verwalten, sodass Sie die Interaktion Ihres Agenten mit Nutzern personalisieren und das Kontextfenster verwalten können. Für jeden Bereich verwaltet Memory Bank eine isolierte Sammlung von Erinnerungen. Jede Erinnerung ist eine unabhängige, in sich geschlossene Information, mit der der Kontext erweitert werden kann, der Ihrem Agenten zur Verfügung steht. Beispiel:

{
  "name": "projects/.../locations/.../reasoningEngines/.../memories/...",
  "scope": {
    "agent_name": "My agent",
    "user": "my user ID"
  },
  "fact": "I use Memory Bank to manage my memories."
}

Memory Bank umfasst die folgenden Funktionen:

  • Merken von Informationen: Sie können gemerkte Informationen mit einem Large Language Model (LLM) erstellen, verfeinern und verwalten.

    • Erinnerungen extrahieren: Extrahieren Sie nur die wichtigsten Informationen aus Quelldaten, um sie als Erinnerungen zu speichern.

    • Erinnerungen konsolidieren: Konsolidieren Sie neu extrahierte Informationen mit vorhandenen Erinnerungen. So können sich Erinnerungen weiterentwickeln, wenn neue Informationen aufgenommen werden. Sie können auch bereits extrahierte Erinnerungen (z. B. Informationen, die Ihr Agent oder ein Mensch im Loop für sinnvoll hält) mit vorhandenen Erinnerungen konsolidieren.

    • Asynchrone Generierung: Merken Sie Informationen im Hintergrund, damit Ihr Agent nicht warten muss, bis das Merken von Informationen abgeschlossen ist.

    • Kontinuierliche Ereignisaufnahme: Streamen und verwalten Sie Unterhaltungsereignisse mit der Ereignisaufnahme. Dadurch wird automatisch das Merken von Informationen basierend auf von Ihnen konfigurierten Batching-Regeln ausgelöst.

    • Anpassbare Extraktion: Konfigurieren Sie, welche Informationen Memory Bank für sinnvoll hält, indem Sie bestimmte Themen und Few-Shot-Beispiele angeben.

    • Multimodales Verstehen: Verarbeiten Sie multimodale Informationen, um textbasierte Erkenntnisse zu generieren und zu speichern.

  • Verwalteter Speicher und Abruf: Profitieren Sie von einem vollständig verwalteten, persistenten, und zugänglichen Speicher für Erinnerungen.

    • Datenisolation über Identitäten hinweg: Die Konsolidierung und der Abruf von Erinnerungen ist auf eine bestimmte Identität beschränkt.

    • Persistenter und zugänglicher Speicher: Speichern Sie Erinnerungen, auf die von mehreren Umgebungen aus zugegriffen werden kann, z. B. von der Agent Runtime, Ihrer lokalen Umgebung oder anderen Bereitstellungsoptionen.

    • Ähnlichkeitssuche: Rufen Sie Erinnerungen mit der Ähnlichkeitssuche ab, die auf eine bestimmte Identität beschränkt ist.

    • Automatisches Ablaufen: Legen Sie eine Gültigkeitsdauer (Time to Live, TTL) für Erinnerungen fest, damit veraltete Informationen automatisch gelöscht werden. Konfigurieren Sie Ihre Memory Bank-Instanz so, dass auf eingefügte oder generierte Erinnerungen automatisch eine TTL angewendet wird.

    • Erinnerungsversionen: Erstellen und verwalten Sie automatisch Erinnerungs versionen, mit denen Sie nachvollziehen können, wie sich Erinnerungen verändern, wenn neue Informationen aufgenommen werden.

    • Einschränkende Berechtigungen: Mit IAM Bedingungen können Sie einschränken, welche Hauptkonten die Erinnerungen bestimmter Bereiche lesen oder schreiben können.

  • Agenten-Integration: Verknüpfen Sie Memory Bank mit Ihrem Agenten, so dass er Aufrufe orchestrieren kann, um Erinnerungen zu generieren und abzurufen.

    • Integration des Agent Development Kit (ADK): Orchestrieren Sie Aufrufe von Ihrem ADK-basierten Agenten mit den integrierten ADK-Tools und dem VertexAiMemoryBankService, um Daten aus Memory Bank zu lesen und in Memory Bank zu schreiben.

    • Andere Frameworks: Umschließen Sie Ihren Memory Bank-Code mit Tools und Callbacks, um die Generierung und den Abruf von Erinnerungen zu orchestrieren.

Anwendungsfälle

Mit Memory Bank können Sie zustandslose Agent-Interaktionen in zustandsbehaftete, kontextbezogene Interaktionen umwandeln, bei denen sich der Agent im Laufe der Zeit erinnert, lernt und sich anpasst. Memory Bank ist ideal für Anwendungen, die Folgendes erfordern:

  • Langfristige Personalisierung: Erstellen Sie Funktionen, die auf einzelne Nutzer zugeschnitten sind. Memory Bank beschränkt Erinnerungen auf eine bestimmte Identität. So kann sich ein Agent die Einstellungen, den Verlauf und die wichtigsten Details eines Nutzers über mehrere Sitzungen hinweg merken.

    • Beispiel: Ein Kundenservice-Agent, der sich wichtige Informationen aus früheren Supporttickets und Produktpräferenzen eines Nutzers merkt, ohne noch einmal nachfragen zu müssen.
  • LLM-gestützte Wissensextraktion: Verwenden Sie diese Funktion, wenn Sie die wichtigsten Informationen aus Unterhaltungen oder multimodalen Inhalten automatisch und ohne manuelle Eingriffe identifizieren und speichern müssen.

    • Beispiel: Ein Forschungsagent, der eine Reihe von Fachartikeln liest und eine konsolidierte Erinnerung an wichtige Ergebnisse, Methoden und Schlussfolgerungen erstellt.
  • Dynamischer und sich entwickelnder Kontext: Verwenden Sie Memory Bank, wenn Sie eine Wissensquelle benötigen, die nicht statisch ist. Memory Bank ist so konzipiert, dass kontinuierlich neue Informationen von Ihrem Agenten integriert werden. So werden gespeicherte Erinnerungen verfeinert und aktualisiert, sobald neue Daten verfügbar sind. Dadurch ist der Kontext, auf den sich Ihr Agent verlässt, immer aktuell und korrekt. Während RAG eine statische, externe Wissensdatenbank hat, kann sich Memory Bank basierend auf dem vom Agenten bereitgestellten Kontext weiterentwickeln.

Nutzungsbeispiel

Agent Platform Memory Bank – konzeptionelle Übersicht

Sie können Memory Bank mit Agent Platform-Sitzungen verwenden, um Erinnerungen aus gespeicherten Sitzungen zu generieren. Gehen Sie dazu so vor:

  1. (Sitzungen) CreateSession: Erstellen Sie zu Beginn jeder Unterhaltung eine neue Sitzung. Der vom Agenten verwendete Unterhaltungsverlauf ist auf diese Sitzung beschränkt. Eine Sitzung enthält die chronologische Reihenfolge der Nachrichten und Aktionen (SessionEvents) für eine Interaktion zwischen einem Nutzer und Ihrem Agenten. Alle Sitzungen müssen eine Nutzer-ID haben. Die extrahierten Erinnerungen (siehe GenerateMemories) für diese Sitzung werden diesem Nutzer zugeordnet.

  2. (Sitzungen) AppendEvent: Wenn der Nutzer mit dem Agenten interagiert, werden Ereignisse (z. B. Nutzernachrichten, Agent-Antworten, Tool-Aktionen) in Sitzungen hochgeladen. Die Ereignisse bewahren den Unterhaltungsverlauf und erstellen einen Datensatz der Unterhaltung, der zum Generieren von Erinnerungen verwendet werden kann.

  3. (Sitzungen) ListEvents: Wenn der Nutzer mit dem Agenten interagiert, ruft der Agent den Unterhaltungsverlauf ab.

  4. (Memory Bank) Erinnerungen generieren oder erstellen:

    • GenerateMemories: In einem bestimmten Intervall (z. B. am Ende jeder Sitzung oder am Ende jeder Runde) kann der Agent die Generierung von Erinnerungen anhand des Unterhaltungsverlaufs auslösen. Fakten über den Nutzer werden automatisch aus dem Unterhaltungsverlauf extrahiert, damit sie für aktuelle oder zukünftige Sitzungen verfügbar sind.

    • CreateMemory: Ihr Agent kann Erinnerungen direkt in Memory Bank schreiben. Der Agent kann beispielsweise entscheiden, wann eine Erinnerung geschrieben werden soll und welche Informationen gespeichert werden sollen (Erinnerung als Tool). Verwenden Sie CreateMemory, wenn Sie möchten, dass Ihr Agent mehr Kontrolle darüber hat, welche Fakten extrahiert werden.

  5. (Memory Bank) RetrieveMemories: Wenn der Nutzer mit Ihrem Agenten interagiert , kann der Agent Erinnerungen abrufen, die über diesen Nutzer gespeichert wurden. Sie können entweder alle Erinnerungen (einfacher Abruf) oder nur die für die aktuelle Unterhaltung relevantesten Erinnerungen (Abruf per Ähnlichkeitssuche) abrufen. Anschließend können Sie die abgerufenen Erinnerungen in Ihren Prompt einfügen.

Kurzanleitungen

Erste Schritte mit Memory Bank mit den folgenden Kurzanleitungen:

Sicherheitsrisiken bei Prompt Injection

Zusätzlich zu den Sicherheitsverantwortlichkeiten, die in der gemeinsamen Verantwortung der Agent Platform beschrieben sind, sollten Sie das Risiko von Prompt Injection und Memory Poisoning berücksichtigen, die sich auf Ihren Agenten auswirken können, wenn Sie langfristige Erinnerungen verwenden. Memory Poisoning tritt auf, wenn falsche Informationen in Memory Bank gespeichert werden. Der Agent kann dann in zukünftigen Sitzungen mit diesen falschen oder schädlichen Informationen arbeiten.

So verringern Sie das Risiko von Memory Poisoning:

  • Model Armor: Mit Model Armor können Sie Prompts prüfen, die an Memory Bank oder von Ihrem Agenten gesendet werden.

  • Adversarial Testing: Testen Sie Ihre LLM-Anwendung proaktiv auf Sicherheitslücken durch Prompt Injection, indem Sie Angriffe simulieren. Dies wird in der Regel als „Red Teaming“ bezeichnet.

  • Sandbox-Ausführung: Wenn der Agent externe oder kritische Systeme ausführen oder mit ihnen interagieren kann, sollten diese Aktionen in einer Sandbox-Umgebung mit strenger Zugriffssteuerung und manueller Überprüfung ausgeführt werden.

Weitere Informationen finden Sie unter Google's Approach for Secure AI Agents.

Nächste Schritte

Kurzanleitung

Erste Schritte mit der Memory Bank API, um langfristige Erinnerungen zu verwalten.

Kurzanleitung

Erste Schritte mit dem Agent Development Kit (ADK).

Anleitung

Informationen zum Einrichten von Memory Bank.