Inspiration

Outing planning often turns into a tedious chore. You start with a simple idea, like "a rainy Saturday coffee and art walk under $30," and end up juggling search results, maps, spreadsheets, and chat threads. Text-only chatbots provide flat lists without assessing walking distances or budgeting accurately. We wanted to build a planning workspace where you could enter a "vibe" and immediately get an optimized, visual, and explainable timeline backed by multiple autonomous agents.

What it does

TripletAI turns any city outing vibe into a mapped, structured micro-trip. Users specify their location, transport mode, weather preferences, and a budget limit. The app then triggers a sequential multi-agent orchestrator:

  1. Intent Extraction: Identifies mood, budget limitations, and schedule duration.
  2. Weather Verification: Dynamically screens for indoor/outdoor activities.
  3. Budget Allocation: Computes spending thresholds and holds back a buffer.
  4. POI Gathering: Fetches live local places via Google Places or Foursquare.
  5. Deterministic Ranking: Scores locations based on proximity, price tier, and vibe.
  6. Reasoning Explanation: Explains exactly why a place was chosen, suggests alternative spots, and explains why other close options were rejected in the "Why Not" dashboard.
  7. Timeline Building: Groups the stops into an optimized hourly schedule.
  8. Memory Profile: Saves the trip to AWS DynamoDB, learning the user's favorite categories and budgets to shape future planning suggestions.

How we built it

We built TripletAI on top of the Next.js App Router with TypeScript and styled it using Tailwind CSS.

  • AI Orchestration: Powered by the Vercel AI SDK, allowing plug-and-play support for Anthropic (Claude 3.5 Sonnet), OpenAI (gpt-4o), or NVIDIA (llama-3.3-nemotron-super-49b-v1).
  • Database: Handled by AWS DynamoDB using a single-table design (USER# and TRIP# key structures) to store replayable decision contexts, preferences, and saved itineraries.
  • Location & Map Data: Used Google Places API and Foursquare API for rich local POI details, and rendered them with Mapbox GL JS.

Challenges we ran into

Handling real-time token streaming alongside structured JSON events from the multi-agent pipeline was tricky. We solved this by using a streaming Next.js endpoint that yields newline-delimited JSON events, allowing the frontend to dynamically update the progress state of each agent while streaming the final plan narrative. Additionally, managing API provider variations required wrapping the model initialization using Vercel's unified SDK so we could transition smoothly between Anthropic, OpenAI, and NVIDIA APIs.

Accomplishments that we're proud of

  • Moving away from the generic chat bubble interface to create a structured visual workspace.
  • The "Why Not" Panel, which provides transparent AI reasoning explaining why certain places were rejected (e.g. over-budget, too far, closed, or weather-incompatible).
  • Designing a database schema in DynamoDB that stores preferences as signals, enabling the app to reference user memory across sessions.

What we learned

We learned the importance of single-table layouts in AWS DynamoDB to manage related resources (trips and user profiles) efficiently. We also experienced first-hand how the Vercel AI SDK decouples application code from LLM providers, making it trivial to add alternative providers like OpenAI and NVIDIA without modifying core agent logic.

What's next for TripletAI — AI Micro-Trip Planner

We plan to introduce collaborative planning so friends can edit itineraries in real-time, incorporate live transit schedule APIs for exact walking/subway timings, and integrate direct Uber or Google Maps navigation link-outs for a seamless B2C booking experience.

Built With

Share this project:

Updates