Nachdem Sie Ihren ADK-Agenten (Agent Development Kit) für die Verwendung von Vertex AI Agent Engine-Sitzungen und der Speicherbank konfiguriert haben, liest und schreibt Ihr Agent automatisch Erinnerungen und Sitzungen.
Eine Kurzanleitung zur Verwendung der REST API finden Sie unter Kurzanleitung zur REST API.
In dieser Anleitung wird gezeigt, wie Sie mit dem ADK Sitzungen und Memory Bank von Vertex AI Agent Engine verwenden können, um Sitzungen und Langzeitgedächtnisse zu erstellen und zu nutzen:
Mit Ihrem Agenten interagieren, um dynamisch langfristige Erinnerungen zu generieren, auf die über Sitzungen hinweg zugegriffen werden kann.
Hinweise
Um die Schritte in dieser Anleitung auszuführen, müssen Sie zuerst die Schritte unter Für Memory Bank einrichten ausführen.
Umgebungsvariablen festlegen
So legen Sie die Umgebungsvariablen für die Verwendung des ADK fest:
import os
os.environ["GOOGLE_GENAI_USE_VERTEXAI"] = "TRUE"
os.environ["GOOGLE_CLOUD_PROJECT"] = "PROJECT_ID"
os.environ["GOOGLE_CLOUD_LOCATION"] = "LOCATION"
Ersetzen Sie Folgendes:
- PROJECT_ID: Ihre Projekt-ID.
- LOCATION: Ihre Region. Für die Speicherbank der Vertex AI Agent Engine wird nur
us-central1
unterstützt.
ADK-Agent erstellen
Wenn Sie Ihren ADK-Agenten entwickeln, fügen Sie ein
Memory
-Tool ein, mit dem gesteuert wird, wann der Memory-Dienst verwendet wird und wie Erinnerungen in den Prompt aufgenommen werden. Der Beispiel-Agent verwendetPreloadMemoryTool
, wodurch zu Beginn jeder Runde immer Erinnerungen abgerufen und in die Systemanweisung aufgenommen werden:from google import adk agent = adk.Agent( model="gemini-2.0-flash", name='stateful_agent', instruction="""You are a Vehicle Voice Agent, designed to assist users with information and in-vehicle actions. 1. **Direct Action:** If a user requests a specific vehicle function (e.g., "turn on the AC"), execute it immediately using the corresponding tool. You don't have the outcome of the actual tool execution, so provide a hypothetical tool execution outcome. 2. **Information Retrieval:** Respond concisely to general information requests with your own knowledge (e.g., restaurant recommendation). 3. **Clarity:** When necessary, try to seek clarification to better understand the user's needs and preference before taking an action. 4. **Brevity:** Limit responses to under 30 words. """, tools=[adk.tools.preload_memory_tool.PreloadMemoryTool()] )
Erstellen Sie einen
VertexAiMemoryBankService
-Speicherdienst, den der ADK-Runner zum Abrufen von Erinnerungen verwendet.from google.adk.memory import VertexAiMemoryBankService agent_engine_id = agent_engine.api_resource.name.split("/")[-1] memory_service = VertexAiMemoryBankService( project="PROJECT_ID", location="LOCATION", agent_engine_id=agent_engine_id )
Erstellen Sie einen ADK-Runner, der die Ausführung Ihrer Agents, Tools und Callbacks orchestriert.
from google.adk.sessions import VertexAiSessionService from google.genai import types # You can use any ADK session service. session_service = VertexAiSessionService( project="PROJECT_ID", location="LOCATION", agent_engine_id=agent_engine_id ) app_name="APP_NAME" runner = adk.Runner( agent=agent, app_name=app_name, session_service=session_service, memory_service=memory_service ) def call_agent(query, session, user_id): content = types.Content(role='user', parts=[types.Part(text=query)]) events = runner.run(user_id=user_id, session_id=session, new_message=content) for event in events: if event.is_final_response(): final_response = event.content.parts[0].text print("Agent Response: ", final_response)
Ersetzen Sie Folgendes:
- APP_NAME: Der Name Ihrer ADK-App.
Mit dem Agent interagieren
Nachdem Sie Ihren Agent definiert und Sitzungen und Memory Bank eingerichtet haben, können Sie mit ihm interagieren.
Erstellen Sie Ihre erste Sitzung. Da in der ersten Sitzung mit einem Nutzer keine Erinnerungen verfügbar sind, kennt der Agent keine Nutzerpräferenzen, z. B. die bevorzugte Temperatur:
session = await session_service.create_session( app_name=app_name, user_id="USER_ID" ) call_agent( "Can you update the temperature to my preferred temperature?", session.id, "USER_ID" ) # Agent response: "What is your preferred temperature?" call_agent("I like it at 71 degrees", session.id, "USER_ID") # Agent Response: Setting the temperature to 71 degrees Fahrenheit. # Temperature successfully changed.
Ersetzen Sie Folgendes:
- USER_ID: Eine Kennung für Ihren Nutzer. Erinnerungen, die aus dieser Sitzung generiert werden, werden mit dieser intransparenten Kennung versehen. Der Umfang der generierten Erinnerungen wird als
{"user_id": "USER_ID"}
gespeichert.
- USER_ID: Eine Kennung für Ihren Nutzer. Erinnerungen, die aus dieser Sitzung generiert werden, werden mit dieser intransparenten Kennung versehen. Der Umfang der generierten Erinnerungen wird als
Erinnerungen für die aktuelle Sitzung erstellen Wenn Memory Bank Erinnerungen aus dem Gespräch extrahiert, werden sie unter dem Bereich
{"user_id": USER_ID, "app_name": APP_NAME}
gespeichert.session = await session_service.get_session( app_name=app_name, user_id="USER_ID", session_id=session.id ) await memory_service.add_session_to_memory(session)
Erstellen Sie die zweite Sitzung. Wenn Sie
PreloadMemoryTool
verwendet haben, ruft der Agent zu Beginn jeder Runde Erinnerungen ab, um auf Einstellungen zuzugreifen, die der Nutzer dem Agent zuvor mitgeteilt hat.session = await session_service.create_session( app_name=app_name, user_id="USER_ID" ) call_agent("Fix the temperature!", session.id, "USER_ID") # Agent Response: Setting temperature to 71 degrees. Is that correct?
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 zu dieser Vertex AI Agent Engine gehören.
agent_engine.delete(force=True)
Löschen Sie alle lokal erstellten Dateien.