Inspiration
Every travel app creates a perfect itinerary — then reality happens. Venues close unexpectedly, weather shifts, local festivals create crowds. Traditional apps stop caring once you book.
What if an AI could keep watching your trip until departure?
I wanted to build an agent that detects real-world changes and fixes your plan autonomously — while preserving what made it special: your original vibe.
What it does
Smart Tourism 2.0 features a Marathon Agent that monitors your trip continuously. When disruptions occur, it makes intelligent decisions:
| Action | Meaning |
|---|---|
| 🟢 MONITOR | No conflict detected, keep watching |
| 🟠 CORRECT | Real conflict — find vibe-matching alternative |
The system also includes:
- AI-generated mood images for your destination
- Cinematic photo guides with composition tips
- Live Packing Mentor via Gemini Native Audio — references all previous corrections in real-time
How we built it
Three Gemini models work together through shared thoughtHistory:
┌─────────────────────────────────────────────────────┐
│ Gemini 3 Pro → Planning + Vibe Adaptation │
│ Gemini 2.5 Flash → Image Generation │
│ Gemini 2.5 Flash → Native Audio (Live Mentor) │
└─────────────────────────────────────────────────────┘
Frontend: React, TypeScript, Vite, Tailwind CSS Key insight: Event generation is a simulation stub — replaceable with real APIs (weather, venue status) while adaptation logic remains unchanged.
Challenges we ran into
The hardest challenge: preserving user vibe during corrections.
Simply replacing a closed venue isn't enough. The replacement must feel the same. Solution:
// Inject vibe into every Google Search query
searchQuery = `${userVibe} alternatives in ${destination}`
// "quiet healing" → finds peaceful cafes, not popular tourist spots
Another challenge: teaching AI the MONITOR vs CORRECT decision — analyzing dates carefully to avoid overreacting to non-conflicting events.
Accomplishments that we're proud of
The "One Intelligence" design:
The Live Packing Mentor receives the Marathon Agent's full
thoughtHistory
This enables responses like:
"Skip the hiking boots — the agent changed Day 3 to indoor activities due to weather."
All AI components share context. Planning decisions flow seamlessly to real-time interactions.
What we learned
Building this taught me the power of shared memory across AI agents:
$$\text{Unified Experience} = \sum_{i=1}^{n} \text{Agent}_i(\text{sharedContext})$$
The thoughtHistory pattern creates coherent, long-running autonomous agents. Google Search grounding transforms generic suggestions into verified, real-world alternatives.
What's next for Smart Tourism
- Replace simulation stubs with real API integrations — live weather, venue status, flight delays
- Add multi-language support
- Expand beyond Tokyo to global destinations
The architecture is ready. The Marathon Agent just needs real-world data streams to become a production-ready travel companion.
Built With
- ai-studio
- claude
- gemini
Log in or sign up for Devpost to join the conversation.