Kurzanleitung für das Agent-Entwicklungs-Kit

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:

  1. Erstellen Sie Ihre Vertex AI Agent Engine-Instanz, um auf Vertex AI Agent Engine-Sitzungen und die Memory Bank zuzugreifen.

  2. Lokalen ADK-Agent und -Runner erstellen

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

  4. Führen Sie eine Bereinigung durch.

Hinweise

Um die in dieser Anleitung beschriebenen Schritte auszuführen, müssen Sie zuerst Ihr Projekt und Ihre Umgebung einrichten.

Projekt einrichten

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Enable the API

  8. Wenn Sie ein Projekt ausgewählt haben, müssen Sie die IAM-Rolle Vertex AI-Nutzer (roles/aiplatform.user) für das Projekt haben.
  9. 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.

    1. Install the Google Cloud CLI.

    2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    3. To initialize the gcloud CLI, run the following command:

      gcloud init
    4. 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.

    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:

    • PROJECT_ID: Ihre Projekt-ID.
    • LOCATION: Ihre Region. Für die Memory Bank von Vertex AI Agent Engine wird nur us-central1 unterstützt.

    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

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

    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