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

Share this project:

Updates