このチュートリアルでは、 Cloud de Confiance コンソールを使用して Cloud SQL for MySQL でデータ エージェントを設定して使用し、アプリケーションと統合する方法について説明します。エージェント コンテキスト ファイルの作成方法、コンテキストを使用するデータ エージェントの作成方法、MCP ツールボックスを使用して QueryData API を呼び出して自然言語の質問に対する SQL クエリを生成する方法、最後にアプリケーションと統合する方法について説明します。
詳細については、データ エージェントの概要をご覧ください。
目標
- テーブルを作成してデータを入力する。
- Gemini CLI と MCP ツールボックスを使用してエージェント コンテキストを構築します。
- データ エージェントを作成してコンテキストをアップロードします。
- Studio でエージェントを検査し、SQL クエリを生成します。
- MCP ツールボックスの Gemini データ分析 QueryData ツールを使用して、エージェントをアプリケーションと統合します。
料金
このドキュメントでは、課金対象である次の Cloud de Confiance by S3NSコンポーネントを使用します。
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを算出できます。
新規の Cloud de Confiance by S3NS ユーザーは無料トライアルをご利用いただける場合があります。
このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。
始める前に
エージェントを作成する前に、次の前提条件を満たす必要があります。
必要なサービスを有効にする
プロジェクトで次のサービスを有効にします。Cloud SQL インスタンスを準備する
- 既存の Cloud SQL インスタンスにアクセスできることを確認するか、新しいインスタンスを作成します。詳細については、Cloud SQL のインスタンスを作成するをご覧ください。
- テーブルを作成するインスタンスにデータベースを作成してください。詳細については、Cloud SQL インスタンスでデータベースを作成するをご覧ください。
必要なロールと権限
- インスタンス レベルで IAM ユーザーまたはサービス アカウントを追加します。詳細については、ユーザー、サービス アカウント、またはグループに IAM ポリシー バインディングを追加するをご覧ください。
- プロジェクト レベルで IAM ユーザーに
cloudsql.studioUserロールとcloudsql.instanceUserロールを付与します。詳細については、プロジェクトの IAM ポリシー バインディングを追加するをご覧ください。 - また、データベースのパスワード ベースのユーザーとしてログインして、IAM ユーザーまたはサービス アカウントにデータベース権限を付与する必要があります。
GRANT ALL PRIVILEGES ON * TO "IAM_USERNAME";.
詳細については、個々の IAM ユーザーまたはサービス アカウントにデータベース権限を付与するをご覧ください。
Cloud SQL インスタンスに executesql 権限を付与する
Cloud SQL インスタンスに executesql 権限を付与し、Cloud SQL Data API を有効にするには、次のコマンドを実行します。
gcloud components update gcloud beta sql instances patch INSTANCE_ID --data-api-access=ALLOW_DATA_API
INSTANCE_ID は、Cloud SQL インスタンス ID に置き換えます。このチュートリアルの手順を行うには、Cloud de Confiance by S3NS にログインし、IAM 認証を使用してデータベースに対して認証を行います。
flights スキーマと airports スキーマ、テーブルを作成する
このセクションでは、このチュートリアルで使用する flights データベースと airports データベースを作成します。
Cloud de Confiance コンソールで、[Cloud SQL] ページに移動します。
リストからインスタンスを選択します。
ナビゲーション メニューで [Cloud SQL Studio] をクリックします。
Identity and Access Management(IAM)認証を使用して Studio にログインします。
[認証] をクリックします。[エクスプローラ] ペインに、データベースにあるオブジェクトのリストが表示されます。
[新しい SQL エディタタブ] または [新しいタブ] をクリックして、新しいタブを開きます。
airportsテーブルとスキーマを作成します。CREATE TABLE IF NOT EXISTS airports ( id INT PRIMARY KEY, iata TEXT, name TEXT, city TEXT, country TEXT );flightsテーブルとスキーマを作成します。CREATE TABLE IF NOT EXISTS flights ( id INT PRIMARY KEY, airline VARCHAR(10), flight_number INT, departure_airport VARCHAR(5), arrival_airport VARCHAR(5), departure_time TIMESTAMP, arrival_time TIMESTAMP, departure_gate VARCHAR(10), arrival_gate VARCHAR(10) );
flights テーブルと airport テーブルにデータを入力する
このセクションでは、提供された SQL スクリプトを使用して flights テーブルと airports テーブルにデータを入力します。
airportsテーブルにデータを入力します。flightsテーブルにデータを入力します。次のクエリを実行して、テーブルにデータが入力されていることを確認します。
SELECT * FROM flights LIMIT 10; SELECT * FROM airports LIMIT 10;
データ エージェントを作成する
このセクションでは、flights-assistant という名前のデータ エージェントを作成します。このエージェントには、アップロードされたエージェント コンテキストは含まれていません。
- [エクスプローラ] ペインで、[データ エージェント] の横にある [アクションを表示] をクリックします。
- [Create Agent(エージェントを作成)] をクリックします。
- [エージェントに名前を付ける] に「
flights-assistant」と入力します。 - [作成] をクリックします。
Studio でエージェントを検査する
このセクションでは、flights-assistant エージェントに自然言語の質問をすると、SQL クエリが生成されます。エージェントにはコンテキストがないため、nighttime traffic などのコンテキストを含む質問をしても、エージェントは最適ではないクエリを生成します。
- [エクスプローラ] ペインで、データ エージェントの横にある [アクションを表示] をクリックします。
- [エージェントを検査] をクリックします。
- クエリエディタで、[エージェント flights-assistant を使用して SQL を生成] をクリックします。
次の自然言語の質問を入力して SQL クエリを生成し、[生成] をクリックします。
Find flights from SFO to JFK.SQL クエリを確認します。この曖昧さのない質問に対して、エージェントが正しい SQL を生成していることに注目してください。
SELECT * FROM "flights" WHERE "departure_airport" = 'SFO' AND "arrival_airport" = 'JFK';[エージェントを使用して SQL を生成: flights-assistant] ウィンドウで、[編集] をクリックします。
次の自然言語の質問を入力して SQL クエリを生成し、[更新] をクリックします。
Tell me flights that can help me beat nighttime traffic if traveling from New Yorkデータベースが
nighttimeトラフィックという用語を認識できません。これにより、SQL クエリが生成されなかったり、次のクエリに示すように、用語を無視するクエリが生成されたりする可能性があります。-- 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;
エージェントのコンテキストを生成する
このセクションでは、エージェントのクエリ機能を向上させるコンテキスト ファイルを作成します。前のセクションでエージェントが nighttime traffic という用語を認識しなかった問題に対処するには、エージェント コンテキストで 5:00 PM と 7:00 PM の間で発生するトラフィックとして用語を定義します。
エージェント コンテキストを生成する手順は次のとおりです。
- ローカル ディレクトリに Gemini CLI をインストールします。詳細については、Gemini CLI クイックスタートをご覧ください。
- gcloud CLI をインストールし、アプリケーションのデフォルト認証情報(ADC)を設定します。
データベースに接続する MCP ツールボックス Gemini CLI 拡張機能をインストールします。
gemini extensions install https://github.com/gemini-cli-extensions/mcp-toolboxMCP ツールボックスをインストールしたディレクトリ内に
tools.yaml構成ファイルを作成して、データベース接続を構成します。sources: flight-sql-source: kind: cloud-sql-mysql project: PROJECT_ID region: REGION_ID instance: INSTANCE_ID database: DATABASE_ID user: USER_NAME password: PASSWORD tools: # (Optional) Fetches database schemas for context generation in the bulk generation (/generate_bulk_templates) phase. list_flight_schemas_tool: kind: mysql-list-tables source: flight-sql-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: mysql-execute-sql source: flight-sql-source description: Use this tool to execute SQL against the flight database.次のように置き換えます。
PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。REGION_ID: Cloud SQL インスタンスのリージョン(us-central1 など)。INSTANCE_ID: Cloud SQL インスタンスの ID。DATABASE_ID: 接続先のデータベースの名前。USER_NAME: データベース ユーザー。これはリテラル値ではなく、環境変数として設定します。この値を設定する方法の詳細については、MCP ツールボックス内のソースをご覧ください。PASSWORD: データベース ユーザー用のパスワード。これはリテラル値ではなく、環境変数として設定します。この値を設定する方法の詳細については、MCP ツールボックス内のソースをご覧ください。
公式のインストール ガイドに沿って
uvPython パッケージ インストーラをインストールし、次のコマンドを実行してインストールが成功したことを確認します。uv --versionコンテキスト生成のワークフローを含む DB コンテキスト拡充 MCP サーバーをインストールします。
gemini extensions install https://github.com/GoogleCloudPlatform/db-context-enrichmentGemini API キーを環境変数としてエクスポートします。API キーを確認する方法の詳細については、Gemini API キーを使用するをご覧ください。
export GEMINI_API_KEY="YOUR_API_KEY"YOUR_API_KEYは、実際の Gemini API キーに置き換えます。tools.yamlファイルを作成したディレクトリ内で Gemini を起動します。geminiMCP ツールボックスとデータベース拡充拡張機能が接続され、使用可能な状態であることを確認します。
/mcp list/generate_targeted_templatesコマンドを実行し、ワークフローに沿って操作します。/generate_targeted_templatesクエリ テンプレートに追加する自然言語クエリをターミナルで指定します。
Tell me flights that can help me beat nighttime traffic if traveling from New Yorkクエリ テンプレートに追加する対応する SQL クエリを指定します。このクエリ テンプレートは、
nighttimeという用語が5:00 PMと7:00 PMの間に発生すると定義します。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;Enter キーを押すと、Gemini は、入力内容を特定の形式に変換し、幅広いユーザー クエリでエージェントのパフォーマンスを向上させます。詳細については、エージェント コンテキストをご覧ください。
必要に応じて、
/generate_bulk_templatesワークフローを実行して、Gemini CLI がデータベース スキーマをスキャンし、関連するコンテキストを提案することで、より多くのコンテキストを生成できるようにします。ステップ 4 で作成したtools.yaml構成にlist_flight_schemas_toolとexecute_sql_toolの両方を追加します。生成されたクエリ テンプレートを確認します。クエリ テンプレートは、新しいエージェント コンテキスト ファイルとして保存することも、既存のエージェント コンテキスト ファイルに追加することもできます。
新しいエージェント コンテキスト ファイルを作成するオプションを選択します。Gemini は、同じディレクトリに
INSTANCE_ID_DATABASE_ID_context_set_TIMESTAMP.jsonというファイル名で次の内容のファイルを作成します。{ "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 ?" } } ] }
エージェントにコンテキストをアップロードする
このセクションでは、エージェントのコンテキスト ファイルをデータ エージェントにアップロードして、データベースでのエージェントの SQL 生成機能を改善します。
コンテキストをアップロードする手順は次のとおりです。
Cloud de Confiance コンソールで、[Cloud SQL] ページに移動します。
リストからインスタンスを選択します。
ナビゲーション メニューで [Cloud SQL Studio] をクリックします。
Identity and Access Management(IAM)認証を使用して Studio にログインします。
[エクスプローラ] ペインで、[データ エージェント] の横にある [アクションを表示] をクリックします。
[エージェントを編集] をクリックします。
省略可: [エージェントの説明] を編集します。
[エージェント コンテキスト ファイルのアップロード] セクションで [参照] をクリックし、前に生成したエージェント コンテキスト ファイルを選択します。
[保存] をクリックします。
エージェント コンテキストを使用して SQL クエリを生成する
このセクションでは、アップロードしたエージェント コンテキスト ファイルを使用して、自然言語で質問します。これにより、エージェントが nighttime traffic などの用語や関連するフレーズの定義を正しく理解して適用していることを確認できます。
SQL クエリを生成する手順は次のとおりです。
- [エクスプローラ] ペインで、データ エージェントの横にある [アクションを表示] をクリックします。
- [エージェントを検査] をクリックします。
- クエリエディタで、[エージェント flights-assistant を使用して SQL を生成] をクリックします。
次の自然言語の質問を入力して SQL クエリを生成し、[生成] をクリックします。
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;これは、データ エージェントのコンテキストに追加したのと同じ質問です。エージェントが
nighttime trafficという用語を正確に解釈できるようになったことを確認します。コンテキストは特定の質問から生成されますが、エージェントはそれを使用して、さまざまな類似の質問に対する SQL 生成を強化します。
[エージェントを使用して SQL を生成: flights-assistant] ウィンドウで、[編集] をクリックします。
次の質問を入力して SQL クエリを生成し、[更新] をクリックします。
What are the flights that can help me avoid evening traffic if departing from Boston質問では、
nighttime trafficという用語が類似の用語evening trafficに置き換えられているため、エージェントは同じ解釈を適用して、この質問に一貫した回答を提供します。生成された SQL クエリは次のようになります。
-- 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;
エージェントをアプリケーションと統合する
このセクションでは、フライト検索アプリケーションのデータ エージェントを作成します。このデータ エージェントは、前に作成した flights テーブルと airports テーブルへの会話型インターフェースを提供します。また、Agent Development Kit(ADK)、Gemini Data Analytics QueryData MCP ツール、エージェント コンテキストを使用して、このエージェントを作成してアプリケーションに統合し、レスポンスの品質を向上させる方法についても説明します。
MCP ツールボックス バージョン 0.24.0 以降をダウンロードします。MCP ツールボックスは、アプリケーションが接続するためのツールとしてデータ エージェントを公開します。MCP ツールボックスは、コンテキストを生成する、以前にインストールした MCP ツールボックス Gemini CLI 拡張機能とは異なります。
ターミナルで、使用するプロジェクトを設定します。
gcloud config set project [PROJECT_ID]アプリケーションのデフォルト認証情報(ADC)を設定します。
gcloud auth application-default loginエージェントのコンテキスト ID を確認します。コンテキスト セット ID を確認する方法については、エージェント コンテキスト ID を確認するをご覧ください。
MCP ツールボックスを使用してデータ エージェントに接続する
tools.yaml構成を作成します。詳細については、Gemini Data Analytics Source と 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: cloudSqlReference: databaseReference: engine: "MYSQL" 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次のように置き換えます。
PROJECT_ID: 実際の Cloud de Confiance プロジェクト ID。REGION_ID: Cloud SQL インスタンスのリージョン(us-central1 など)。INSTANCE_ID: Cloud SQL インスタンスの ID。DATABASE_ID: 接続先のデータベースの名前。DATA_AGENT_CONTEXT_SET_ID: データ エージェント コンテキスト セット ID。
tools.yamlファイルを使用して MCP ツールボックス サーバーを実行します。./toolbox --tools-file "tools.yaml"MCP ツールボックスの Python SDK を使用して、Gemini Data Analytics QueryData ツールを呼び出す ADK アプリケーションを作成します。MCP Toolbox の Python SDK の使用方法について詳しくは、Toolbox のクイックスタートをご覧ください。Python ADK については、ADK のクイックスタートをご覧ください。
- アプリケーションを保存するディレクトリ(例:
flight-assistant-app)を作成します。 flight-assistant-appディレクトリに移動します。mkdir flight-assistant-appcd flight-assistant-appflight-assistant-appディレクトリで次のコマンドを実行して、仮想環境を作成し、必要なコンポーネントをインストールします。python3 -m venv .venvsource .venv/bin/activatepip install toolbox-corepip install google-genaipip install google-adkADK エージェントを設定します。
ADK エージェントを作成します。
adk create my_agentgemini-2.5-flashモデルを選択します。[Google AI] を選択し、Gemini API キーを入力します。API キーを確認する方法の詳細については、Gemini API キーを使用するをご覧ください。
agent.pyファイルの内容を次の 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]), )
- アプリケーションを保存するディレクトリ(例:
flight-assistant-appディレクトリで次のコマンドを実行して、アプリケーションを起動し、http://127.0.0.1:8000で ADK ウェブサーバーにアクセスします。adk web --port 8000helloなどのテキストを入力して、エージェントとのやり取りを開始します。ADK エージェントは一般的な質問に回答し、必要な MCP ツールを呼び出します。
フライトに関する次の質問を入力します。
How many flights depart from the west side?この質問に答えるために MCP ツールが呼び出されます。ただし、
the westという用語は曖昧で、空港が指定されていないため、MCP ツールは曖昧さ回避の質問を返します。エージェントはこの質問を使用して回答を作成します。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?エージェント用に生成されたクエリ テンプレートと同様の質問を入力します。
Help me find flights from San Francisco that avoid the evening rush hour.MCP ツールは、先ほど追加したエージェント コンテキストに基づいて、
evening trafficが午後 5 時から午後 7 時の間に発生することを認識します。MCP ツールは、エージェントがレスポンスの構築に使用する関連データを返します。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
エージェントのパフォーマンスを反復する
ADK ウェブ UI を使用すると、Gemini データ分析の QueryData MCP ツールからのリクエストとレスポンスを検査できます。このレスポンスを使用して、生成された SQL クエリ、結果セット、インテントの説明、曖昧さ回避の質問、自然言語の回答などのツール レスポンスを観察し、エージェントのレスポンスの正確性を確認できます。
たとえば、先ほど入力した入力テキスト How many flights depart from the west side? の場合は、エージェント バブルをクリックします。左側のナビゲーションの [イベント] タブで、functionResponse を展開して次のレスポンスを確認します。
"{"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?"]}"
回答の精度を高める
追加のコンテキストを追加することで、Gemini データ分析の QueryData ツールからのレスポンスの精度を継続的に高めることができます。Gemini CLI を使用してコンテキストを生成し、更新されたエージェント コンテキストを既存の flights-assistant エージェントにアップロードします。詳細については、Gemini CLI を使用してコンテキストを構築するをご覧ください。コンソールは、新しいコンテキストをアップロードするとすぐに取り込みます。これにより、アプリケーションのダウンタイムなしでエージェントの精度を高めることができます。
複数のエージェント
開発環境では、tools.yaml ファイル内のツールに個別の名前を割り当てることで、複数のエージェント コンテキストで A/B テストを実施できます。たとえば、cloud_gda_query_tool_v1 や cloud_gda_query_tool_v2 など、異なる名前の 2 つの cloud-gemini-data-analytics-query ツールを定義することで、一意の tools.yaml 構成を作成できます。この設定により、対応するツール名を選択して必要なエージェント コンテキスト バージョンをプログラムで選択するアプリケーション ロジックを実装できます。
次の例 tools.yaml は、データベース ソースに複数のエージェントを設定する方法を示しています。
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: ...
次のように置き換えます。
PROJECT_ID: 実際の Cloud de Confiance by S3NS プロジェクト ID。V1_YOUR_DATA_AGENT_CONTEXT_SET_ID: バージョン 1 のデータ エージェント コンテキスト セット ID。V2_YOUR_DATA_AGENT_CONTEXT_SET_ID: バージョン 2 のデータ エージェント コンテキスト セット ID。
クリーンアップ
以降のセクションでは、これらのリソースとオブジェクトを削除する方法について説明します。
エージェントを削除する
インスタンスを削除する前に、作成したエージェントを削除します。
Cloud de Confiance コンソールで、[Cloud SQL] ページに移動します。
リストからインスタンスを選択します。
ナビゲーション メニューで [Cloud SQL Studio] をクリックします。
Identity and Access Management(IAM)認証を使用して Studio にログインします。
[エクスプローラ] ペインで、データ エージェントの横にある [アクションを表示] をクリックします。
[エージェントを削除しますか?] ウィンドウで、確認ボックスに
flight-assistantと入力します。[確認] をクリックします。
インスタンスの削除
始める前にで作成したインスタンスを削除すると、作成したすべてのオブジェクトも削除されます。
Cloud de Confiance コンソールで、[Cloud SQL] ページに移動します。
リストからインスタンスを選択します。
[削除] をクリックします。
インスタンス名を入力し [削除] をクリックして、インスタンスの削除を確定します。
次のステップ
- データ エージェントの概要を確認する。
- データベースのデータソースのデータ エージェント コンテキストを定義する方法を確認する。