Die Agent Platform Memory Bank verwaltet automatisch einen Versionsverlauf Ihrer gemerkten Informationen über Ressourcen für die Überarbeitung von gemerkten Informationen. Jedes Mal, wenn eine gemerkte Information erstellt oder geändert wird, wird eine neue unveränderliche Version gespeichert. So ist transparent, wie sich Informationen entwickeln und was in jedem Schritt extrahiert wurde.
In diesem Dokument wird der Lebenszyklus von gemerkten Informationen und deren Versionen erläutert. Außerdem werden Vorgänge wie das Auflisten, Abrufen und Zurücksetzen von Versionen beschrieben.
Weitere Informationen zum Generieren von gemerkten Informationen finden Sie unter Gemerkte Informationen generieren.
Lebenszyklus einer gemerkten Information und ihrer Versionen

Gemerkte Informationen können entweder direkt (mit CreateMemory, UpdateMemory oder DeleteMemory) oder dynamisch (mit GenerateMemories) erstellt, aktualisiert oder gelöscht werden. Ressourcen für gemerkte Informationen bieten einen vollständigen Versionsverlauf einer Ressource für gemerkte Informationen über alle Mutationsvorgänge hinweg. Jedes Mal, wenn die gemerkte Information erstellt oder geändert wird, wird automatisch eine neue, unveränderliche Version gespeichert. So erhalten Sie Transparenz darüber, wie sich eine gemerkte Information entwickelt hat und (bei der Generierung von gemerkten Informationen) welche spezifischen Informationen in jedem Schritt extrahiert und konsolidiert wurden.
Jede Memory-Ressource hat eine oder mehrere zugehörige untergeordnete Memory-Revisionsressourcen:
Memory-Ressourcen spiegeln immer den aktuellen, konsolidierten Status der Informationen wider. Eine einzelne gemerkte Information kann abgeleitete Daten aus mehreren Anfragen und Datenquellen enthalten.Memory( create_time=datetime.datetime(...), fact='This is my current memory content after consolidation', name='projects/.../locations/.../reasoningEngines/../memories/...', scope={ 'my_scope_key': 'my_scope_value' }, topics=[ MemoryTopicId( managed_memory_topic=<ManagedTopicEnum.USER_PERSONAL_INFO: 'USER_PERSONAL_INFO'> ), ], update_time=datetime.datetime(...) )MemoryRevisions-Ressourcen stellen die historischen Zustände des übergeordneten Speichers dar. Jede Version ist ein Snapshot der gemerkten Informationen bei einem Mutationsereignis. Wenn ein gemerkter Inhalt mitGenerateMemoriesgeändert wurde, enthält die Version auch die Informationen, die aus der Datenquelle (extracted_memories) extrahiert wurden, bevor sie mit dem vorhandenen Inhalt des gemerkten Inhalts zusammengeführt wurden.MemoryRevision( create_time=datetime.datetime(...), expire_time=datetime.datetime(...), extracted_memories=[ IntermediateExtractedMemory( fact='This information was extracted from my data source' ), ], fact='This is my current memory content after consolidation', name='projects/.../locations/.../reasoningEngines/.../memories/.../revisions/...' )Überarbeitungen von gemerkten Informationen sind standardmäßig aktiviert. Informationen zum Deaktivieren von Speicherversionen finden Sie unter Speicherversionen deaktivieren.
Erstellen von gemerkten Informationen
Gemerkte Informationen können entweder direkt mit CreateMemory oder dynamisch mit GenerateMemories erstellt werden. Bei der Erstellung von gemerkten Informationen wird eine neue gemerkte Information erstellt, wenn es keine vorhandenen gemerkten Informationen gibt, die ähnliche Informationen für denselben Bereich abdecken:
# Direct creation using CreateMemory
client.memory_banks.memories.create(name=memory_bank_name, ...)
# Dynamic creation using GenerateMemory
client.memory_banks.memories.generate(name=memory_bank_name, ...)
Wenn eine Erinnerung erstellt wird, werden eine einzelne Memory-Ressource und eine untergeordnete MemoryRevision-Ressource erstellt:
client.memory_banks.memories.get(name=memory_name)
"""
Memory(
name="projects/123/locations/us-central1/reasoningEngines/456/memories/789",
fact="This is my original fact.",
...
)
"""
list(client.memory_banks.memories.revisions.list(name=memory_name))
"""
[
MemoryRevision(
name="projects/123/locations/us-central1/reasoningEngines/456/memories/789/revision/123",
fact="This is my original fact",
...
)
]
"""
Gemerkte Informationen aktualisieren
Gemerkte Informationen können entweder direkt mit UpdateMemory oder dynamisch mit GenerateMemories aktualisiert werden. Bei der Erstellung von gemerkten Informationen werden diese dynamisch aktualisiert, wenn der Konsolidierungsprozess feststellt, dass die neuen Informationen doppelt, ergänzend oder widersprüchlich zu allen vorhandenen gemerkten Informationen für denselben Bereich sind.
# Direct update using UpdateMemory
client.memory_banks.memories.update(name=memory_name, ...)
# Dynamic update using GenerateMemories
client.memory_banks.memories.generate(name=memory_bank_name, ...)
Wenn eine gemerkte Information aktualisiert wird, wird die vorhandene Memory-Ressource aktualisiert und eine neue untergeordnete MemoryRevision-Ressource erstellt.
client.memory_banks.memories.get(name=memory_name)
"""
Memory(
name="projects/123/locations/us-central1/reasoningEngines/456/memories/789",
fact="This is my updated fact.",
...
)
"""
list(client.memory_banks.memories.revisions.list(name=memory_name))
"""
[
MemoryRevision(
name="projects/123/locations/us-central1/reasoningEngines/456/memories/789/revision/456",
fact="This is my updated fact",
...
),
MemoryRevision(
name="projects/123/locations/us-central1/reasoningEngines/456/memories/789/revision/123",
fact="This is my original fact",
...
)
]
"""
Gemerkte Informationen löschen
Gemerkte Informationen können entweder direkt mit DeleteMemory oder dynamisch mit GenerateMemories abgerufen werden. Bei der Generierung von gemerkten Informationen werden diese dynamisch gelöscht, wenn der Konsolidierungsprozess entscheidet, dass die neuen Informationen die vorhandenen Informationen für denselben Bereich ungültig machen.
# Direct deletion using UpdateMemory
client.memory_banks.memories.delete(name=memory_name, ...)
# Dynamic delete using GenerateMemories
client.memory_banks.memories.generate(name=memory_bank_name, ...)
Wenn eine gemerkte Information gelöscht wird, wird die vorhandene Memory-Ressource gelöscht und eine neue untergeordnete MemoryRevision-Ressource erstellt. Der fact in der neuesten Speicherversion ist leer, da er eine Löschmutation widerspiegelt.
client.memory_banks.memories.get(name=memory_name)
"""
404 Not Found.
"""
list(client.memory_banks.memories.revisions.list(name=memory_name))
"""
[
MemoryRevision(
name="projects/123/locations/us-central1/reasoningEngines/456/memories/789/revision/789",
fact="",
...
),
MemoryRevision(
name="projects/123/locations/us-central1/reasoningEngines/456/memories/789/revision/456",
fact="This is my updated fact",
...
),
MemoryRevision(
name="projects/123/locations/us-central1/reasoningEngines/456/memories/789/revision/123",
fact="This is my original fact",
...
)
]
"""
Auf die Versionen der untergeordneten gemerkten Informationen kann nur bis zu 48 Stunden nach dem Löschen der übergeordneten gemerkten Informationen zugegriffen werden. Während dieses Wiederherstellungszeitraums können Sie Ihre Memory-Versionen weiterhin prüfen und Ihren Memory wiederherstellen, indem Sie ein Rollback auf eine frühere Version durchführen.
Vorgänge für Revisionen gemerkter Informationen
In diesem Abschnitt wird beschrieben, wie Sie gemerkte Informationen prüfen und auf eine frühere Version zurücksetzen können.
Versionen auflisten
Sie können Gedächtnisversionen in der Google Cloud Console oder mit dem Agent Platform SDK prüfen.
Console
Zum Aufrufen von Speicherversionen in der Google Cloud -Konsole ist die Berechtigung aiplatform.memoryRevisions.list erforderlich (in roles/aiplatform.memoryViewer und roles/aiplatform.memoryUser enthalten). Diese Berechtigung ist im Expressmodus nicht verfügbar.
Öffnen Sie Ihre Instanz in der Google Cloud Console:
Eigenständige Memory Bank-Instanz: Rufen Sie die Seite Memory Bank der Agent Platform auf und klicken Sie auf Ihre Instanz.
In Agent Runtime bereitgestellter KI-Agent: Rufen Sie die Seite Bereitstellungen der Agent Platform auf und klicken Sie auf Ihren KI-Agenten.
Öffnen Sie den Tab Erinnerungen:
- Unstrukturierte gemerkte Informationen: Klicken Sie in einer Zeile mit gemerkten Informationen auf das Menü Weitere Aktionen () > Versionen ansehen.
- Strukturierte Profile (eigenständige Instanzen): Wählen Sie Strukturiert aus, wählen Sie einen vollständigen Bereich aus, klicken Sie in einer Profilzeile auf Ansehen, um die Speicherdetails zu öffnen, und klicken Sie für einen Speicherfakt auf Überarbeitungen ansehen.
Im Versionsbereich werden die Felder Erstellt, Läuft ab, Fakt und Kontext für jede Version aufgeführt.
Agent Platform SDK
Verwenden Sie ListMemoryRevisions, um alle zu einem gemerkten Inhalt gehörenden Versionen zurückzugeben.
list(client.memory_banks.memories.revisions.list(name=MEMORY_NAME))
Ersetzen Sie Folgendes:
MEMORY_NAME: Ressourcenname der gemerkten Information im Formatprojects/.../locations/.../reasoningEngines/.../memories/...
Beim Generieren von Memories können Sie Revisionslabels angeben, die auf die zugehörigen Revisionen angewendet werden. Labels sind beliebige Schlüssel/Wert-Paare. Sie können Versionen beispielsweise mit einer ID der Datenquelle kennzeichnen, die zum Generieren des Speichers verwendet wurde, und dann Versionen nach diesem Label filtern:
response = client.memory_banks.memories.generate(
...,
config={
"revision_labels": {
"data_source": "321"
}
}
)
list(client.memory_banks.memories.revisions.list(
name=MEMORY_NAME,
config={
"filter": "labels.data_source=\"321\""
}
))
"""
[
MemoryRevision(
name="projects/123/locations/us-central1/reasoningEngines/456/memories/789/revision/123",
labels={
"data_source": "123"
}
...
)
]
"""
Überarbeitung anfordern
Verwenden Sie GetMemoryRevision, um eine einzelne Version einer gemerkten Information abzurufen.
client.memory_banks.memories.revisions.get(name=MEMORY_REVISION_NAME)
Ersetzen Sie Folgendes:
MEMORY_REVISION_NAME: Ressourcenname der abzurufenden Speicherversion im Formatprojects/.../locations/.../reasoningEngines/.../memories/.../revisions/...
Gemerkte Informationen zurücksetzen
Mit RollbackMemory können Sie eine gemerkte Information auf eine frühere Version zurücksetzen.
client.memory_banks.memories.rollback(
name="MEMORY_NAME",
target_revision_id="REVISION_ID"
)
Ersetzen Sie Folgendes:
MEMORY_NAME: Ressourcenname der zu aktualisierenden gemerkten Information im Formatprojects/.../locations/.../reasoningEngines/.../memories/...REVISION_ID: ID der Version, auf die ein Rollback durchgeführt werden soll. Dies ist das letzte Segment des Ressourcennamens der Speicherversion, z. B.789inprojects/MyProject/locations/us-central1/reasoningEngines/123/memories/456/revisions/789.
Wenn Sie eine Änderung an einem Speicher rückgängig machen möchten, die von GenerateMemories vorgenommen wurde, setzen Sie den Speicher auf die Version vor der Änderung zurück. Die Antwort auf die Generierung von gemerkten Informationen enthält für jede aktualisierte oder gelöschte gemerkte Information einen Verweis auf die vorherige Version (previous_revision):
operation = client.memory_banks.memories.generate(
...
)
# Rollback the first generated memory to the previous revision.
client.memory_banks.memories.rollback(
name=operation.response.generated_memories[0].memory.name,
target_revision_id=operation.response.generated_memories[0].previous_revision
)
Revisionen gemerkter Informationen werden deaktiviert
Überarbeitungen von gemerkten Informationen sind standardmäßig aktiviert. Sie können Versionen von gemerkten Informationen entweder für alle Anfragen an Ihre Memory Bank-Instanz oder für jede einzelne Anfrage deaktivieren. Wenn Versionen für gemerkte Informationen deaktiviert sind, wird keine Version erstellt, wenn die gemerkten Informationen geändert werden.
Sie können die Überarbeitung von gespeicherten Informationen für alle Anfragen an Ihre Memory Bank-Instanz in der Google Cloud Console (unter Konfiguration > Aufbewahrung oder Dienstkonfiguration > Memory Bank für bereitgestellte Agenten) oder mit dem Agent Platform SDK deaktivieren:
memory_bank = client.memory_banks.create(
managed_semantic_memory_config={
"disable_memory_revisions": True
}
)
Sie können Speicherversionen auf Anfrageebene deaktivieren, wenn Sie die Anfrage senden:
Generieren
client.memory_banks.memories.generate(
...,
"config": {
"disable_memory_revisions": True
}
)
Erstellen
client.memory_banks.memories.create(
...,
"config": {
"disable_memory_revisions": True
}
)
Aktualisieren
client.memory_banks.memories.update(
...,
"config": {
"disable_memory_revisions": True
}
)
Ablauf der Version
Revisionen gemerkter Informationen werden nicht für immer gespeichert. Sie müssen entweder den Ablauf der Überarbeitungen festlegen oder den Standardablauf verwenden. Die Standardgültigkeitsdauer (TTL) beträgt 365 Tage. Sie können die Ablaufzeit entweder für alle Anfragen an Ihre Memory Bank-Instanz oder für jede einzelne Anfrage konfigurieren. Nachdem eine Speicherversion abgelaufen ist, kann sie nicht mehr geprüft oder zurückgesetzt werden.
Sie können die TTL für den Versionsverlauf für alle Anfragen an Ihre Memory Bank-Instanz in der Google Cloud Console (unter Konfiguration > Aufbewahrung oder Dienstkonfiguration > Memory Bank für bereitgestellte Agenten) oder mit dem Agent Platform SDK konfigurieren:
client.memory_banks.create(
managed_semantic_memory_config={
"ttl_config": {
# Persist memory revisions for 30 days after they're created.
"revision_ttl": f"{30 * 60 * 60 * 24}s"
}
}
)
Wenn Sie die TTL für jede Speicherversion auf Anfrageebene konfigurieren möchten, fügen Sie revision_expire_time oder revision_ttl in Ihre Anfrage ein:
TTL
config = {
# Persist memory revisions for 30 days after they're created.
"revision_ttl": f"{30 * 60 * 60 * 24}s"
}
client.memory_banks.memories.create(
...,
config=config
)
client.memory_banks.memories.update(
...,
config=config
)
client.memory_banks.memories.generate(
...,
config=config
)
Ablauffrist
import datetime
config = {
"revision_expire_time": datetime.datetime.now(tz=datetime.timezone.utc) + datetime.timedelta(weeks=3)
}
client.memory_banks.memories.create(
...,
config=config
)
client.memory_banks.memories.update(
...,
config=config
)
client.memory_banks.memories.generate(
...,
config=config
)