Inspiration

Google's Agent Development Kit (ADK) is a powerful Python framework for building AI agents with Gemini. But the developer experience has a gap: testing agents means juggling terminals, raw API calls, and manual JSON wrangling. There was no visual, integrated environment to write, test, and orchestrate agents — so I built one.

What it does

ADK Studio is an open-source development UI for Google ADK. It gives developers a single interface to:

  • Discover agents automatically — drop a Python file in backend/agents/, and ADK Studio finds it instantly with no config or registration needed.
  • Test agents interactively — click an agent, send a message, and see the streamed Gemini response in real-time via ADK's /run_sse endpoint.
  • Build multi-agent workflows visually — a drag-and-drop graph editor lets you connect agents, tools, conditions, and parallel branches, then run the whole pipeline with one click.
  • Run workflows durably — workflows execute on Temporal, providing automatic retries, crash recovery, and human-in-the-loop approval gates. Every step is persisted.

How I built it

The backend extends ADK's get_fast_api_app() — the same foundation as adk web — so all agent code works identically with the ADK CLI. Agents are auto-discovered from the filesystem.

The frontend is built with React 19, Vite, TypeScript, and Tailwind CSS 4. The visual workflow builder uses XYFlow (React Flow v12) for the graph editor, with Zustand and TanStack Query for state management.

The workflow engine uses Temporal with a dynamic interpreter pattern: a single workflow class interprets any JSON graph at runtime. No code generation, no worker restarts — any graph shape works immediately.

The whole stack runs via Docker Compose across 6 services: PostgreSQL, Temporal, Temporal UI, FastAPI backend, Temporal worker, and React frontend.

Challenges I ran into

The biggest challenge was making workflow execution truly dynamic. Rather than generating code per workflow graph, I implemented a graph interpreter that walks nodes at runtime and dispatches dynamic Temporal activities. This required careful handling of parallel fan-out, condition evaluation, and human-in-the-loop signals without sacrificing Temporal's durability guarantees.

Accomplishments that I'm proud of

  • Full ADK compatibility with zero changes to agent code
  • A drag-and-drop visual workflow builder that produces executable Temporal workflows
  • Human-in-the-loop approval gates using Temporal signals
  • Automatic agent discovery with no configuration files

What I learned

Building on top of ADK's get_fast_api_app() showed how extensible the framework is. Temporal's dynamic workflow and activity patterns are incredibly powerful for building reliable agent pipelines.

What's next for ADK Studio

  • Support for more ADK agent types and tools
  • Real-time workflow visualization during execution
  • Shareable workflow templates
  • Cloud deployment guide

Built With

Share this project:

Updates