# Building EventMocha: An Autonomous Multi-Agent Assistant with Google ADK, Gemini Live Voice, and Workspace Automation

> Source: <https://dev.to/karthikvrao/building-eventmocha-an-autonomous-multi-agent-assistant-with-google-adk-gemini-live-voice-and-1bei>
> Published: 2026-08-31 22:05:31+00:00

🚀 **This app was built for entering the #AllThingsAgentic Hackathon**

##
⚡ TL;DR

-
**What it is**: **EventMocha** ☕ is an autonomous, full-stack multi-agent assistant that transforms high-level event concepts into complete, production-ready promotional campaigns and scheduled calendar workflows in real time.
-
**Key Capabilities**:
- 🎨
**Multimodal Generation**: Interleaved HTML copy, Imagen visual posters, and cinematic Veo video teasers.
- 🔄
**Targeted Revisions**: Visual reference conditioning, copy preservation, and full version history tracking (`v1`

→ `v2`

).
- 📅
**Workspace Automation**: Automated creation of Google Calendar events, Google Tasks, and Gmail drafts via Model Context Protocol (MCP).
- 🎙️
**Live Voice**: Real-time bidirectional voice conversation via Gemini Live API + Web AudioWorklets.

-
**Core Tech**: Google ADK (Python), Gemini 3.7 Flash, Gemini 2.5 Flash, Imagen, Veo, React 19, FastAPI, Cloud Firestore, GCS.

##
💡 The Problem: The Fragmented Chaos of Event Planning

Planning any event — whether a 500-person developer conference, a community workshop, or a product launch — usually requires juggling multiple disconnected tools:

- Brainstorming themes and agendas in note apps.
- Generating copy in text-only chatbots.
- Designing graphics and posters in separate design software.
- Rendering video teasers.
- Manually entering calendar blocks, task checklists, and email invite drafts.

When feedback arrives (*"Can we make the poster darker and update the date?"*), the entire manual cycle repeats.

I built **EventMocha** to bridge this gap. It acts as an autonomous creative agency and coordinator in a single continuous session.

##
🏗️ Multi-Agent Architecture

EventMocha is built on a modular multi-agent system powered by the **Google Agent Development Kit (ADK)** and the **Gemini 2.5 / 3.7 Flash** model family.

##
🔍 Under the Hood: Key Engineering Highlights

###
1. 🎨 Symmetrical Multimodal Pipeline (Imagen & Veo)

To keep persistent session state lightweight and prevent token bloat, I designed a symmetrical `after_model_callback`

architecture:

-
**Copy & Placeholder Generation**: Specialist agents (`MultimodalContentCreator`

and `VideoGenerator`

) output rich HTML copy alongside placeholders.
-
**Callback Media Generation**: An asynchronous callback intercepts these placeholders, triggers Google GenAI / Imagen for visuals and Google Veo for 720p HD video teasers, uploads assets directly to Cloud Storage (GCS), and injects live media URLs into the rendered card.

###
2. 🔄 Targeted Revisions with Version Lineage Tracking

One of the toughest challenges in creative AI is the **revision loop**. If a user asks to tweak one specific asset, you shouldn't regenerate unrelated assets or discard approved copy.

-
**Deterministic Staging**: The `stage_revision_targets`

tool matches natural language critique to specific assets by title, category, or ID.
-
**Visual Reference Conditioning**: When revising an image, previous version image bytes are passed to Imagen as conditioning context to preserve composition and character consistency.
-
**Copy Preservation & Reuse**: If only copy changes, existing media URLs are preserved without triggering expensive re-rendering.
-
**Version History (**`v1`

→ `v2`

→ `v3`

): Every asset maintains complete lineage in Firestore and session state, allowing users to toggle between historical versions in the UI.

###
3. 📅 Real-World Action via Google Workspace MCP

Content creation is paired with immediate execution. EventMocha integrates with a dedicated FastMCP server over HTTP:

- Automatically schedules
**Google Calendar** events with proper timezone offsets.
- Populates actionable items in
**Google Tasks**.
- Composes ready-to-send email drafts in
**Gmail** with embedded HTML bodies.
- Uses stateless OAuth 2.1 with AES-GCM token encryption.

###
4. 🎙️ Low-Latency Live Voice Interaction (Gemini Live API)

Instead of relying on standard turn-based text chat, EventMocha supports bidirectional, real-time voice streaming:

-
**AudioWorklet Resampling**: The frontend captures microphone audio at 16kHz mono via custom `AudioWorkletProcessor`

nodes and streams back 24kHz agent speech over WebSockets.
-
**Dynamic Live Transcripts**: Real-time speech-to-text bubbles accumulate fluidly on the screen with real-time waveform visualizers.
-
**Multimodal Voice Controls**: Users can speak instructions while simultaneously typing, attaching images, or inspecting generated visual cards.

##
🛠️ Tech Stack Overview

-
**Frontend**: React 19, Vite, TanStack Query, TailwindCSS, Web Audio API (AudioWorklet).
-
**Backend & Multi-Agent**: FastAPI, Python ADK (Agent Development Kit), Gemini 3.7 Flash, Gemini 2.5 Flash (Live Voice API), Google GenAI SDK.
-
**Storage & State**: Cloud Firestore (Native Mode), Google Cloud Storage (GCS), Vertex AI Agent Engine (`VertexAiSessionService`

).
-
**Integrations**: FastMCP (Google Workspace), Google Search Grounding.
-
**Monorepo**: pnpm Workspaces + Turborepo.

##
🚀 Key Takeaways & What I Learned

-
**State Cleanliness is Paramount**: Keeping heavy binary data and verbose copy out of the persistent ADK session state while relying on flat asset registries (`root_asset_id -> entry`

) dramatically improved routing reliability and reduced token latency.
-
**AudioWorklets Unlock Real Voice UX**: Moving audio resampling off the main browser thread to Web Audio Worklets made bidirectional streaming feel instantaneous and conversational.
-
**Agent Specialization Makes Debugging Predictable**: Isolating responsibilities across dedicated agents (`ResearchAndPlanner`

, `MultimodalContentCreator`

, `VideoGenerator`

, and `WorkspaceMCP`

) made prompt iterations and tool trajectories modular and easier to trace.

##
💬 What are your thoughts?

I'd love to hear from the community:

- How are you approaching multi-agent orchestration and revision workflows in your AI apps?
- What features or integrations would you find most valuable in an automated event assistant?

*Drop your thoughts, questions, or feedback in the comments!*
