Course Creator (A2A multi-service ADK)
Multi-agent course generator splits across Cloud Run services via A2A protocol.
Course Creator is an AI agent system that researches a topic, judges the research for completeness, and generates structured course material. The technically interesting part isn't the workflow — it's that each agent runs as its own Cloud Run microservice and talks to the others over Google's A2A protocol.
Most multi-agent demos run inside one Python process. One script imports all the agents, they share memory, one runtime, one container. It's how almost every tutorial does it.
The downside in production is that one bug crashes the whole pipeline. You can't scale only the slow agent. Swapping an agent for a different model means rewriting imports across the codebase. Tight coupling.
So Course Creator went the other direction. Each specialized agent — Researcher, Judge, Content Builder, Orchestrator — runs as a separate Cloud Run service. They communicate over A2A (Agent-to-Agent), which is JSON-RPC over HTTP. Each agent publishes an "agent card" at /.well-known/agent-card.json describing what it does, what inputs it takes, and what it returns.
The architecture:
- Researcher uses ADK's
google_search_toolto gather information - Judge reviews the research and can fail it
- Content Builder turns approved research into course material
- Orchestrator wires them together with
LoopAgentandRemoteA2aAgent - A separate Cloud Run service hosts the FastAPI frontend
The hardest part wasn't the agent logic. It was the auth between services — RemoteA2aAgent needs httpx clients carrying the right Cloud Run service-account token, not API keys. That took longer than building all the agent prompts combined.
What the architecture buys is replaceability. Swapping the Gemini Researcher for a Claude Researcher next quarter is one URL change in the Orchestrator. No rewrite anywhere else.