Inspiration
Cold-chain incidents are not just temperature alerts. When refrigeration drifts outside an acceptable operating window, someone has to determine which inventory was actually exposed, isolate it, create an incident trail, trigger follow-up work, and make sure unsafe assumptions do not silently enter the workflow.
That is exactly the kind of messy operational task an autonomous agent should handle — but it is also a domain where an LLM should not have unrestricted authority.
HoldLine explores that boundary.
What it does
HoldLine is an event-driven cold-chain incident-containment agent.
A simulated refrigeration excursion is published into a real Google Cloud event path:
Pub/Sub → Eventarc → Cloud Run → Google ADK IncidentOrchestrator → bounded tools → deterministic containment policy → Firestore
No chat prompt is required to start the incident workflow.
When the event arrives, HoldLine:
- creates and tracks an incident;
- retrieves inventory associated with the affected refrigeration zone and exposure window;
- evaluates that inventory against configured deterministic containment policy;
- places only policy-eligible batches from
AVAILABLEintoHOLD; - creates a maintenance follow-up action;
- records every consequential action in an auditable timeline;
- suppresses duplicate event delivery without repeating side effects.
In the canonical demo, four inventory batches begin AVAILABLE. After the Cooler B excursion, the two policy-matching batches are automatically moved to HOLD, while the two unaffected batches remain AVAILABLE.
Final disposition is deliberately separated from the autonomous agent. The agent has no tool for HOLD → RELEASED or HOLD → DISCARDED. Those operations live behind a separate operator-facing API and require a recorded reason.
Why the architecture matters
HoldLine separates agentic orchestration from safety authority.
Gemini 3.5 Flash, running through Google ADK on Vertex AI, coordinates the workflow and selects from seven bounded semantic tools.
It does not invent the containment rules.
A deterministic application policy evaluates configured temperature, duration, zone, and exposure conditions before a batch can move to HOLD. The agent cannot change those thresholds, access a generic database-write tool, or release/discard inventory.
The event path is also designed around real cloud-delivery semantics. Eventarc delivery is treated as at-least-once, so HoldLine uses stable event and operation idempotency keys backed by Firestore transactions. Re-delivering the same telemetry event produces one incident, one set of holds, one maintenance action, and a visible duplicate-suppression audit record.
Optional-action failures are isolated: for example, a maintenance failure cannot roll back inventory that was already successfully contained.
Multimodal evidence
HoldLine also includes a secondary physical-evidence workflow.
An operator can upload a shelf or lot-label image to Cloud Storage. Gemini 3.5 Flash extracts structured fields such as lot, product, zone, visible temperature, confidence, and uncertainty. The application then deterministically reconciles that evidence against inventory.
Multimodal extraction is advisory: low-confidence or ambiguous evidence becomes NEEDS_REVIEW and cannot directly change inventory state.
Google technology
HoldLine uses:
- Gemini 3.5 Flash
- Google Agent Development Kit (ADK)
- Google GenAI SDK
- Vertex AI
- Cloud Run
- Pub/Sub
- Eventarc
- Firestore
- Cloud Storage
- Cloud Build / Artifact Registry
The application backend is Python 3.12 + FastAPI. The operations console is React + TypeScript + Vite. FastAPI OpenAPI schemas drive the frontend API types.
Data sources
HoldLine does not rely on an external proprietary dataset.
The hackathon scenario uses explicitly simulated refrigeration telemetry and a deterministic seeded inventory dataset so the autonomous workflow can be reproduced safely and repeatedly.
Operator-uploaded images can be used as physical shelf/lot evidence.
The refrigeration sensor, inventory catalog, and maintenance workflow are therefore simulations; the Google Cloud event transport, deployed runtime, Firestore state changes, ADK orchestration, and Gemini execution are real.
Challenges and learnings
The hardest part was not prompting Gemini — it was deciding where an autonomous model should and should not have authority.
Three engineering lessons shaped HoldLine:
1. Agent reasoning and domain authority should be separate.
Gemini is useful for orchestrating a changing incident workflow, while deterministic logic remains appropriate for consequential state transitions.
2. Event-driven agents must assume retries.
At-least-once cloud delivery means side effects need stable idempotency boundaries rather than assuming every event arrives exactly once.
3. Agent observability is part of the product.
A judge or operator should be able to see what changed, which actor/tool caused it, why it happened, and whether the action succeeded without exposing model chain-of-thought.
Responsible-use boundary
HoldLine is a hackathon MVP, not certified food-safety software. It does not replace HACCP procedures, physical verification, QA professionals, or an organization's incident-response process.
End-user authentication and role-based authorization are also outside this MVP's scope. The submission therefore relies on captured Google Cloud deployment proof and reproducible deployment instructions instead of advertising the unauthenticated live Cloud Run endpoint.
Built With
- cloud-run
- cloud-storage
- eventarc
- fastapi
- firestore
- gemini-3.5-flash
- google-adk
- google-genai-sdk
- pub/sub
- python
- react
- typescript
- vertex-ai
- vite
Log in or sign up for Devpost to join the conversation.