Multi-agent order operations assistant: Google ADK agents on Cloud Run

Multi-agent order operations assistant: Google ADK agents on Cloud Run Multi-agent order operations assistant: Google ADK agents on Cloud Run An ADK coordinator with local sub-agents calls remote ADK specialist agents over A2A; every agent is its own Cloud Run service with its own service account, Gemini on Vertex AI and tools via MCP Toolbox Google Cloud Project: ops-agents-prod Region us-central1 Coordinator service Inventory service Shipping service safe prompt 5. Prompts that pass Model Armor go to Gemini on Vertex AI; the agent chooses tools or sub-agents from the model's reply5 SQL 8. MCP Toolbox for Databases → AlloyDB (SQL)8 sign in spans chat 1. An operator asks a question in the chat UI; Identity-Aware Proxy authenticates the user1 run (session) 2. The UI calls the coordinator's ADK API server with the user's session id; Cloud Run requires an ID token (roles/run.invoker)2 transfer 3. The coordinator delegates planning and summarising to local sub-agents running in the same process3 3. Coordinator agent → Summarizer sub-agent3 screen 4. Coordinator agent → Model Armor (screen)4 A2A 6. The coordinator calls the remote inventory agent over the A2A protocol (RemoteA2aAgent), authenticating with a Google ID token6 A2A 6. Coordinator agent → Shipping agent (A2A)6 MCP tool call 7. Specialist agents reach the database only through MCP Toolbox, which holds the connection and the allowed queries7 7. Shipping agent → MCP Toolbox for Databases7 secrets Operations staff (Users) Operations staff web UI Identity-Aware Proxy (Identity-Aware Proxy) Identity-Aware Proxy sign-in, IAM Chat UI (Cloud Run) Chat UI Cloud Run, ADK API server client Coordinator agent (Agents (category)) Coordinator agent ADK root_agent, LlmAgent Planner sub-agent (Agents (category)) Planner sub-agent local, in process Summarizer sub-agent (Agents (category)) Summarizer sub-agent local, in process Model Armor (Data Loss Prevention API) Model Armor prompt and response screening Gemini on Vertex AI (Vertex AI) Gemini on Vertex AI LLM calls, session and memory Inventory agent (Agents (category)) Inventory agent A2A server Shipping agent (Agents (category)) Shipping agent A2A server Cloud Storage (Cloud Storage) Cloud Storage ADK artifacts MCP Toolbox for Databases (Cloud Run) MCP Toolbox for Databases Cloud Run, tools.yaml AlloyDB (AlloyDB) AlloyDB orders, inventory Secret Manager (Secret Manager) Secret Manager tool credentials Cloud Trace (Trace) Cloud Trace OpenTelemetry spans Cloud Logging (Cloud Logging) Cloud Logging agent events

Flow

  1. 1An operator asks a question in the chat UI; Identity-Aware Proxy authenticates the user
  2. 2The UI calls the coordinator's ADK API server with the user's session id; Cloud Run requires an ID token (roles/run.invoker)
  3. 3The coordinator delegates planning and summarising to local sub-agents running in the same process
  4. 3Coordinator agent → Summarizer sub-agent
  5. 4Coordinator agent → Model Armor (screen)
  6. 5Prompts that pass Model Armor go to Gemini on Vertex AI; the agent chooses tools or sub-agents from the model's reply
  7. 6The coordinator calls the remote inventory agent over the A2A protocol (RemoteA2aAgent), authenticating with a Google ID token
  8. 6Coordinator agent → Shipping agent (A2A)
  9. 7Specialist agents reach the database only through MCP Toolbox, which holds the connection and the allowed queries
  10. 7Shipping agent → MCP Toolbox for Databases
  11. 8MCP Toolbox for Databases → AlloyDB (SQL)