# Copyright 2026 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import os from google.adk.agents.llm_agent import LlmAgent from google.adk.tools.bigquery.bigquery_credentials import BigQueryCredentialsConfig from google.adk.tools.bigquery.bigquery_toolset import BigQueryToolset from google.adk.tools.bigquery.config import BigQueryToolConfig from google.adk.tools.bigquery.config import WriteMode import google.auth # Check necessary environment variables if not (google_cloud_project_id := os.getenv("GOOGLE_CLOUD_PROJECT")): raise ValueError( "GOOGLE_CLOUD_PROJECT environment variable is not set. Please set it" " to the GCP project ID where your BigQuery jobs would be run." ) # Define an appropriate application name BIGQUERY_AGENT_NAME = "adk_eval_bigquery_agent" # Define BigQuery tool config with write mode set to allowed. Note that this is # only to demonstrate the full capability of the BigQuery tools. In production # you may want to change to BLOCKED (default write mode, effectively makes the # tool read-only) or PROTECTED (only allows writes in the anonymous dataset of a # BigQuery session) write mode. tool_config = BigQueryToolConfig( write_mode=WriteMode.BLOCKED, application_name=BIGQUERY_AGENT_NAME, compute_project_id=google_cloud_project_id, ) # Initialize the tools to use the application default credentials. # https://cloud.google.com/docs/authentication/provide-credentials-adc application_default_credentials, _ = google.auth.default() credentials_config = BigQueryCredentialsConfig( credentials=application_default_credentials ) bigquery_toolset = BigQueryToolset( credentials_config=credentials_config, bigquery_tool_config=tool_config ) # The variable name `root_agent` determines what your root agent is for the # debug CLI root_agent = LlmAgent( model="gemini-2.5-flash", name=BIGQUERY_AGENT_NAME, description=( "Agent to answer questions about BigQuery data and models and execute" " SQL queries." ), instruction=f"""\ You are a data science agent with access to several BigQuery tools. Make use of those tools to answer the user's questions. You must use the project id {google_cloud_project_id} for running SQL queries and generating data insights """, tools=[bigquery_toolset], )