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 für Ihren Agenten verfügbare Kontext erweitert werden kann. 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 Verständnis: 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 eine TTL automatisch auf eingefügte oder generierte Erinnerungen 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 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, sodass sich ein Agent die Einstellungen, den Verlauf und die wichtigsten Details eines Nutzers über mehrere Sitzungen hinweg merken kann.

    • 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, wobei gespeicherte Erinnerungen aktualisiert und verfeinert werden, sobald neue Daten verfügbar sind. So 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 von 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 zu diesem Nutzer gespeichert wurden. Sie können entweder alle Erinnerungen abrufen (einfacher Abruf) oder nur die für die aktuelle Unterhaltung relevantesten Erinnerungen (Abruf per Ähnlichkeitssuche). Anschließend können Sie die abgerufenen Erinnerungen in Ihren Prompt einfügen.

Kurzanleitungen

Erste Schritte mit Memory Bank mit den folgenden Kurzanleitungen:

Memory Bank-Governance

In diesem Abschnitt werden Aspekte der Daten-Governance bei der Verwendung von Memory Bank beschrieben, z. B. Sicherheitsverantwortlichkeiten und Datenstandort.

Sicherheitsrisiken durch 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 menschlicher Überprüfung ausgeführt werden.

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

Datenstandort

Um die Einhaltung von regulatorischen Rahmenbedingungen wie der Datenschutz-Grundverordnung (DSGVO) und regionalen Anforderungen an die Datenhoheit zu gewährleisten, müssen Sie dafür sorgen, dass für Erinnerungen, die in Memory Bank generiert und gespeichert werden, strenge Grenzen für den Datenstandort und die Datentrennung gelten.

Memory Bank bietet zwar eine bereichsbasierte Datenisolation über Identitäten hinweg innerhalb einer Instanz, Sie müssen jedoch die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) und Identity and Access Management-Richtlinien anwenden, um regionale Grenzen durchzusetzen und eine grenzüberschreitende Kontamination von Erinnerungen zwischen verschiedenen regionalen Instanzen zu verhindern.

Bereitstellung regionaler Instanzen und Datenstandort

Wenn Sie eine Memory Bank-Instanz erstellen, wählen Sie einen regionalen oder multiregionalen Standort aus (z. B. eu für die Europäische Union oder us für die USA), um sicherzustellen, dass sich die ruhenden Daten innerhalb dieser geografischen Grenze befinden.

Der Standort für die Verarbeitung von Machine Learning (ML) hängt von der regionalen Verfügbarkeit des zugrunde liegenden Modells ab. Wenn für Ihr ausgewähltes Modell oder Ihren Standort kein regionaler Endpunkt verfügbar ist (z. B. Gemini 3-Modelle oder einzelne Regionen in Asien), werden globale Gemini-Endpunkte für die ML-Verarbeitung verwendet. Weitere Informationen finden Sie unter Datenstandort und Multiregionale und globale Endpunkte.

Grenzüberschreitende Kontamination von Erinnerungen verhindern

Eine grenzüberschreitende Kontamination tritt auf, wenn eine Agent Runtime, eine Agent-Identität, ein Dienstkonto oder eine Anwendung, die in einem Rechtsraum (z. B. den USA) ausgeführt wird, Erinnerungen in eine Memory Bank-Instanz schreibt oder daraus abruft, die sich in einem anderen Rechtsraum (z. B. der EU) befindet.

Um eine grenzüberschreitende Kontamination zu verhindern und die Einhaltung regulatorischer Anforderungen zu gewährleisten, können Sie die folgenden IAM-Steuerelemente konfigurieren:

  • Dedizierte regionale Agent-Identitäten oder Dienstkonten: Erstellen Sie für jeden Rechtsraum separate, regionsspezifische Agent-Identitäten oder Dienstkonten (z. B. agent-us@PROJECT_ID.iam.gserviceaccount.com für Arbeitslasten in den USA und agent-eu@PROJECT_ID.iam.gserviceaccount.com für Arbeitslasten in der EU). Achten Sie darauf, dass regionalen Agent-Identitäten und Dienstkonten nur IAM-Rollen für die Memory Bank-Instanzen gewährt werden, die sich im selben geografischen Rechtsraum befinden. So wird verhindert, dass regionale Runtimes auf grenzüberschreitende Instanzen zugreifen.

    • Spezialisierte Rollen mit geringsten Berechtigungen: Gewähren Sie Hauptkonten nur die spezifischen Memory Bank-Rollen, die für ihre Arbeitslast erforderlich sind (z. B. roles/aiplatform.memoryViewer für den schreibgeschützten Abruf oder roles/aiplatform.memoryEditor für den Schreib- und Generierungszugriff), die an die entsprechende regionale Ressource gebunden sind. Details zu den verfügbaren Rollen finden Sie unter Spezialisierte IAM-Rollen für Memory Bank.
  • Organisationsrichtlinien: Erzwingen Sie Standortbeschränkungen auf Organisations-, Ordner- oder Projektebene mit der gcp.resourceLocations Einschränkung für Organisationsrichtlinien. Dadurch wird die Erstellung und Verwendung von Memory Bank-Ressourcen auf genehmigte, konforme Regionen beschränkt und die unbefugte Verwendung globaler Endpunkte verhindert.

Weitere Informationen zum Implementieren von Richtlinien für bedingten Zugriff finden Sie unter Zugriff auf Agent Platform Memory Bank mit IAM-Bedingungen steuern.

Nächste Schritte

Kurzanleitung

Erste Schritte mit der Memory Bank API zum Verwalten langfristiger Erinnerungen.

Kurzanleitung

Erste Schritte mit dem Agent Development Kit (ADK).

Anleitung

Informationen zum Einrichten von Memory Bank.