Nachdem Sie Ihren ADK-Agent (Agent Development Kit) für die Verwendung von Vertex AI Agent Engine-Sitzungen und Memory Bank 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:
Erstellen Sie Ihre Vertex AI Agent Engine-Instanz, um auf Vertex AI Agent Engine-Sitzungen und die Memory Bank zuzugreifen.
Mit Ihrem Agenten interagieren, um dynamisch langfristige Erinnerungen zu generieren, auf die über Sitzungen hinweg zugegriffen werden kann.
Hinweise
Um die in dieser Anleitung beschriebenen Schritte auszuführen, müssen Sie zuerst Ihr Projekt und Ihre Umgebung einrichten.
Projekt einrichten
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
- Wenn Sie ein Projekt ausgewählt haben, müssen Sie die IAM-Rolle Vertex AI-Nutzer (
roles/aiplatform.user
) für das Projekt haben. -
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
- PROJECT_ID: Ihre Projekt-ID.
- LOCATION: Ihre Region. Für die Memory Bank von Vertex AI Agent Engine wird nur
us-central1
unterstützt. 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 # You can use any ADK session service. session_service = VertexAiSessionService( project_id="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.
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?
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.
Bei Vertex AI authentifizieren
Wenn Sie die Python Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter ADC für eine lokale Entwicklungsumgebung einrichten.
Bibliotheken importieren
Installieren Sie das Agent Development Kit und das Vertex AI SDK:
pip install google-adk>=1.5.0
pip install google-cloud-aiplatform>=1.100.0
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:
Vertex AI Agent Engine-Instanz erstellen
Um auf Vertex AI Agent Engine-Sitzungen und die Vertex AI Agent Engine-Memory Bank zuzugreifen, müssen Sie zuerst eine Vertex AI Agent Engine-Instanz erstellen. Sie müssen keinen Code bereitstellen, um Sessions und Memory Bank zu verwenden. Ohne Codebereitstellung sollte das Erstellen einer Vertex AI Agent Engine-Instanz nur wenige Sekunden dauern.
import vertexai
client = vertexai.Client(
project="PROJECT_ID",
location="LOCATION",
)
agent_engine = client.agent_engines.create()
ADK-Agent erstellen
Mit dem Agent interagieren
Nachdem Sie Ihren Agent definiert und Sitzungen und Memory Bank eingerichtet haben, können Sie mit ihm interagieren.
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: