DEV Community

Aryan Sharma
Aryan Sharma

Posted on

✈️ TripBuddy — Your Friend Who Actually Plans the Trip

Built for a friend who loves travelling but hates planning. ✈️🌍

TripBuddy is a personalized AI travel planning agent that turns a simple natural-language travel request into a complete, preference-aware travel plan.

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend.


🧳 What I Built

I built TripBuddy, a personalized AI travel planning agent for a friend who loves travelling but absolutely hates planning.

Instead of searching through dozens of tabs for flights, hotels, restaurants, attractions, and transportation, TripBuddy lets you describe your trip naturally and handles the planning process for you.

For example:

"I want to spend 5 days in Manali starting from Delhi. My budget is ₹15,000. I love photography, nature and cafes, and I hate waking up early."

TripBuddy takes those preferences and coordinates multiple specialized agents to create a personalized travel plan.

✨ What TripBuddy Can Do

  • ✈️ Flight and route research
  • 🏨 Accommodation recommendations
  • 🗺️ Day-by-day itineraries
  • 🍜 Restaurant and food suggestions
  • 🚆 Local transportation options
  • 💰 Budget-aware planning
  • 📍 Location-based recommendations
  • 💡 Personalized travel tips

The goal was simple:

Make trip planning feel less like work and more like talking to a friend who knows how you travel.


🌐 Demo

🚀 Live Demo

Try TripBuddy

💻 Source Code

View the GitHub Repository

The project is open source and includes the complete LangGraph workflow, agent implementations, tools, Streamlit interface, configuration, and tests.


🧠 How I Built It

TripBuddy is built around an open-weight AI model accessed through OpenRouter.

The core architecture uses LangGraph to orchestrate multiple specialized agents through a shared state.

🔄 Agent Workflow

User Request
     │
     ▼
┌─────────────────┐
│  Orchestrator   │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  Flight Agent   │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│   Hotel Agent   │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ Itinerary Agent │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│   Synthesizer   │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ Personalized    │
│ Travel Plan     │
└─────────────────┘
Enter fullscreen mode Exit fullscreen mode

🧠 Orchestrator

The orchestrator is the first step in the TripBuddy workflow.

It takes the user's natural-language travel request and extracts the important trip information needed by the specialist agents.

It identifies things such as:

  • 📍 Destination
  • 📅 Duration
  • 💰 Budget
  • 🛫 Origin
  • 🎨 Interests
  • 🧳 Travel style
  • 🚫 Dislikes
  • ⭐ Special preferences

For example, a request like:

"I want to spend 5 days in Manali starting from Delhi. My budget is ₹15,000. I love photography, nature and cafes, and I hate waking up early."

is converted into structured travel information that the rest of the workflow can use.


✈️ Flight Agent

The Flight Agent specializes in researching transportation options for the trip.

It uses Tavily Search to search the web for relevant travel information, including:

  • ✈️ Flight options
  • 🛫 Routes
  • 🏷️ Airlines
  • 💰 Estimated prices
  • ⏱️ Flight durations
  • 🔄 Return options
  • 📌 Booking considerations

The goal is to provide transportation information that fits the user's destination, origin, dates, and budget.


🏨 Hotel Agent

The Hotel Agent focuses on finding accommodation that matches the user's trip requirements.

It researches accommodation options based on:

  • 💰 Budget
  • 📍 Location
  • 🏙️ Neighborhood
  • ⭐ Accommodation type
  • 🛏️ Amenities
  • 🚶 Distance from attractions
  • 🧳 Travel preferences

The agent uses Tavily Search to gather current information from the web and provide relevant accommodation suggestions.


🗺️ Itinerary Agent

The Itinerary Agent turns the trip requirements into a practical day-by-day itinerary.

It combines web research with location information from OpenStreetMap and Nominatim to discover relevant places and organize them into a realistic route.

The itinerary can include:

  • 📅 Daily activities
  • 📍 Attractions
  • 🍜 Restaurants
  • ☕ Cafes
  • 🚆 Local transportation
  • 💰 Estimated costs
  • ⏰ Suggested timing
  • 💡 Practical travel tips

The agent also takes the user's personal preferences into account.

For example, someone who dislikes early mornings shouldn't receive an itinerary starting at 6:00 AM every day.


✨ Synthesizer

The Synthesizer is the final stage of the workflow.

It receives the information generated by the specialist agents and combines everything into one structured travel plan.

Instead of returning several disconnected agent responses, the Synthesizer produces a single Markdown-formatted plan containing sections such as:

  • 🧳 Trip Overview
  • ✈️ Transportation
  • 🏨 Accommodation
  • 🗺️ Day-by-Day Itinerary
  • 🍜 Food Recommendations
  • 🚆 Local Transportation
  • 💰 Budget Breakdown
  • 💡 Personalized Travel Tips

This creates one cohesive result that the user can actually use to plan their trip.


🛠️ Tech Stack

Technology Purpose
🐍 Python Core programming language
🧠 LangGraph Multi-agent workflow orchestration
🔗 LangChain LLM and agent framework
🤖 OpenRouter LLM routing and model experimentation
🧩 Open-weight LLMs AI reasoning and travel planning
🔎 Tavily Real-time web search
🗺️ OpenStreetMap Open geographic data
📍 Nominatim Geocoding and location search
🌐 geopy Geolocation utilities
🎨 Streamlit Web application and chat interface
🧪 pytest Automated testing

Why Does Open Innovation Matter?

Open innovation made it possible to build TripBuddy as a modular AI system rather than locking the entire application to one model or provider.

Using open-weight models through OpenRouter means I can experiment with different models while keeping the rest of the agent architecture largely unchanged.

That flexibility is especially useful for a project like TripBuddy because travel planning involves several different tasks: extracting user preferences, searching information, reasoning about budgets, and generating structured itineraries.

The open ecosystem also makes the project easier to experiment with, modify, and contribute to.

Instead of building a black-box application around a single model, the architecture separates the LLM, agent orchestration, search tools, location services, and UI.

That means contributors can improve individual parts of the system without having to rebuild everything from scratch.

Prize Categories

  • Overall Winner
  • Best Use of Gemma

Top comments (0)