In dieser Anleitung wird gezeigt, wie Sie REST API-Aufrufe direkt an Vertex AI Agent Engine-Sitzungen und Memory Bank senden, um Sitzungen und Langzeitgedächtnisse zu erstellen und zu verwenden. Verwenden Sie die REST API, wenn Sie nicht möchten, dass ein Agent-Framework Aufrufe für Sie orchestriert, oder wenn Sie Sessions und Memory Bank in andere Agent-Frameworks als das Agent Development Kit (ADK) einbinden möchten.
Eine Kurzanleitung zur Verwendung des ADK finden Sie unter Kurzanleitung für das Agent Development Kit.
In dieser Anleitung werden die folgenden Schritte ausgeführt:
- Sie haben folgende Möglichkeiten, Erinnerungen zu erstellen:
- Erinnerungen mit der Speicherbank der Vertex AI Agent Engine generieren: Sitzungen und Ereignisse in Vertex AI Agent Engine-Sitzungen als Quellen für die Speicherbank der Vertex AI Agent Engine schreiben, um Erinnerungen zu generieren.
- Erinnerungen direkt hochladen: Sie können Ihre eigenen Erinnerungen schreiben oder von Ihrem Agenten erstellen lassen, wenn Sie die volle Kontrolle darüber haben möchten, welche Informationen gespeichert werden.
- Erinnerungen abrufen
- Führen Sie eine Bereinigung durch.
Hinweise
Um die Schritte in dieser Anleitung auszuführen, müssen Sie zuerst die Schritte unter Für Memory Bank einrichten ausführen.
Erinnerungen aus Vertex AI Agent Engine-Sitzungen generieren
Nachdem Sie Vertex AI Agent Engine-Sitzungen und die Memory Bank eingerichtet haben, können Sie Sitzungen erstellen und Ereignisse daran anhängen. Erinnerungen werden als Fakten aus der Unterhaltung des Nutzers mit dem Agent generiert, damit sie für zukünftige Nutzerinteraktionen verfügbar sind. Weitere Informationen finden Sie unter Erinnerungen generieren und Erinnerungen abrufen.
Erstellen Sie eine Sitzung mit einer undurchsichtigen User-ID. Alle Erinnerungen, die aus dieser Sitzung generiert werden, werden automatisch mit dem Bereich
{"user_id": "USER_ID"}
verschlüsselt, sofern Sie beim Generieren von Erinnerungen nicht explizit einen Bereich angeben.from google.cloud import aiplatform_v1beta1 sessions_client = aiplatform_v1beta1.SessionServiceClient( client_options={ "api_endpoint": "https://LOCATION-aiplatform.googleapis.com" }, transport="rest" ) session_lro = sessions_client.create_session( parent=AGENT_ENGINE_NAME, session={"user_id": "USER_ID"} ) session_name = "/".join(session_lro.operation.name.split("/")[0:-2])
Ersetzen Sie Folgendes:
LOCATION: Ihre Region. Für die Speicherbank der Vertex AI Agent Engine wird nur
us-central1
unterstützt.AGENT_ENGINE_NAME: Der Name der von Ihnen erstellten Vertex AI Agent Engine-Instanz oder einer vorhandenen Vertex AI Agent Engine-Instanz. Der Name muss das Format
projects/{your project}/locations/{your location}/reasoningEngine/{your reasoning engine}
haben.USER_ID: Eine Kennung für Ihren Nutzer. Alle Erinnerungen, die aus dieser Sitzung generiert werden, werden automatisch mit dem Bereich
{"user_id": "USER_ID"}
verschlüsselt, sofern Sie beim Generieren von Erinnerungen nicht explizit einen Bereich angeben.
Laden Sie Ereignisse iterativ in Ihre Sitzung hoch. Ereignisse können alle Interaktionen zwischen Ihrem Nutzer, dem Agent und den Tools umfassen. Die geordnete Liste der Ereignisse stellt den Unterhaltungsverlauf Ihrer Sitzung dar. Dieser Chatverlauf wird als Quellmaterial für die Generierung von Erinnerungen für den jeweiligen Nutzer verwendet.
event = aiplatform_v1beta1.SessionEvent( author="user", # Required by Sessions. invocation_id="1", # Required by Sessions. timestamp=datetime.now().strftime('%Y-%m-%dT%H:%M:%SZ'), # Required by Sessions. content = aiplatform_v1beta1.Content( role="user", parts=[aiplatform_v1beta1.Part(text="Hello")] ) ) sessions_client.append_event(name=session_name, event=event)
Wenn Sie Erinnerungen aus Ihrem Unterhaltungsverlauf generieren möchten, lösen Sie eine Anfrage zur Erinnerungsgenerierung für die Sitzung aus:
client.agent_engines.generate_memories( name=agent_engine.api_resource.name, vertex_session_source={ "session": session_name }, # Optional when using Agent Engine Sessions. Defaults to {"user_id": session.user_id}. scope=SCOPE )
Ersetzen Sie Folgendes:
- (Optional) SCOPE: Ein Dictionary, das den Umfang der generierten Erinnerungen darstellt. Es enthält maximal 5 Schlüssel/Wert-Paare und keine
*
-Zeichen. Beispiel:{"session_id": "MY_SESSION"}
Für die Konsolidierung werden nur Erinnerungen mit demselben Umfang berücksichtigt. Wenn nicht angegeben, wird{"user_id": session.user_id}
verwendet.
Erinnerungen hochladen
Als Alternative zum Generieren von Erinnerungen mit rohem Dialog können Sie Erinnerungen hochladen oder Ihre Agents direkt mit CreateMemory
hinzufügen lassen. Bei Memory Bank werden die Informationen nicht aus Ihren Inhalten extrahiert, sondern Sie geben die Fakten, die über Ihren Nutzer gespeichert werden sollen, direkt an. Wir empfehlen, Fakten über Nutzer in der ersten Person zu formulieren (z. B. I am a software engineer
).
memory = client.agent_engines.create_memory(
name=agent_engine.api_resource.name,
fact="This is a fact.",
scope={"user_id": "123"}
)
"""
Returns an AgentEngineMemoryOperation containing the created Memory like:
AgentEngineMemoryOperation(
done=True,
metadata={
"@type': 'type.googleapis.com/google.cloud.aiplatform.v1beta1.CreateMemoryOperationMetadata",
"genericMetadata": {
"createTime": '2025-06-26T01:15:29.027360Z',
"updateTime": '2025-06-26T01:15:29.027360Z'
}
},
name="projects/.../locations/us-central1/reasoningEngines/.../memories/.../operations/...",
response=Memory(
create_time=datetime.datetime(2025, 6, 26, 1, 15, 29, 27360, tzinfo=TzInfo(UTC)),
fact="This is a fact.",
name="projects/.../locations/us-central1/reasoningEngines/.../memories/...",
scope={
"user_id": "123"
},
update_time=datetime.datetime(2025, 6, 26, 1, 15, 29, 27360, tzinfo=TzInfo(UTC))
)
)
"""
Erinnerungen abrufen und verwenden
Sie können Erinnerungen für Ihren Nutzer abrufen und in Ihre Systemanweisungen einfügen, um dem LLM Zugriff auf Ihren personalisierten Kontext zu gewähren.
Weitere Informationen zum Abrufen von Erinnerungen mit einer bereichsbasierten Methode finden Sie unter Erinnerungen abrufen.
# Retrieve all memories for User ID 123.
retrieved_memories = list(
client.agent_engines.retrieve_memories(
name=agent_engine.api_resource.name,
scope={"user_id": "123"}
)
)
Mit jinja
können Sie Ihre strukturierten Erinnerungen in einen Prompt umwandeln:
from jinja2 import Template
template = Template("""
<MEMORIES>
Here is some information about the user:
{% for retrieved_memory in data %}* {{ retrieved_memory.memory.fact }}
{% endfor %}</MEMORIES>
""")
prompt = template.render(data=retrieved_memories)
"""
Output:
<MEMORIES>
Here is some information about the user:
* This is a fact
</MEMORIES>
"""
Bereinigen
Wenn Sie alle in diesem Projekt verwendeten Ressourcen bereinigen möchten, können Sie das Google Cloud -Projekt löschen, das Sie für den Schnellstart verwendet haben.
Andernfalls können Sie die einzelnen Ressourcen löschen, die Sie in dieser Anleitung erstellt haben:
Verwenden Sie das folgende Codebeispiel, um die Vertex AI Agent Engine-Instanz zu löschen. Dadurch werden auch alle Sitzungen oder Erinnerungen gelöscht, die mit der Vertex AI Agent Engine-Instanz verknüpft sind.
agent_engine.delete(force=True)
Löschen Sie alle lokal erstellten Dateien.