Back to portfolio
nomadagent

NomadAgent

An AI-powered travel research agent that generates verified itineraries from natural-language trip descriptions.

NomadAgent cover

Overview

What it does

NomadAgent converts natural-language trip descriptions into verified travel itineraries. Users describe their destination, interests, and trip duration, while the agent researches the web, extracts venue information, verifies results, and produces a structured itinerary with citations.

The application consists of a Flutter mobile frontend and a Python FastAPI backend. An agent pipeline powered by LangGraph and Google Gemini coordinates planning, web research, structured data extraction, and itinerary compilation.

The mobile application provides real-time streaming of the agent's progress, an interactive map displaying verified venues, day-by-day itinerary views, and PDF export functionality for sharing completed travel plans.

Problem and solution

Problem

Raw web search results are not sufficient for producing accurate travel itineraries because they require structured venue information, verification, and organization into practical travel plans.

Solution

NomadAgent uses a multi-step agent pipeline to plan research tasks, search the web, extract structured venue data with Gemini, verify venues, and compile day-by-day itineraries with maps, coordinates, opening hours, and source citations.

Highlights

  • 01 Natural language trip input
  • 02 Multi-step agent pipeline
  • 03 Real-time streaming with Server-Sent Events
  • 04 Intelligent web research
  • 05 LLM-powered venue data extraction
  • 06 Venue verification
  • 07 Interactive map view
  • 08 Day-by-day itinerary generation
  • 09 PDF export and sharing

Features

Natural Language Trip Input

Accepts trip descriptions in plain English and automatically identifies the destination, duration, and interests.

Multi-Step Agent Pipeline

Uses a planner, researcher, extractor, and compiler workflow orchestrated by LangGraph with state management.

Real-Time Streaming

Streams thought logs, venue verification events, and self-corrections to the mobile app using Server-Sent Events.

Intelligent Web Research

Searches the web using Tavily with hybrid relevance scoring to filter results.

LLM-Powered Data Extraction

Extracts structured venue information including coordinates, addresses, opening hours, and descriptions from web content.

Venue Verification

Applies tiered verification scoring with type-specific weighting for different venue categories.

Interactive Map View

Displays verified venues with coordinates on an interactive OpenStreetMap layer.

Day-by-Day Itinerary

Organizes verified venues into daily travel plans with logistics and estimated timing.

PDF Export & Sharing

Generates PDF itineraries that can be shared directly from the application.

Parallel Extraction

Runs concurrent LLM extraction tasks using asyncio.gather to reduce processing time.

Bounded Event History

Maintains a rolling event buffer with a monotonic cursor for efficient streaming.

Graceful Error Handling

Continues pipeline execution by skipping failed search tasks and handling service errors without blocking generation.

Architecture

Mobile App

A Flutter application that provides trip input, real-time generation, itinerary viewing, map visualization, and PDF export.

Backend

A FastAPI backend exposing health and itinerary generation endpoints while streaming updates with Server-Sent Events.

AI Pipeline

A LangGraph workflow consisting of planner, researcher, extractor, and compiler stages.

APIs

Uses Tavily for web search and Google Gemini for extraction and itinerary compilation.

Screenshots

Mobile

Swipe to view
Home Screen
Home with Prompt
Event Streaming
Itinerary View
Map View