I created this piece of content for the purposes of entering the All Things Agentic Hackathon (#AllThingsAgenticHackathon).
5,000 Wedding Photos, Five Agents, Zero Chat Windows — and When Coverage Is Missing, the Agents Task the Humans
1. The Friction: The Group Chat Graveyard
Every major event suffers the same failure mode: photos scattered across hundreds of phones, a lossy group chat dump, weeks of "can someone send me that one photo?", and the hosts waiting months for official edits.
More cloud storage never solved this because the bottleneck is direction and routing, not capacity.
At a 500-guest wedding, thousands of photos are captured, yet intimate moments — like the groom's mother during the vows — are often missed entirely because nobody is coordinating 500 amateur photographers.
Showrunner flips the paradigm using the Gemini Enterprise Agent Platform (GEAP): guests scan a QR code, an autonomous agent fleet classifies, protects, and routes media in real time, and when coverage gaps emerge, the control plane issues live photo bounties to guests' phones.
2. Architecture: Data Plane vs. Goal-Driven Control Plane
The architecture splits high-throughput ingestion from goal-seeking reasoning, secured by continuous governance policies.
┌──────────────────────────────────────────────────────────────────────────────────┐
│ SHOWRUNNER ARCHITECTURE │
├─────────────────────────┬──────────────────────────────┬─────────────────────────┤
│ DATA PLANE (Push) │ CONTROL PLANE (Goal) │ GOVERNANCE RAIL │
│ │ │ │
│ Phones ➔ Direct GCS │ Cloud Scheduler (2-min tick) │ GEAP Model Armor │
│ ➔ Eventarc Intake │ ➔ Per-Event Lease Engine │ • recompute_visibility │
│ ➔ Cloud Tasks Queues │ ➔ Story Director (GEAP/ADK) │ • Consent Ring Policy │
│ ➔ Perception Workers: │ ➔ Reel Director (GEAP/ADK) │ • Deny-All Face Vaults │
│ • Curator (Gemini) │ ➔ Beat-Snapped Render Engine │ │
│ • Face (InsightONNX) │ │ │
│ • Safety (Guardian) │ │ │
├─────────────────────────┴──────────────────────────────┴─────────────────────────┤
│ FIRESTORE (System of Record) │
│ + GEAP MEMORY BANK (Advisory Narrative Memory) │
└──────────────────────────────────────────────────────────────────────────────────┘
The Photo Pipeline — p50 ≈ 5s to Kiosk-Ready
Direct Ingestion:
Client devices upload raw bytes straight to Cloud Storage via signed URLs.
Eventarc & Intake:
GCS object.finalized triggers image processing, EXIF stripping, WebP derivation, and rate-limited Cloud Tasks dispatch.
Perception Workers:
-
Curator Worker (
gemini-3.5-flash-lite) — Evaluates aesthetic quality, tags moments, and runs Bayesian stage posterior fusion. - Face Worker (InsightFace ONNX) — Extracts 512-d embeddings for VIP cosine matching and cluster indexing.
- Safety Worker (The Guardian) — Two-tier gate combining Cloud Vision SafeSearch with a Gemini-powered dignity evaluation.
Deterministic Gate:
An atomic recompute_visibility policy evaluates consent rings and aesthetic thresholds before routing to public kiosks or private guest albums.
3. The 2-Minute Director Loop (ADK + gemini-3.7-flash)
Rather than passively waiting for user prompts, the Story Director executes on an autonomous cadence powered by Google's Agent Development Kit (ADK).
1. Settle & Expire
Validates completed photo bounties transactionally and flags timed-out tasks as permanent coverage gaps.
2. Stage Arming
Automatically arms mandatory shot lists when a new event stage begins.
3. Ledger Computation
Computes an O(1) coverage matrix across VIPs and active timeline moments.
4. Reason & Plan
A GEAP LlmAgent using gemini-3.7-flash reasons over the ledger state and returns a structured DirectorPlan.
5. Act
The system enforces hard guardrails — ≤ 2 bounties/tick and point clamping [50, 300] — before pushing live bounty notifications to guest devices.
4. Memory Architecture: GEAP Memory Bank & Isolation
Managing multi-day event state requires strict separation between deterministic transactions and soft context.
System of Record — Firestore
Tracks strict operational state, media records, and a rolling 10-tick history.
Overflow ticks are compacted via deterministic arithmetic string parsing rather than LLM summarization, guaranteeing zero context drift.
GEAP Memory Bank — Long-Term Narrative Memory
Stores advisory narrative context across sessions, such as:
- Host stylistic preferences:
{eventId}:host - World context:
{eventId}:world - Stage diary memos:
{eventId}:diary:{stageId}
Memory Bank enriches planning prompts without ever directly gating point payouts or visibility decisions.
Private Biometric Vaults
Face embeddings and private taste profiles reside in isolated subcollections guarded by deny-all security rules.
5. Agent Fleet Breakdown
| Component | Role | Engine | Why It's an Agent |
|---|---|---|---|
| Curator | Perception | gemini-3.5-flash-lite |
Evaluates emotional/cultural context against dynamic glossaries. |
| Guardian | Governance | Vision API + Gemini | Makes contextual dignity decisions, e.g. ritual tears vs. distress. |
| Face Indexer | ML Worker | InsightFace ONNX | Deterministic 512-d embeddings. Strictly an ML worker, not an LLM agent. |
| Story Director | Orchestration |
gemini-3.7-flash (ADK) |
Goal-seeking planner operating a closed observe-reason-act loop. |
| Reel Director | Creative Production |
gemini-3.7-flash + Critic |
Generates Edit Decision Lists (EDLs) and self-corrects video pacing. |
6. Multi-Model Ecosystem
Showrunner leverages specialized Google AI models across the production pipeline:
Lyria 3 — Dynamic Soundtracks
Generates tailored music tracks based on the narrative brief.
librosa extracts downbeat timestamps to snap video cuts to the rhythm.
Veo 3.1 — Cinematic Openers
Synthesizes vertical 9:16 cinematic establishing sequences for recap reels.
Gemma 4 — Private Taste Memos
Runs lightweight inference every 15 interactions to build explainable preference profiles for personalized guest delivery.
Created for the All Things Agentic Hackathon (#AllThingsAgenticHackathon).
Top comments (0)