---
title: Multi-Agent A2A with the Agent Development Kit(ADK), Azure ACI, and Gemini CLI
published: true
series: Azure
date: 2026-04-19 01:17:31 UTC
tags: googleadk,multiagent,geminicli,a2a
canonical_url: https://xbill999.medium.com/multi-agent-a2a-with-the-agent-development-kit-adk-azure-aci-and-gemini-cli-5fb746833a21
---
Leveraging the Google Agent Development Kit (ADK) and the underlying Gemini LLM to build Multi-Agent Applications with A2A protocol support using the Python programming language.

#### Aren’t There a Billion Python ADK Demos?
Yes there are.
Python has traditionally been the main coding language for ML and AI tools. The goal of this article is to provide a multi-agent test bed for building, debugging, and deploying multi-agent applications.
#### What you talkin ‘bout Willis?
So what is different about this lab compared to all the others out there?
This is one of the first deep dives into a Multi-Agent application leveraging the advanced tooling of Gemini CLI. The starting point for the demo was an existing Codelab- which was updated and re-engineered with Gemini CLI.
The original Codelab- is here:
[Building a Multi-Agent System | Google Codelabs](https://codelabs.developers.google.com/codelabs/production-ready-ai-roadshow/1-building-a-multi-agent-system/building-a-multi-agent-system#0)
#### What Is Python?
Python is an interpreted language that allows for rapid development and testing and has deep libraries for working with ML and AI:
[Welcome to Python.org](https://www.python.org/)
#### 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](https://github.com/pyenv/pyenv)
As of writing — the mainstream python version is 3.13. To validate your current Python:
```shell
python --version
Python 3.13.13
```
#### Azure Container Instances
[Azure Container Instances](https://www.google.com/search?q=Azure+Container+Instances&sca_esv=9e0af5be28576de2&rlz=1CAIWTJ_enUS1110&sxsrf=ANbL-n7o0MyASoiBM0kA0-E5qMMzLudrbw%3A1775144526115&ei=To7OadXFBoOYptQP9JuB0A8&biw=1396&bih=632&ved=2ahUKEwiIvt3awM-TAxUolYkEHTTxLJIQgK4QegYIAQgAEAM&uact=5&oq=azure+aci&gs_lp=Egxnd3Mtd2l6LXNlcnAiCWF6dXJlIGFjaTIKECMYgAQYJxiKBTILEAAYgAQYkQIYigUyBRAAGIAEMgcQABiABBgKMgUQABiABDIFEAAYgAQyBRAAGIAEMgYQABgWGB4yBhAAGBYYHjIGEAAYFhgeSOwPUABY2gxwAHgBkAEAmAGVAaABqQmqAQMwLjm4AQPIAQD4AQGYAgmgAvYJwgIKEAAYgAQYQxiKBcICDhAAGIAEGLEDGIMBGIoFwgIREC4YgAQYsQMY0QMYgwEYxwHCAhAQABiABBixAxhDGIMBGIoFwgILEC4YgAQYxwEYrwHCAg0QABiABBixAxhDGIoFwgIIEAAYgAQYsQPCAgsQABiABBixAxiDAZgDAJIHAzAuOaAHsFWyBwMwLjm4B_YJwgcFMi04LjHIBzuACAA&sclient=gws-wiz-serp) (ACI) is a serverless, managed service that allows you to run Docker containers in the cloud without managing virtual machines. It is ideal for rapid deployment, bursting, and simple, isolated applications, offering per-second billing and quick startup times. ACI supports Linux and Windows containers, with options for volume mounting and GPU resources.
More details are available here:
[https://azure.microsoft.com/en-us/products/container-instances](https://azure.microsoft.com/en-us/products/container-instances)

#### Why would I want Gemini CLI with Azure? Isn’t that a Google Thing?
Yes- Gemini CLI leverages the Google Cloud console and Gemini models but it is also open source and platform agnostic. Many applications are already cross-cloud so this enables familiar tools to be run natively on Microsoft Azure.
#### Azure Container Instance Configuration
To configure your Azure Service with the base system tools- this article provides a reference:
[MCP Development with Python, and the Azure Container Instance](https://xbill999.medium.com/mcp-development-with-python-and-the-azure-container-instance-2b7e7bbcdcfe)
#### Gemini CLI
If not pre-installed you can download the Gemini CLI to interact with the source files and provide real-time assistance:
```shell
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:
```plaintext
▝▜▄ Gemini CLI v0.33.1
▝▜▄
▗▟▀ Logged in with Google /auth
▝▀ Gemini Code Assist Standard /upgrade no sandbox (see /docs) /model Auto (Gemini 3) | 239.8 MB
```
#### 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:
[GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions](https://github.com/nvm-sh/nvm)
#### Agent Development Kit
The [Google Agent Development Kit](https://www.google.com/search?q=Google+Agent+Development+Kit&rlz=1CAIWTJ_enUS1114&oq=what+is+the+adk+google&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIICAEQABgWGB4yCAgCEAAYFhgeMggIAxAAGBYYHjIICAQQABgWGB4yCAgFEAAYFhgeMggIBhAAGBYYHjIKCAcQABgKGBYYHjINCAgQABiGAxiABBiKBTIKCAkQABiABBiiBNIBCDMxODlqMGo3qAIAsAIA&sourceid=chrome&ie=UTF-8&mstk=AUtExfB5Oo7ZHHcDEHu7aqZiPBA2l1c-QGh5dB7xkkDPIiYcn8O1Imt2IHNR7bzA6JnyDCSDCUGpGWTeBW14namlN_QqzJLLI5-px1BE9jfSxwli6njPDPERjm5pRqNP3uC6HhUKiRcTJ1T8x5LHQrCkVxylw7QWg0N8B4dQDIcWpnVX9Gc&csui=3&ved=2ahUKEwjYu-G8p-uSAxXrv4kEHUbpLo0QgK4QegQIARAB) (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:
[Agent Development Kit (ADK)](https://google.github.io/adk-docs/)
#### Agent Skills
Gemini CLI can be customized to work with ADK agents. Both an Agent Development MCP server, and specific Agent skills are available.
More details are here:
[Agent Development Kit (ADK)](https://adk.dev/tutorials/coding-with-ai/)
To get the Agent Skills in Gemini CLI:
```plaintext
> /skills list
Available Agent Skills:
- adk-cheatsheet
MUST READ before writing or modifying ADK agent code. ADK API quick reference for Python — agent types, tool definitions, orchestration
patterns, callbacks, and state management. Includes an index of all ADK documentation pages. Do NOT use for creating new projects (use
adk-scaffold).
- adk-deploy-guide
MUST READ before deploying any ADK agent. ADK deployment guide — Agent Engine, Cloud Run, GKE, CI/CD pipelines, secrets, observability, and
production workflows. Use when deploying agents to Google Cloud or troubleshooting deployments. Do NOT use for API code patterns (use
adk-cheatsheet), evaluation (use adk-eval-guide), or project scaffolding (use adk-scaffold).
- adk-dev-guide
ALWAYS ACTIVE — read at the start of any ADK agent development session. ADK development lifecycle and mandatory coding guidelines —
spec-driven workflow, code preservation rules, model selection, and troubleshooting.
- adk-eval-guide
MUST READ before running any ADK evaluation. ADK evaluation methodology — eval metrics, evalset schema, LLM-as-judge, tool trajectory
scoring, and common failure causes. Use when evaluating agent quality, running adk eval, or debugging eval results. Do NOT use for API code
patterns (use adk-cheatsheet), deployment (use adk-deploy-guide), or project scaffolding (use adk-scaffold).
- adk-observability-guide
MUST READ before setting up observability for ADK agents or when analyzing production traffic, debugging agent behavior, or improving agent
performance. ADK observability guide — Cloud Trace, prompt-response logging, BigQuery Agent Analytics, third-party integrations, and
troubleshooting. Use when configuring monitoring, tracing, or logging for agents, or when understanding how a deployed agent handles real
traffic.
- adk-scaffold
MUST READ before creating or enhancing any ADK agent project. Use when the user wants to build a new agent (e.g. "build me a search agent")
or enhance an existing project (e.g. "add CI/CD to my project", "add RAG").
```
and the ADK documentation:
```plaintext
> /mcp list
Configured MCP servers:
🟢 adk-docs-mcp (from adk-docs-ext) - Ready (2 tools)
Tools:
- mcp_adk-docs-mcp_fetch_docs
- mcp_adk-docs-mcp_list_doc_sources
```
#### Where do I start?
The strategy for starting multi agent development is a incremental step by step approach.
First, the basic development environment is setup with the required system variables, and a working Gemini CLI configuration.
Then, ADK Multi-Agent is built, debugged, and tested locally. Finally — the entire solution is deployed to Azure ACI.
#### Setup the Basic Environment
At this point you should have a working Python environment and a working Gemini CLI installation. All of the relevant code examples and documentation is available in GitHub.
The next step is to clone the GitHub repository to your local environment:
```shell
cd ~
git clone https://github.com/xbill9/gemini-cli-azure
cd mulit-aci
```
Then run **init2.sh** from the cloned directory.
The script will attempt to determine your shell environment and set the correct variables:
```shell
source init2.sh
```
If your session times out or you need to re-authenticate- you can run the **set\_env.sh** script to reset your environment variables:
```shell
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.
Finally install the packages and dependencies:
```make
make install
```
#### Verify The ADK Installation
To verify the setup, run the ADK CLI locally with the researcher agent:
```shell
xbill@penguin:~/gemini-cli-azure/multi-aci/agents$ adk run researcher
/home/xbill/.local/lib/python3.13/site-packages/google/adk/features/_feature_decorator.py:72: UserWarning: [EXPERIMENTAL] feature FeatureName.PLUGGABLE_AUTH is enabled.
check_feature_enabled()
Log setup complete: /tmp/agents_log/agent.20260418_155613.log
To access latest log: tail -F /tmp/agents_log/agent.latest.log
{"asctime": "2026-04-18 15:56:13,235", "name": "root", "levelname": "INFO", "message": "Logging initialized for researcher", "filename": "logging_config.py", "lineno": 54, "service": "researcher", "log_level": "INFO"}
{"asctime": "2026-04-18 15:56:13,236", "name": "researcher.agent", "levelname": "INFO", "message": "Initialized researcher agent with model: gemini-2.5-flash", "filename": "agent.py", "lineno": 85}
```
#### Test The ADK Web Interface
This tests the ADK agent interactions with a browser:
```shell
xbill@penguin:~/gemini-cli-azure/multi-aci/agents$ adk web --host 0.0.0.0
/home/xbill/.pyenv/versions/3.13.13/lib/python3.13/site-packages/google/adk/features/_feature_decorator.py:72: UserWarning: [EXPERIMENTAL] feature FeatureName.PLUGGABLE_AUTH is enabled.
check_feature_enabled()
2026-04-10 17:49:11,850 - INFO - service_factory.py:266 - Using in-memory memory service
2026-04-10 17:49:11,850 - INFO - local_storage.py:84 - Using per-agent session storage rooted at /home/xbill/multi-agent/agents
2026-04-10 17:49:11,850 - INFO - local_storage.py:110 - Using file artifact service at /home/xbill/multi-agent/agents/.adk/artifacts
/home/xbill/.pyenv/versions/3.13.13/lib/python3.13/site-packages/google/adk/cli/fast_api.py:198: UserWarning: [EXPERIMENTAL] InMemoryCredentialService: This feature is experimental and may change or be removed in future versions without notice. It may introduce breaking changes at any time.
credential_service = InMemoryCredentialService()
/home/xbill/.pyenv/versions/3.13.13/lib/python3.13/site-packages/google/adk/auth/credential_service/in_memory_credential_service.py:33: UserWarning: [EXPERIMENTAL] BaseCredentialService: This feature is experimental and may change or be removed in future versions without notice. It may introduce breaking changes at any time.
super(). __init__ ()
INFO: Started server process [16063]
INFO: Waiting for application startup.
+-----------------------------------------------------------------------------+
| ADK Web Server started |
| |
| For local testing, access at http://0.0.0.0:8000. |
+-----------------------------------------------------------------------------+
```
Then use the web interface — either on the local interface **127.0.0.1** or the catch-all web interface **0.0.0.0** -depending on your environment:

Special note for Google Cloud Shell Deployments- add a CORS **allow\_origins** configuration exemption to allow the ADK agent to run:
```shell
adk web --host 0.0.0.0 --allow_origins 'regex:.*'
```
#### Multi Agent Design
The multi-agent deployment consists of 5 agents:
- Researcher
- Judge
- Orchestrator
- Content Builder
- Course Builder
An overview of the multi-agent system can be found here:
[Multi-Agent A2A with the Agent Development Kit(ADK), Cloud Run, Agent Skills, and Gemini CLI](https://medium.com/google-cloud/multi-agent-a2a-with-the-agent-development-kit-adk-cloud-run-and-gemini-cli-52f8be838ad6)
#### Running/Testing/Debugging Locally
The main Makefile has been extended with extensive targets for managing the agents on the local development environment.
The key targets include:
```make
xbill@penguin:~/gemini-cli-azure/multi-aci$ make help
Available commands:
--- Local Development ---
install - Install all dependencies for root, agents, and app
start - Start all services locally (alias for start-local)
stop - Stop all local services (alias for stop-local)
run - Start all services locally
status - Show status of local services
local - Show local service URLs
test - Run all tests (pytest)
lint - Run linting checks (ruff)
--- Azure ACI ---
deploy-aci - Deploy all services to Azure Container Instances (ACI)
destroy-aci - Delete ACI resources
status-aci - Show ACI status (alias: az-status)
endpoint-aci - Show ACI service endpoint (alias: endpoint)
test-e2e-aci - Run ACI E2E test
--- Shared Azure ---
az-login - Login to Azure CLI
acr-login - Login to ACR
acr-create - Create/Verify ACR and Resource Group
clean - Remove caches and logs
```
First check for local running agents:
```shell
> make status
✦ I will run the make status command to check the status of your local services.
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ Shell Running 'make status' to check local services. │
│ │
│ Checking status of locally running agents and servers... │
│ --- Network Status --- │
│ No services listening on expected ports (8000-8004, 5173). │
│ --- Process Status --- │
│ No matching processes found. │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ No local services are currently running.
```
Then all the agents can be started together:
```shell
make start
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ Shell Starting all local services in the background. │
│ │
│ Stopping any existing agent and server processes... │
│ Starting all agents in background... │
│ Waiting for sub-agents to start... │
│ All agents started. Logs: researcher.log, judge.log, content_builder.log, orchestrator.log │
│ Starting App Backend in background... │
│ Starting Frontend dev server in background... │
│ All services started. Logs: researcher.log, judge.log, content_builder.log, orchestrator.log, backend.log, frontend.log │
│ Frontend: http://localhost:5173 │
│ Backend: http://localhost:8000 │
│
make status
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ Shell Checking status of local services. │
│ │
│ ... first 22 lines hidden (Ctrl+O to show) ... │
│ dge/.well-known/agent-card.json; \ export CONTENT_BUILDER_AGENT_CARD_URL=http://localhost:8003/a2a/content_builder/.well-known/agent-card.jso │
│ n; \ /home/xbill/.pyenv/shims/python3 -m shared.adk_app --host 0.0.0.0 --port 8004 agents/orchestrator" │
│ xbill 14269 9.3 3.1 248416 148664 ? S 20:27 0:02 /home/xbill/.pyenv/versions/3.13.13/bin/python3 -m shared.adk_app --host 0.0 │
│ .0.0 --port 8004 agents/orchestrator │
│ xbill 14273 0.0 0.0 2584 1668 ? S 20:27 0:00 /bin/sh -c /bin/bash -c "source .env 2>/dev/null || true; \ export AGENT_SER │
│ VER_URL=http://localhost:8004; \ export AGENT_NAME=orchestrator; \ export PORT=8000; \ cd app && /home/xbill/.pyenv/shims/python3 main.py" │
│ xbill 14275 0.0 0.0 6940 3312 ? S 20:27 0:00 /bin/bash -c source .env 2>/dev/null || true; export AGENT_SERVER_URL=http:/ │
│ /localhost:8004; export AGENT_NAME=orchestrator; export PORT=8000; cd app && /home/xbill/.pyenv/shims/python3 main.py │
│ xbill 14278 8.4 3.1 1345296 144520 ? Sl 20:27 0:02 /home/xbill/.pyenv/versions/3.13.13/bin/python3 main.py │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ The local agents and the backend server are running and listening on ports 8000-8004. The Vite dev server (port 5173) is still not appearing in the
network status.
```
The entire project can be linted and tested as unit:
```shell
> make lint
✦ I will run the make lint command to confirm that all linting checks pass.
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ Shell Run linting checks to confirm they pass. │
│ │
│ ruff check . │
│ All checks passed! │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ make lint completed successfully with no errors.
> make test
✦ I will run the project's test suite using make test.
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ Shell Run all tests using pytest. │
│ │
│ ... first 41 lines hidden (Ctrl+O to show) ... │
│ agents/orchestrator/agent.py:294 │
│ /home/xbill/gemini-cli-azure/multi-aci/agents/orchestrator/agent.py:294: UserWarning: [EXPERIMENTAL] RemoteA2aAgent: ADK Implementation for │
│ A2A support (A2aAgentExecutor, RemoteA2aAgent and corresponding supporting components etc.) is in experimental mode and is subject to breaki │
│ ng changes. A2A protocol and SDK are themselves not experimental. Once it's stable enough the experimental mode will be removed. Your feedbac │
│ k is welcome. │
│ content_builder = RemoteA2aAgent( │
│ │
│ -- Docs: [https://docs.pytest.org/en/stable/how-to/capture-warnings.html](https://docs.pytest.org/en/stable/how-to/capture-warnings.html) │
│ ====================================================== 30 passed, 4 warnings in 7.71s ======================================================= │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ make test passed all 30 tests successfully.
```
And end to end tested:
```json
✓ Shell Running the end-to-end tests for the project. │
│ │
│ Running end-to-end test against http://localhost:8000... │
│ {"type": "progress", "text": "\ud83d\ude80 Connected to backend, starting research..."} │
│ {"type": "progress", "text": "\ud83d\ude80 Starting the course creation pipeline..."} │
│ {"type": "progress", "text": "\ud83d\udd0d Research is starting..."} │
│ {"type": "progress", "text": "\ud83d\udd0d Researcher is gathering information..."} │
│ {"type": "progress", "text": "\u2696\ufe0f Judge is evaluating findings..."} │
│ {"type": "progress", "text": "\u2696\ufe0f Judge is evaluating findings..."} │
│ {"type": "progress", "text": "\u270d\ufe0f Building the final course content..."} │
│ {"type": "progress", "text": "\u270d\ufe0f Content Builder is writing the course..."} │
```
Then connect to the local front end:

And the entire agent system will run in the local environment:

#### Local Logging / Debugging
Gemini CLI has full access to the local agent logs for debugging and troubleshooting:
```plaintext
✦ I've analyzed the logs from your e2e run. All agents (researcher, judge, content_builder, orchestrator) and both frontend and backend services
started successfully. The course creation pipeline ran as expected: the orchestrator initiated the "history of the internet" course, the researcher
gathered information, the judge approved it, and the content builder generated the course content.
```
#### Deploying to Azure ACI
The project level Makefile has targets for managing the Agent deployment to serverless endpoints:
```shell
xbill@penguin:~/gemini-cli-azure/multi-aci$ az login
A web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.
```
A utility script check the deployment to Azure ACI:
```shell
xbill@penguin:~/gemini-cli-azure/multi-aci$ make status-aci
./aci/status-aci.sh
Checking Azure Container Instances status in adk-rg-aci...
(ResourceGroupNotFound) Resource group 'adk-rg-aci' could not be found.
Code: ResourceGroupNotFound
Message: Resource group 'adk-rg-aci' could not be found.
make: *** [Makefile:202: status-aci] Error 3
```
You can then deploy the services:
```shell
xbill@penguin:~/gemini-cli-azure/multi-aci$ make deploy
./aci/deploy-aci.sh
=== Azure ACI Deployment ===
Azure Location: westus2
Resource Group: adk-rg-aci
ACR Name: adkacrpenguin
=============================
Ensuring Resource Group exists...
Location Name
---------- ----------
westus2 adk-rg-aci
Ensuring ACR exists...
✦ I have successfully rebuilt the ACI deployment by consolidating the microservices into a single Azure Container
Group and enabling Log Analytics integration.
```
Once the containers are deployed- you can then get the endpoint:
```shell
And check the endpoint:
│ ✓ Shell make aci-status │
│ │
│ ./aci/status-aci.sh │
│ Checking Azure Container Instances status in adk-rg-aci... │
│ Name FQDN IP │
│ -------------------- ------------------------------------------------------ -------------- │
│ course-creator-group course-creator-group-penguin.westus2.azurecontainer.io 172.179.100.61 │
│
xbill@penguin:~/gemini-cli-azure/multi-aci$ make endpoint
./aci/endpoint-aci.sh
--- Azure ACI Endpoint ---
http://course-creator-group-penguin.westus2.azurecontainer.io:8080/
xbill@penguin:~/gemini-cli-azure/multi-aci$
```
The service will be visible in the Azure console:

#### Test End to End in ACI
The entire agent system is tested on the remote Azure endpoint:
```shell
✦ The make endpoint-aci command has successfully retrieved and displayed the public URL for the Azure Container App.
> make e2e-test-aci
✦ The end-to-end test against the newly deployed Azure Container Group was successful. The system correctly
orchestrated the research, evaluation, and content generation phases, producing a structured course on the
history of the internet.
```
#### Running the Web Interface
Start a connection to the Cloud Run deployed app:
```plaintext
http://course-creator-group-penguin.westus2.azurecontainer.io:8080/
```
Then connect to the app :

Then use online course generator:

#### Final Gemini CLI Code Review
As a final step — Gemini CLI was used for a full code review of the project:
```plaintext
✦ I have successfully rebuilt the ACI deployment by consolidating the microservices into a single Azure Container
Group and enabling Log Analytics integration.
Summary of Actions
- Cleanup: Destroyed the five individual container instances to transition to a grouped deployment.
- Image Rebuild: Built and pushed new versions of all five microservice images (researcher, judge,
content-builder, orchestrator, and course-creator) to the Azure Container Registry with the latest tag.
- Logging Configuration: Successfully retrieved the workspace ID and primary key for the existing
adk-log-workspace Log Analytics workspace.
- Group Deployment: Deployed the course-creator-group container group using the generated
aci-container-group.yaml, ensuring all containers share the same network and lifecycle while streaming logs
to Azure Monitor.
Deployment Details
- Container Group Name: course-creator-group
- Resource Group: adk-rg-aci
- Region: westus2
- Public URL: http://course-creator-group-penguin.westus2.azurecontainer.io:8080
(http://course-creator-group-penguin.westus2.azurecontainer.io:8080)
- Logging: Integrated with Log Analytics workspace adk-log-workspace.
Key Achievements
- Container Group Deployment: The multi-agent system is now running efficiently as a single container group in
ACI, reducing overhead and simplifying inter-agent communication via localhost.
- Integrated Logging: Log Analytics is active, providing centralized monitoring for all microservices.
- Verified Functionality: The e2e-test-aci confirmed that the orchestrator can successfully communicate with
the sub-agents and the main application remains fully functional in the Azure environment.
The deployment is now fully optimized and verified.
```
#### Summary
The Agent Development Kit (ADK) was used to build a multi-agent system with A2A support using the Gemini Flash LLM Model. This application was tested locally with Gemini CLI and then deployed to Azure ACI. Several key take-aways and lessons learned were summarized from debugging and testing the multi-agent system- including deep log reviews. Finally, Gemini CLI was used for a complete project code review.