KI-Datenagenten in eine Anwendung einbinden

In dieser Anleitung wird beschrieben, wie Sie einen Daten-KI-Agenten in Spanner mit der Google Cloud Console einrichten und verwenden und in Ihre Anwendung einbinden. Sie erfahren, wie Sie die Agentenkontextdatei erstellen, einen Daten-KI-Agenten erstellen, der den Kontext verwendet, mit der MCP Toolbox die QueryData API aufrufen, um SQL-Abfragen für Fragen in natürlicher Sprache zu generieren, und den Agenten schließlich in Ihre Anwendung einbinden.

Weitere Informationen finden Sie unter Data Agents – Übersicht.

Ziele

  • Tabellen erstellen und mit Daten füllen
  • Agentenkontext mit der Gemini CLI und der MCP-Toolbox erstellen
  • KI-Datenagenten erstellen und Kontext hochladen
  • Agent prüfen und SQL-Abfragen in Studio generieren
  • Integrieren Sie den Agenten mit dem Tool Gemini Data Analytics QueryData in der MCP Toolbox in Ihre Anwendung.

Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.

Neuen Nutzern von Google Cloud steht möglicherweise eine kostenlose Testversion zur Verfügung.

Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.

Hinweis

Erfüllen Sie die folgenden Voraussetzungen, bevor Sie einen Agent erstellen.

Erforderliche Dienste aktivieren

Aktivieren Sie die folgenden Dienste für Ihr Projekt:

Spanner-Instanz vorbereiten

Erforderliche Rollen und Berechtigungen

Schema und Tabellen für flights und airports erstellen

In diesem Abschnitt erstellen Sie die Datenbanken flights und airports für dieses Tutorial.

  1. Rufen Sie in der Google Cloud Console die Spanner-Seite auf.

    Spanner aufrufen

  2. Wählen Sie eine Instanz aus der Liste und dann eine Datenbank aus.

  3. Klicken Sie im Navigationsmenü auf Spanner Studio.

  4. Klicken Sie auf Neuer SQL-Editor-Tab oder Neuer Tab, um einen neuen Tab zu öffnen.

  5. Erstellen Sie die Tabelle airports und das Schema:

    CREATE TABLE IF NOT EXISTS airports (
      id INT64 PRIMARY KEY,
      iata STRING(MAX),
      name STRING(MAX),
      city STRING(MAX),
      country STRING(MAX)
    );
    
  6. Erstellen Sie die Tabelle flights und das Schema:

    CREATE TABLE flights (
      id INT64 NOT NULL,
      airline STRING(10),
      flight_number INT64,
      departure_airport STRING(5),
      arrival_airport STRING(5),
      departure_time TIMESTAMP,
      arrival_time TIMESTAMP,
      departure_gate STRING(10),
      arrival_gate STRING(10)
    ) PRIMARY KEY (id);
    
    

flights- und airport-Tabelle ausfüllen

In diesem Abschnitt füllen Sie die Tabellen flights und airports mit den bereitgestellten SQL-Scripts.

  1. Füllen Sie die Tabelle airports aus.

  2. Füllen Sie die Tabelle flights aus.

  3. Führen Sie die folgende Abfrage aus, um zu prüfen, ob die Tabellen gefüllt sind:

    SELECT * FROM flights LIMIT 10;
    SELECT * FROM airports LIMIT 10;
    

KI-Datenagenten erstellen

In diesem Abschnitt erstellen Sie einen Daten-Agent mit dem Namen flights-assistant. Für diesen Agenten wurde kein Agentenkontext hochgeladen.

  1. Klicken Sie im Explorer-Bereich neben Data Agents auf Aktionen ansehen.
  2. Klicken Sie auf Agent erstellen.
  3. Geben Sie unter Agent benennen flights-assistant ein.
  4. Klicken Sie auf Erstellen.

Agent in Studio prüfen

In diesem Abschnitt stellen Sie dem flights-assistant-Agenten eine Frage in natürlicher Sprache und er generiert eine SQL-Abfrage. Da der Agent keinen Kontext hat, generiert er auch nach einer Frage mit Kontext wie nighttime traffic eine suboptimale Anfrage.

  1. Klicken Sie im Explorer-Bereich neben Ihrem Daten-Agent auf Aktionen ansehen.
  2. Klicken Sie auf Agent prüfen.
  3. Klicken Sie im Abfrageeditor auf SQL mit Agent generieren: flights-assistant.
  4. Geben Sie die folgende Frage in natürlicher Sprache ein, um eine SQL-Abfrage zu generieren, und klicken Sie auf Generieren.

    Find flights from SFO to JFK.
    

    Prüfen Sie die SQL-Abfrage. Der Agent generiert für diese eindeutige Frage den richtigen SQL-Code.

      SELECT
        *
      FROM
        flights
      WHERE
        departure_airport = 'SFO'
        AND arrival_airport = 'JFK';
    
  5. Klicken Sie im Fenster SQL mit Agenten generieren: flights-assistant auf Bearbeiten.

  6. Geben Sie die folgende Frage in natürlicher Sprache ein, um eine SQL-Abfrage zu generieren, und klicken Sie auf Aktualisieren.

    Tell me flights that can help me beat nighttime traffic if traveling from New York
    

    Die Datenbank kann den Begriff nighttime-Traffic nicht interpretieren. Das kann verhindern, dass eine SQL-Abfrage generiert wird, oder dazu führen, dass eine Abfrage generiert wird, in der der Begriff ignoriert wird, wie in der folgenden Abfrage zu sehen ist.

    -- The database schema does not contain information about traffic.
    -- Returning all flights departing from New York airports.
    SELECT
      f.airline,
      f.flight_number,
      a.name AS departure_airport_name,
      f.departure_time,
      b.name AS arrival_airport_name,
      f.arrival_time
    FROM
      flights AS f
    JOIN
      airports AS a
      ON f.departure_airport = a.iata
    JOIN
      airports AS b
      ON f.arrival_airport = b.iata
    WHERE
      a.city = 'New York'
    ORDER BY
      f.departure_time;
    

Kontext für den Agenten generieren

In diesem Abschnitt erstellen Sie eine Kontextdatei, die die Abfragefunktionen des Agents verbessert. Um das Problem aus dem vorherigen Abschnitt zu beheben, bei dem der Agent den Begriff nighttime traffic nicht erkannt hat, definieren Sie den Begriff im Agent-Kontext als Traffic zwischen 5:00 PM und 7:00 PM.

So generieren Sie den Agent-Kontext:

  1. Installieren Sie die Gemini CLI in Ihrem lokalen Verzeichnis. Weitere Informationen finden Sie in der Gemini-Befehlszeile – Kurzanleitung.
  2. Installieren Sie die Google Cloud CLI und richten Sie Standardanmeldedaten für Anwendungen ein.
  3. Installieren Sie die Erweiterung MCP Toolbox Gemini CLI, die eine Verbindung zur Datenbank herstellt.

    gemini extensions install https://github.com/gemini-cli-extensions/mcp-toolbox
  4. Erstellen Sie im selben Verzeichnis, in dem Sie die MCP Toolbox installieren, eine tools.yaml-Konfigurationsdatei, um die Datenbankverbindung zu konfigurieren:

    sources:
      flight-sql-source:
        kind: spanner
        project: PROJECT_ID
        instance: INSTANCE_ID
        database: DATABASE_ID
    
    tools:
      # (Optional) Fetches database schemas for context generation in the bulk generation (/generate_bulk_templates) phase.
      list_flight_schemas_tool:
        kind: spanner-list-tables
        source: flight-spanner-source
        description: Use this tool to list all tables and their schemas in the flight database.
      # (Optional) Executes generated SQL for validation in the bulk generation (/generate_bulk_templates) phase.
      execute_sql_tool:
        kind: spanner-execute-sql
        source: flight-spanner-source
        description: Use this tool to execute SQL against the flight database.
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Ihre Google Cloud Projekt-ID
    • INSTANCE_ID: Die ID Ihrer Spanner-Instanz.
    • DATABASE_ID: Der Name der Datenbank, zu der eine Verbindung hergestellt werden soll.
  5. Installieren Sie das uv-Python-Paketinstallationsprogramm gemäß der offiziellen Installationsanleitung und prüfen Sie, ob die Installation erfolgreich war, indem Sie Folgendes ausführen:

    uv --version
  6. Installieren Sie den MCP-Server für die DB-Kontextanreicherung, der Workflows für die Kontexterstellung enthält.

    gemini extensions install https://github.com/GoogleCloudPlatform/db-context-enrichment
  7. Exportieren Sie den Gemini API-Schlüssel als Umgebungsvariable. Weitere Informationen zum Suchen des API-Schlüssels finden Sie unter Gemini API-Schlüssel verwenden.

    export GEMINI_API_KEY="YOUR_API_KEY"

    Ersetzen Sie YOUR_API_KEY durch Ihren Gemini API-Schlüssel.

  8. Starten Sie Gemini im selben Verzeichnis, in dem Sie die Datei tools.yaml erstellt haben:

    gemini
  9. Führen Sie die Einrichtung der Gemini CLI-Authentifizierung durch.

  10. Prüfen Sie, ob die MCP-Toolbox und die Erweiterung zur Datenbankanreicherung verbunden und einsatzbereit sind.

    /mcp list
  11. Führen Sie den Befehl /generate_targeted_templates aus und folgen Sie dem Workflow:

    /generate_targeted_templates
  12. Geben Sie im Terminal die Abfrage in natürlicher Sprache ein, die Sie der Abfragevorlage hinzufügen möchten.

    Tell me flights that can help me beat nighttime traffic if traveling from New York
  13. Geben Sie eine entsprechende SQL-Abfrage an, die Sie der Abfragevorlage hinzufügen möchten. In dieser Abfragevorlage wird der Begriff nighttime als zwischen 5:00 PM und 7:00 PM auftretend definiert.

    SELECT
      f.airline,
      f.flight_number,
      a.name AS airport_name,
      f.departure_time
    FROM
      flights f
    JOIN
      airports a
      ON f.departure_airport = a.iata
    WHERE
      a.city = 'New York'
      AND (
        EXTRACT(HOUR FROM f.departure_time) < 17
        OR EXTRACT(HOUR FROM f.departure_time) >= 19
      )
    ORDER BY
      f.departure_time;
    
  14. Drücken Sie die Eingabetaste. Gemini wandelt Ihre Eingabe in ein bestimmtes Format um, das die Leistung des Agents bei einer Vielzahl von Nutzeranfragen verbessert. Weitere Informationen finden Sie unter Agent-Kontext.

    Optional können Sie den /generate_bulk_templates-Workflow ausführen, damit die Gemini CLI durch Scannen Ihres Datenbankschemas mehr Kontext generiert und zugehörigen Kontext vorschlägt. Achten Sie darauf, dass Sie sowohl die list_flight_schemas_tool als auch die execute_sql_tool der tools.yaml-Konfiguration hinzufügen, die Sie in Schritt 4 erstellt haben.

  15. Sehen Sie sich die generierte Abfragevorlage an. Sie können die Abfragevorlage entweder als neue Kontextdatei für den Agenten speichern oder an eine vorhandene Kontextdatei für den Agenten anhängen.

  16. Wählen Sie die Option zum Erstellen einer neuen Kontextdatei für den Agenten aus. Gemini erstellt im selben Verzeichnis eine Datei mit dem Namen INSTANCE_ID_DATABASE_ID_context_set_TIMESTAMP.json mit folgendem Inhalt:

    {
      "templates": [
        {
          "nl_query": "Tell me flights that can help me beat nighttime traffic if traveling from New York",
          "sql": "SELECT f.airline, f.flight_number, a.name AS airport_name, f.departure_time FROM flights f JOIN airports a ON f.departure_airport = a.iata WHERE a.city = 'New York' AND (EXTRACT(HOUR FROM f.departure_time) < 17 OR EXTRACT(HOUR FROM f.departure_time) >= 19) ORDER BY f.departure_time;",
          "intent": "Tell me flights that can help me beat nighttime traffic if traveling from New York",
          "manifest": "Tell me flights that can help me beat nighttime traffic if traveling from a given city",
          "parameterized": {
            "parameterized_sql": "SELECT f.airline, f.flight_number, a.name AS airport_name, f.departure_time FROM flights f JOIN airports a ON f.departure_airport = a.iata WHERE a.city = ? AND (EXTRACT(HOUR FROM f.departure_time) < 17 OR EXTRACT(HOUR FROM f.departure_time) >= 19) ORDER BY f.departure_time;",
            "parameterized_intent": "Tell me flights that can help me beat nighttime traffic if traveling from ?"
          }
        }
      ]
    }
    

Kontext in den Agenten hochladen

In diesem Abschnitt laden Sie die Datei mit dem Agent-Kontext in den Daten-Agent hoch, damit die SQL-Generierungsfunktionen des Agents für Ihre Datenbank verbessert werden.

Führen Sie die folgenden Schritte aus, um den Kontext hochzuladen:

  1. Rufen Sie in der Google Cloud Console die Spanner-Seite auf.

    Spanner aufrufen

  2. Wählen Sie eine Instanz aus der Liste und dann eine Datenbank aus.

  3. Klicken Sie im Navigationsmenü auf Spanner Studio.

  4. Klicken Sie im Explorer-Bereich neben Data Agents auf Aktionen ansehen.

  5. Klicken Sie auf Agent bearbeiten.

  6. Optional: Bearbeiten Sie die Agent-Beschreibung.

  7. Klicken Sie im Abschnitt Agent-Kontextdatei hochladen auf Durchsuchen und wählen Sie die zuvor generierte Agent-Kontextdatei aus.

  8. Klicken Sie auf Speichern.

SQL-Abfrage mit Agentenkontext generieren

In diesem Abschnitt verwenden Sie die Agent-Kontextdatei, die Sie hochgeladen haben, um Fragen in natürlicher Sprache zu stellen. So können Sie prüfen, ob der Agent Definitionen für Begriffe wie nighttime traffic und andere ähnliche Formulierungen richtig versteht und anwendet.

So generieren Sie SQL-Abfragen:

  1. Klicken Sie im Bereich Explorer neben Ihrem Daten-Agent auf Aktionen ansehen.
  2. Klicken Sie auf Agent prüfen.
  3. Klicken Sie im Abfrageeditor auf SQL mit Agent generieren: flights-assistant.
  4. Geben Sie die folgende Frage in natürlicher Sprache ein, um eine SQL-Abfrage zu generieren, und klicken Sie auf Generieren.

    Tell me flights that can help me beat nighttime traffic if traveling from New York

    Die generierte SQL-Abfrage sieht in etwa so aus:

    SELECT
      f.airline,
      f.flight_number,
      a.name AS airport_name,
      f.departure_time
    FROM
      flights f
    JOIN
      airports a ON f.departure_airport = a.iata
    WHERE
      a.city = 'New York'
      AND (
        EXTRACT(HOUR FROM f.departure_time) < 17
        OR EXTRACT(HOUR FROM f.departure_time) >= 19
      )
    ORDER BY
      f.departure_time;
    

    Das ist dieselbe Frage, die Sie dem Kontext des Daten-Agents hinzugefügt haben. Der Agent kann den Begriff nighttime traffic jetzt korrekt interpretieren.

    Obwohl der Kontext aus einer bestimmten Frage stammt, verwendet der Agent ihn, um die SQL-Generierung für eine Vielzahl ähnlicher Fragen zu verbessern.

  5. Klicken Sie im Fenster SQL mit Agenten generieren: flights-assistant auf Bearbeiten.

  6. Geben Sie die folgende ähnliche Frage ein, um eine SQL-Abfrage zu generieren, und klicken Sie auf Aktualisieren.

    What are the flights that can help me avoid evening traffic if departing from Boston

    Da in der Frage der Begriff nighttime traffic durch einen ähnlichen Begriff, evening traffic, ersetzt wird, gibt der Agent eine konsistente Antwort auf diese Frage, indem er dieselbe Interpretation anwendet.

    Die generierte SQL-Abfrage sieht in etwa so aus:

    -- What are the flights that can help me avoid evening traffic if departing from Boston
    SELECT
      f.airline,
      f.flight_number,
      a.name AS airport_name,
      f.departure_time
    FROM
      flights f
    JOIN
      airports a
    ON
      f.departure_airport = a.iata
    WHERE
      a.city = 'Boston'
      AND (
        EXTRACT(HOUR FROM f.departure_time) < 17
        OR EXTRACT(HOUR FROM f.departure_time) >= 19
      )
    ORDER BY
      f.departure_time;
    

Agent in Ihre Anwendung einbinden

In diesem Abschnitt erstellen Sie einen Daten-Agent für eine Anwendung zur Flugsuche. Dieser KI-Datenagent bietet eine dialogorientierte Schnittstelle für die Tabellen flights und airports, die Sie zuvor erstellt haben. Außerdem wird erläutert, wie Sie diesen Agenten mit dem Agent Development Kit (ADK), dem MCP-Tool „Gemini Data Analytics QueryData“ und dem Agentenkontext erstellen und in Ihre Anwendung einbinden, um die Qualität der Antworten zu verbessern.

  1. Laden Sie die MCP Toolbox-Version 0.24.0 oder höher herunter. Die MCP Toolbox stellt den Daten-Agenten als Tool für Anwendungen bereit, mit dem sie eine Verbindung herstellen können. Die MCP-Toolbox unterscheidet sich von der MCP-Toolbox-Gemini CLI-Erweiterung, die Sie zuvor installiert haben und die Kontext generiert.

  2. Legen Sie im Terminal das Projekt fest, das Sie verwenden.

    gcloud config set project [PROJECT_ID]
  3. Richten Sie Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) ein.

    gcloud auth application-default login
  4. Suchen Sie die Agent-Kontext-ID. Weitere Informationen zum Suchen der Kontext-Set-ID finden Sie unter Kontext-ID des Agents finden.

  5. Erstellen Sie die tools.yaml-Konfiguration, um mit der MCP Toolbox eine Verbindung zum Data Agent herzustellen. Weitere Informationen finden Sie unter Gemini Data Analytics-Quelle und Gemini Data Analytics QueryData-Tool.

    sources:
      gda-api-source:
        kind: cloud-gemini-data-analytics
        projectId: "PROJECT_ID"
    
    tools:
      cloud_gda_query_tool:
        kind: cloud-gemini-data-analytics-query
        source: gda-api-source
        description: Use this tool to send natural language queries to the Gemini Data Analytics API and receive SQL, natural language answers, and explanations.
        location: "REGION_ID"
        context:
          datasourceReferences:
            spannerReference:
              databaseReference:
                engine: "GOOGLE_SQL"
                projectId: "PROJECT_ID"
                region: "REGION_ID"
                instanceId: "INSTANCE_ID"
                databaseId: "DATABASE_ID"
              agentContextReference:
                contextSetId: "DATA_AGENT_CONTEXT_SET_ID"
        generationOptions:
          generateQueryResult: true
          generateNaturalLanguageAnswer: true
          generateExplanation: true
          generateDisambiguationQuestion: true
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Ihre Google Cloud Projekt-ID
    • REGION_ID: Die Region Ihrer Spanner-Instanz, z.B. us-central1.
    • INSTANCE_ID: Die ID Ihrer Spanner-Instanz.
    • DATABASE_ID: Der Name der Datenbank, zu der eine Verbindung hergestellt werden soll.
    • DATA_AGENT_CONTEXT_SET_ID: Die ID des Kontextsets des KI-Datenagenten.
  6. Führen Sie den MCP Toolbox-Server mit der Datei tools.yaml aus.

    ./toolbox --tools-file "tools.yaml"
  7. Erstellen Sie eine ADK-Anwendung, die das Gemini Data Analytics QueryData-Tool mit dem Python SDK der MCP Toolbox aufruft. Weitere Informationen zur Verwendung des Python SDK der MCP Toolbox finden Sie in der Kurzanleitung für die Toolbox und zur Verwendung des Python ADK in der Kurzanleitung für das ADK.

    1. Erstellen Sie ein Verzeichnis zum Speichern der Anwendung, z. B. flight-assistant-app.
    2. Wechseln Sie in das Verzeichnis flight-assistant-app.

      mkdir flight-assistant-app
      cd flight-assistant-app
    3. Führen Sie die folgenden Befehle im Verzeichnis flight-assistant-app aus, um eine virtuelle Umgebung zu erstellen und die erforderlichen Komponenten zu installieren.

      python3 -m venv .venv
      source .venv/bin/activate
      pip install toolbox-core
      pip install google-genai
      pip install google-adk
    4. ADK-Agent einrichten

      1. Erstellen Sie einen ADK-Agent.

        adk create my_agent
      2. Wählen Sie das gemini-2.5-flash-Modell aus.

      3. Wählen Sie Google AI aus und geben Sie Ihren Gemini API-Schlüssel ein. Weitere Informationen zum Abrufen Ihres API-Schlüssels finden Sie unter Gemini API-Schlüssel verwenden.

    5. Ersetzen Sie den Inhalt der Datei agent.py durch den folgenden Beispielanwendungscode für den Flight Data Assistant.

      from typing import cast
      
      from google.adk.agents.llm_agent import Agent
      from google.adk.agents.llm_agent import ToolUnion
      
      from toolbox_core import ToolboxSyncClient
      
      TOOLBOX_URL = "http://127.0.0.1:5000"
      
      INSTRUCTION = """
      # ROLE
      You are a friendly and factual flight data assistant. Your goal is to help users find the best flights for their needs by providing accurate information with a helpful, professional tone.
      - use the Query Data Tool to answer the user's question, if the tool fails to generate a valid query, ask the user to clarify their question.
      
      # OPERATIONAL CONSTRAINTS
      - TOOL LIMITATION: You only have access to the Query Data Tool. Do not claim to have capabilities beyond what this tool provides.
      - TRANSPARENCY POLICY: Maintain a seamless user experience. Never mention that you are using a tool, querying a database, or generating SQL. Frame all responses as your own direct assistance.
      - SCOPE MANAGEMENT: If a user asks for something beyond your capabilities, politely state that you cannot perform that specific task. Guide the user towards what you can help with.
      
      # COMMUNICATION STYLE
      - Be concise and scannable when listing answers.
      - Maintain a helpful, professional persona.
      
      =====
      
      # QUERY DATA TOOL
      
      Inputs:
      1. query: A natural language formulation of a database query.
      
      Outputs: (all optional)
      1. disambiguation_question: Clarification questions or comments where the tool needs the users' input.
      2. generated_query: The generated query for the user query.
      3. intent_explanation: An explanation for why the tool produced `generated_query`.
      4. query_result: The result of executing `generated_query`.
      5. natural_language_answer: The natural language answer that summarizes the `query` and `query_result`.
      
      Usage guidance:
      1. If `disambiguation_question` is produced, then solicit the needed inputs from the user and try the tool with a new `query` that has the needed clarification.
      2. If `natural_language_answer` is produced, use `intent_explanation` and `generated_query` to see if you need to clarify any assumptions for the user.
      3. If the tool output indicates failure or empty results, explain that clearly using the provided reasoning.
      """
      
      client = ToolboxSyncClient(TOOLBOX_URL)
      
      mcp_tool = client.load_tool("cloud_gda_query_tool")
      
      root_agent = Agent(
          model="gemini-2.5-flash",
          name="root_agent",
          instruction=INSTRUCTION,
          tools=cast(list[ToolUnion], [mcp_tool]),
      )
      
  8. Führen Sie die folgenden Befehle im Verzeichnis flight-assistant-app aus, um die Anwendung zu starten und unter http://127.0.0.1:8000 auf den ADK-Webserver zuzugreifen.

    adk web --port 8000
  9. Geben Sie einen beliebigen Text ein, z. B. hello, um mit dem KI-Agenten zu interagieren.

    Der ADK-Agent beantwortet allgemeine Fragen und ruft die erforderlichen MCP-Tools auf.

  10. Geben Sie die folgende Frage zum Flug ein.

    How many flights depart from the west side?
    

    Das MCP-Tool wird aufgerufen, um diese Frage zu beantworten. Da der Begriff the west jedoch mehrdeutig ist und keine Flughäfen angibt, gibt das MCP-Tool eine Frage zur Klärung zurück, die der Agent verwendet, um eine Antwort zu erstellen.

    I cannot determine how many flights depart from the 'west side' as the database does not contain information about which airports are considered to be on the 'west side'. However, I can help you with questions like:
    
    1. How many flights depart from a specific airport?
    
    2. What are the departure airports for all flights?
    
    3. How many flights depart from each airport? Would you like to rephrase your question based on these options?
    
  11. Geben Sie eine Frage ein, die der in der für den Agenten generierten Abfragevorlage ähnelt.

    Help me find flights from San Francisco that avoid the evening rush hour.
    

    Anhand des zuvor hinzugefügten Agentenkontexts weiß das MCP-Tool, dass evening traffic zwischen 17:00 und 19:00 Uhr stattfindet. Das MCP-Tool gibt die zugehörigen Daten zurück, die der Agent zum Erstellen seiner Antwort verwendet.

    Here are the flights departing from San Francisco that avoid the evening rush hour (defined as 5 PM to 7 PM):
    
    * UA 1532 departing at 05:50:00
    * UA 1158 departing at 05:57:00
    * CY 922 departing at 06:38:00
    * OO 5441 departing at 07:08:00
    * UA 616 departing at 07:14:00
    * AA 24 departing at 07:14:00
    * B6 434 departing at 08:00:00
    * AA 242 departing at 08:18:00
    * UA 1739 departing at 08:22:00
    * OO 6336 departing at 08:32:00
    * US 1784 departing at 08:47:00
    * DL 1631 departing at 09:00:00
    * DL 1106 departing at 09:06:00
    * OO 5427 departing at 09:06:00
    * CY 352 departing at 09:25:00
    

Agent-Leistung iterieren

In der ADK-Web-UI können Sie die Anfrage und Antwort des MCP-Tools „QueryData“ von Gemini Data Analytics prüfen. Anhand dieser Antwort können Sie die Tool-Antworten wie die generierte SQL-Abfrage, das Ergebnis-Set, die Absichtserklärung, die Frage zur Begriffsklärung und die Antwort in natürlicher Sprache prüfen, um die Richtigkeit der Antworten Ihres KI-Agenten zu bestätigen.

Klicken Sie beispielsweise für den zuvor eingegebenen Text How many flights depart from the west side? auf die Blase des KI-Agents. Erweitern Sie im linken Navigationsbereich auf dem Tab Ereignis die functionResponse, um die folgende Antwort zu sehen.

"{"disambiguationQuestion": ["[NOT_ENOUGH_INFO] The database schema does not
contain information about which airports are on the 'west side'. Therefore, I
cannot determine how many flights depart from the west side.Possible alternative
questions: 1. How many flights depart from a specific airport? 2. What are the
departure airports for all flights? 3. How many flights depart from each
airport?"]}"

Antwortgenauigkeit verbessern

Sie können die Genauigkeit der Antworten des Gemini Data Analytics-Tools „QueryData“ kontinuierlich verbessern, indem Sie zusätzlichen Kontext hinzufügen. Verwenden Sie die Gemini CLI, um Kontext zu generieren, und laden Sie dann den aktualisierten Agentenkontext in den vorhandenen flights-assistant-Agenten hoch. Weitere Informationen finden Sie unter Kontexte mit der Gemini-Befehlszeile erstellen. Die Console übernimmt neuen Kontext sofort nach dem Hochladen, sodass Sie die Genauigkeit des Agents ohne Ausfallzeiten der Anwendung verbessern können.

Mehrere Agents

In Ihrer Entwicklungsumgebung können Sie A/B-Tests für mehrere Agent-Kontexte durchführen, indem Sie Tools in Ihrer tools.yaml-Datei unterschiedliche Namen zuweisen. Sie können beispielsweise eindeutige tools.yaml-Konfigurationen erstellen, indem Sie zwei cloud-gemini-data-analytics-query-Tools mit unterschiedlichen Namen definieren, z. B. cloud_gda_query_tool_v1 und cloud_gda_query_tool_v2. Mit dieser Einrichtung können Sie Anwendungslogik implementieren, mit der die erforderliche Agentkontextversion programmatisch ausgewählt wird, indem der entsprechende Toolname ausgewählt wird.

Im folgenden Beispiel tools.yaml wird gezeigt, wie mehrere Agents für eine Datenbankquelle eingerichtet werden:

sources:
  gda-api-source:
    kind: cloud-gemini-data-analytics
    projectId: "<var>PROJECT_ID</var>"
tools:
  cloud_gda_query_tool_v1:
    kind: cloud-gemini-data-analytics-query
    source: gda-api-source
    context:
      datasourceReferences:
        <var>DB_SOURCE</var>:
          databaseReference: ...
          agentContextReference:
            contextSetId: "V1_YOUR_DATA_AGENT_CONTEXT_SET_ID"
    generationOptions: ...
  cloud_gda_query_tool_v2:
    kind: cloud-gemini-data-analytics-query
    source: gda-api-source
    context:
      datasourceReferences:
        <var>DB_SOURCE</var>:
          databaseReference: ...
          agentContextReference:
            contextSetId: "V2_YOUR_DATA_AGENT_CONTEXT_SET_ID"
    generationOptions: ...

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Google Cloud Projekt-ID
  • V1_YOUR_DATA_AGENT_CONTEXT_SET_ID: Die ID des Kontextsets des KI-Datenagenten für Version 1.
  • V2_YOUR_DATA_AGENT_CONTEXT_SET_ID: Die ID des Kontextsets des KI-Datenagenten für Version 2.

Bereinigen

In den folgenden Abschnitten erfahren Sie, wie Sie diese Ressourcen und Objekte löschen.

Agent löschen

Bevor Sie die Instanz löschen, müssen Sie den von Ihnen erstellten Agent löschen.

  1. Rufen Sie in der Google Cloud Console die Spanner-Seite auf.

    Spanner aufrufen

  2. Wählen Sie eine Instanz aus der Liste und dann eine Datenbank aus.

  3. Klicken Sie im Navigationsmenü auf Spanner Studio.

  4. Klicken Sie im Explorer-Bereich neben Ihrem Daten-Agent auf Aktionen ansehen.

  5. Geben Sie im Fenster Agent löschen flight-assistant in das Bestätigungsfeld ein.

  6. Klicken Sie auf Bestätigen.

Instanz löschen

Wenn Sie die Instanz löschen, die Sie im Abschnitt Vorbereitung erstellt haben, werden auch alle Objekte gelöscht, die Sie erstellt haben.

  1. Rufen Sie in der Google Cloud Console die Spanner-Seite auf.

    Spanner aufrufen

  2. Klicken Sie auf den Namen der Instanz, die Sie löschen möchten, z. B. Testinstanz.

  3. Klicken Sie auf Instanz löschen.

  4. Bestätigen Sie, dass Sie die Instanz löschen möchten, indem Sie den Instanznamen eingeben und auf Löschen klicken.

Nächste Schritte