Leveraging the Google Agent Development Kit (ADK) and the underlying Gemini LLM to build low code in the Python programming language deployed securely to Google Cloud Run.
Python Version Management
One of the downsides of the wide deployment of Python has been managing the language versions across platforms and maintaining a supported version.
The pyenv tool enables deploying consistent versions of Python:
GitHub - pyenv/pyenv: Simple Python version management
As of writing — the mainstream python version is 3.13. To validate your current Python:
xbill@penguin:~$ python --version
Python 3.13.12
xbill@penguin:~$ pyenv version
3.13.12 (set by /home/xbill/.pyenv/version)
Gemini CLI
If not pre-installed you can download the Gemini CLI to interact with the source files and provide real-time assistance:
npm install -g @google/gemini-cli
Testing the Gemini CLI Environment
Once you have all the tools and the correct Node.js version in place- you can test the startup of Gemini CLI. You will need to authenticate with a Key or your Google Account:
gemini
Node Version Management
Gemini CLI needs a consistent, up to date version of Node. The nvm command can be used to get a standard Node environment:
Agent Development Kit
The Google Agent Development Kit (ADK) is an open-source, Python-based framework designed to streamline the creation, deployment, and orchestration of sophisticated, multi-agent AI systems. It treats agent development like software engineering, offering modularity, state management, and built-in tools (like Google Search) to build autonomous agents.
The ADK can be installed from here:
Where do I start?
The strategy for starting low code agent development is a incremental step by step approach.
The agents in the demo are based on the original code lab:
First, the basic development environment is setup with the required system variables, and a working Gemini CLI configuration.
Then, a minimal ADK Agent is built with the visual builder. Next— the entire solution is deployed to Google Cloud Run.
Setup the Basic Environment
At this point you should have a working Python environment and a working Gemini CLI installation. The next step is to clone the GitHub samples repository with support scripts:
cd ~
git clone https://github.com/xbill9/adkui
Then run init.sh from the cloned directory.
The script will attempt to determine your shell environment and set the correct variables:
source init.sh
pip install -r requirements.txt
If your session times out or you need to re-authenticate- you can run the set_env.sh script to reset your environment variables:
source set_env.sh
Variables like PROJECT_ID need to be setup for use in the various build scripts- so the set_env script can be used to reset the environment if you time-out.
Running the Agent Code
First- start the ADK interface:
xbill@penguin:~/adkui$ adk web
2026-02-21 14:31:53,810 - INFO - service_factory.py:266 - Using in-memory memory service
2026-02-21 14:31:53,811 - INFO - local_storage.py:84 - Using per-agent session storage rooted at /home/xbill/adkui
2026-02-21 14:31:53,811 - INFO - local_storage.py:110 - Using file artifact service at /home/xbill/adkui/.adk/artifacts
INFO: Started server process [25329]
INFO: Waiting for application startup.
+-----------------------------------------------------------------------------+
| ADK Web Server started |
| |
| For local testing, access at http://127.0.0.1:8000. |
+-----------------------------------------------------------------------------+
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
Running the Tool Locally
Connect to the local web interface:
Then drill into the first Agent — Agent1:
This Agent uses the google_search tool along with the current context:
Deploying to Cloud Run
After the HTTP version of the Agent has been tested locally — it can be deployed remotely to Google Cloud Run.
First- switch to the directory:
xbill@penguin:~/adkui$ python3 deploycloudrun.py
🔍 Checking if service account adkvisualbuilder@comglitn.iam.gserviceaccount.com exists...
✅ Service account adkvisualbuilder already exists.
🔐 Assigning IAM roles to adkvisualbuilder@comglitn.iam.gserviceaccount.com...
When the build is complete- an endpoint will be returned. The service endpoint in this example is :
https://agent1service-1056842563084.us-central1.run.app
The actual endpoint will vary based on your project settings.
Review Service in Cloud Run
Navigate to the Google Cloud console and search for Cloud Run -
Validate Cloud Run Deployment
Once you have the Endpoint — you can attempt a connection- navigate to in your browser:
Code Review with Gemini CLI
Gemini CLI was used to review the Agent:
✦ The Agent1 directory contains a minimal starter configuration for a Google ADK agent. Here is the code review for
Agent1/root_agent.yaml:
Agent1/root_agent.yaml
1 name: Agent1
2 model: gemini-2.5-flash
3 agent_class: LlmAgent
4 instruction: You are the root agent that coordinates other agents.
5 sub_agents: []
6 tools:
7 - name: google_search
Observations:
1. Model Selection: It uses gemini-2.5-flash. Ensure your environment and API keys support this specific model
version, as it is a cutting-edge/experimental release.
2. Instruction Clarity: The instruction is extremely brief: "You are the root agent that coordinates other
agents." However, sub_agents is currently an empty list [].
* Recommendation: If this agent is intended to be a coordinator, you should define the sub_agents it will
manage. If it's a standalone agent, update the instruction to reflect its specific task (e.g., "You are a
research assistant...").
3. Tooling: It only has access to google_search.
* Recommendation: Since it's a "root agent," it might benefit from tools that allow it to interact with the
filesystem or other services if it's meant to orchestrate the pipeline described in GEMINI.md.
Summary
The Agent Development Kit was used to visually define a basic agent and added the Google Search Tool. This Agent was tested locally, and then deployed to Google Cloud Run. The Agent was code reviewed and validated with Gemini CLI.







Top comments (0)