From 9d91e472e4ee5ab62c2c40e79115044ea5c6e945 Mon Sep 17 00:00:00 2001 From: Yeesian Ng Date: Fri, 9 Jan 2026 14:59:13 -0500 Subject: [PATCH 1/5] Create quickstart_adk_example.py --- .../quickstart_adk_example.py | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 generative_ai/reasoning_engine/quickstart_adk_example.py diff --git a/generative_ai/reasoning_engine/quickstart_adk_example.py b/generative_ai/reasoning_engine/quickstart_adk_example.py new file mode 100644 index 00000000000..d8094e5aa98 --- /dev/null +++ b/generative_ai/reasoning_engine/quickstart_adk_example.py @@ -0,0 +1,59 @@ +import vertexai +import os + +PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT") +LOCATION = os.getenv("GOOGLE_CLOUD_LOCATION") + +client = vertexai.Client(project=PROJECT_ID, location=LOCATION) + +def get_exchange_rate( + currency_from: str = "USD", + currency_to: str = "EUR", + currency_date: str = "latest", +): + """Retrieves the exchange rate between two currencies on a specified date.""" + import requests + + response = requests.get( + f"https://api.frankfurter.app/{currency_date}", + params={"from": currency_from, "to": currency_to}, + ) + return response.json() + +def quickstart_adk_example(staging_bucket: str) -> reasoning_engines.ReasoningEngine: + + from google.adk.agents import Agent + from vertexai import agent_engines + + agent = Agent( + model="gemini-2.0-flash", + name='currency_exchange_agent', + tools=[get_exchange_rate], + ) + + app = agent_engines.AdkApp(agent=agent) + + async for event in app.async_stream_query( + user_id="USER_ID", + message="What is the exchange rate from US dollars to SEK today?", + ): + print(event) + + remote_agent = client.agent_engines.create( + agent=app, + config={ + "requirements": ["google-cloud-aiplatform[agent_engines,adk]"], + "staging_bucket": "STAGING_BUCKET", + } + ) + + events = [] + async for event in remote_agent.async_stream_query( + user_id="USER_ID", + message="What is the exchange rate from US dollars to SEK today?", + ): + print(event) + events.append(event) + + remote_agent.delete(force=True) + return events From 9c654f51779407da383e6b869cd0b1a7a799765a Mon Sep 17 00:00:00 2001 From: Yeesian Ng Date: Fri, 9 Jan 2026 15:21:44 -0500 Subject: [PATCH 2/5] Update quickstart_adk_example.py with region tags --- .../reasoning_engine/quickstart_adk_example.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/generative_ai/reasoning_engine/quickstart_adk_example.py b/generative_ai/reasoning_engine/quickstart_adk_example.py index d8094e5aa98..e0f8b4841da 100644 --- a/generative_ai/reasoning_engine/quickstart_adk_example.py +++ b/generative_ai/reasoning_engine/quickstart_adk_example.py @@ -6,6 +6,7 @@ client = vertexai.Client(project=PROJECT_ID, location=LOCATION) +# [START agentengine_quickstart_adk_tool] def get_exchange_rate( currency_from: str = "USD", currency_to: str = "EUR", @@ -19,9 +20,11 @@ def get_exchange_rate( params={"from": currency_from, "to": currency_to}, ) return response.json() +# [END agentengine_quickstart_adk_tool] def quickstart_adk_example(staging_bucket: str) -> reasoning_engines.ReasoningEngine: + # [START agentengine_quickstart_adk_agent_init] from google.adk.agents import Agent from vertexai import agent_engines @@ -32,27 +35,34 @@ def quickstart_adk_example(staging_bucket: str) -> reasoning_engines.ReasoningEn ) app = agent_engines.AdkApp(agent=agent) - + # [END agentengine_quickstart_adk_agent_init] + + # [START agentengine_quickstart_adk_testlocally] async for event in app.async_stream_query( user_id="USER_ID", message="What is the exchange rate from US dollars to SEK today?", ): print(event) - + # [END agentengine_quickstart_adk_testlocally] + + # [START agentengine_quickstart_adk_deploy] remote_agent = client.agent_engines.create( agent=app, config={ "requirements": ["google-cloud-aiplatform[agent_engines,adk]"], - "staging_bucket": "STAGING_BUCKET", + "staging_bucket": staging_bucket, } ) + # [END agentengine_quickstart_adk_deploy] events = [] + # [START agentengine_quickstart_adk_testremotely] async for event in remote_agent.async_stream_query( user_id="USER_ID", message="What is the exchange rate from US dollars to SEK today?", ): print(event) + # [END agentengine_quickstart_adk_testremotely] events.append(event) remote_agent.delete(force=True) From dfcecdb3128d9379f4cbbb54d7a8fcd6ac07686f Mon Sep 17 00:00:00 2001 From: Yeesian Ng Date: Mon, 12 Jan 2026 10:22:18 -0500 Subject: [PATCH 3/5] Apply suggestions from code review Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- generative_ai/reasoning_engine/quickstart_adk_example.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/generative_ai/reasoning_engine/quickstart_adk_example.py b/generative_ai/reasoning_engine/quickstart_adk_example.py index e0f8b4841da..2e32f3d2ae9 100644 --- a/generative_ai/reasoning_engine/quickstart_adk_example.py +++ b/generative_ai/reasoning_engine/quickstart_adk_example.py @@ -11,7 +11,7 @@ def get_exchange_rate( currency_from: str = "USD", currency_to: str = "EUR", currency_date: str = "latest", -): +) -> dict: """Retrieves the exchange rate between two currencies on a specified date.""" import requests @@ -22,7 +22,7 @@ def get_exchange_rate( return response.json() # [END agentengine_quickstart_adk_tool] -def quickstart_adk_example(staging_bucket: str) -> reasoning_engines.ReasoningEngine: +async def quickstart_adk_example(staging_bucket: str) -> list: # [START agentengine_quickstart_adk_agent_init] from google.adk.agents import Agent @@ -30,7 +30,7 @@ def quickstart_adk_example(staging_bucket: str) -> reasoning_engines.ReasoningEn agent = Agent( model="gemini-2.0-flash", - name='currency_exchange_agent', + name="currency_exchange_agent", tools=[get_exchange_rate], ) @@ -62,8 +62,8 @@ def quickstart_adk_example(staging_bucket: str) -> reasoning_engines.ReasoningEn message="What is the exchange rate from US dollars to SEK today?", ): print(event) - # [END agentengine_quickstart_adk_testremotely] events.append(event) + # [END agentengine_quickstart_adk_testremotely] remote_agent.delete(force=True) return events From b52e0a5fe3a3ccb16c1cd241fa77277a93cd5a54 Mon Sep 17 00:00:00 2001 From: Yeesian Ng Date: Mon, 12 Jan 2026 10:23:48 -0500 Subject: [PATCH 4/5] Update quickstart_adk_example.py --- generative_ai/reasoning_engine/quickstart_adk_example.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generative_ai/reasoning_engine/quickstart_adk_example.py b/generative_ai/reasoning_engine/quickstart_adk_example.py index 2e32f3d2ae9..87c24d9554b 100644 --- a/generative_ai/reasoning_engine/quickstart_adk_example.py +++ b/generative_ai/reasoning_engine/quickstart_adk_example.py @@ -55,8 +55,8 @@ async def quickstart_adk_example(staging_bucket: str) -> list: ) # [END agentengine_quickstart_adk_deploy] - events = [] # [START agentengine_quickstart_adk_testremotely] + events = [] async for event in remote_agent.async_stream_query( user_id="USER_ID", message="What is the exchange rate from US dollars to SEK today?", From 6c75f28947dad26dd0f1cd738345c8c0ca2be6ec Mon Sep 17 00:00:00 2001 From: Yeesian Ng Date: Mon, 12 Jan 2026 10:25:06 -0500 Subject: [PATCH 5/5] Update quickstart_adk_example.py --- generative_ai/reasoning_engine/quickstart_adk_example.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/generative_ai/reasoning_engine/quickstart_adk_example.py b/generative_ai/reasoning_engine/quickstart_adk_example.py index 87c24d9554b..844a803e9da 100644 --- a/generative_ai/reasoning_engine/quickstart_adk_example.py +++ b/generative_ai/reasoning_engine/quickstart_adk_example.py @@ -64,6 +64,9 @@ async def quickstart_adk_example(staging_bucket: str) -> list: print(event) events.append(event) # [END agentengine_quickstart_adk_testremotely] - + + # [START agentengine_quickstart_adk_cleanup] remote_agent.delete(force=True) + # [END agentengine_quickstart_adk_cleanup] + return events