Kurzanleitung für das Agent-Entwicklungs-Kit

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:

  1. Lokalen ADK-Agent und -Runner erstellen

  2. Mit Ihrem Agenten interagieren, um dynamisch langfristige Erinnerungen zu generieren, auf die über Sitzungen hinweg zugegriffen werden kann.

  3. 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.

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

  1. 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 verwendet PreloadMemoryTool, 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()]
    )
    
  2. 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
    )
    
  3. 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.

  1. 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.
  2. 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)
    
  3. 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:

  1. 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)
    
  2. Löschen Sie alle lokal erstellten Dateien.

Nächste Schritte