Four ADK Agents Coordinate on Cloud Run
Marc, Annie, and Khanh built two user journeys for Thread Khan, a fictional retail brand. The virtual fitting room lets shoppers upload a photo and see how a product looks on them. The styling agent suggests outfits based on occasion and location. Both delegate to a catalog agent that queries a product database. The styling agent also uses an image generation tool directly. The back end runs as a single Go binary on Cloud Run. The Flutter front end calls the ADK REST API over HTTP.
Sessions and Artifacts Keep Responses Lightweight
The back end follows a three-step pattern. Step one creates or reuses a session ID. The fitting room creates a new session each time. The styling service reuses the same session ID to remember feedback. Step two sends a POST request to the run endpoint with app name, session ID, and a message containing text and base64-encoded images. Step three fetches generated images from Google Cloud Storage using artifact names. Responses stay lightweight because the agent returns only a reference name.
ADK Handles Tool Calling and Multi-Agent Delegation
ADK is an open-source framework from Google that turns Gemini models into agents. It handles tool calling, multi-agent coordination, sessions, and memory. Each agent follows a loop: receive a message, think, call a tool or delegate, then respond. Sessions have a shared key-value store. All agents can read or write to it. The runner executes everything, handling tool calls, delegations, state updates, and streaming responses. The same binary deploys to Cloud Run.
Flutter UI Uses Providers and MVVM Architecture
The Flutter app runs on web, iOS, and Android. It uses providers to manage state and decouple data from the UI. The fitting room screen uses an animated switcher to route between three phases: asking for a photo, loading, and displaying the result. The styling screen shows a carousel of outfit cards. A feedback chat bar lets shoppers refine suggestions. The styling provider calls the ADK styling service, which reuses the session ID to remember feedback across turns.
Notable Quotes
“It is the difference between a raw model call and a production-ready system.” Marc Dougherty · ▶ Watch (7:57)
“No direct communication needed. State acts like shared memory.” Marc Dougherty · ▶ Watch (8:53)
Key Takeaways
- Four ADK agents coordinate on Cloud Run using a single Go binary.
- Sessions and artifact storage keep HTTP responses lightweight.
- Flutter providers and MVVM architecture decouple UI from business logic.