Weather-Aware Trip Planner
An agentic travel planning system powered by LangGraph and gpt-oss-120b that integrates live weather forecasts, place search, and self-correcting feedback loops for budget and weather constraints.
- AI
- Agents
- Applied AI

Context
Traditional travel itineraries generated by static LLM prompts often fail in real-world conditions—recommending outdoor hikes during heavy rain or suggesting hotel options that push the trip over budget.
Weather-Aware Trip Planner was engineered as a stateful LangGraph agent that fetches live multi-day weather forecasts from Open-Meteo, queries Geoapify Places for real accommodations and activities, and executes self-correction loops when itineraries violate budget or weather constraints.
The problem
Generic travel planning assistants lack real-time ground truth, relying on training data that produces hallucinated venue pricing and unverified location details.
Standard single-pass LLM prompts cannot recover from constraint violations. If a generated schedule exceeds the user's budget ceiling or schedules outdoor tours during a thunderstorm, single-pass models have no mechanism to evaluate failure and re-plan dynamically.
Product strategy
The product strategy couples deterministic API tool calls with a stateful agent graph in LangGraph, enforcing validation gates that trigger automated refinement cycles prior to final report generation.
Ground truth tools
Supply real-time weather telemetries and real place data to the LLM before any itinerary synthesis occurs.
Self-correcting state loops
Implement validation nodes that test budget bounds and weather alignment, routing back into refinement nodes on failure.
Provider-neutral LLM reasoning
Run high-throughput gpt-oss-120b inference via Groq for fast agent state transitions and structured JSON output parsing.
AuraNode turns that strategy into one native workspace with a provider-neutral backend.
Live weather integration
Fetch multi-day temperature, precipitation, and daily weather condition forecasts via key-less Open-Meteo queries.
Places & web search fallback
Search accommodations and local attractions via Geoapify Places API with Tavily web search fallback.
Automated budget & weather validation
Programmatically inspect generated itineraries against user-defined budget caps and rainy day outdoor activity conflicts.
Iterative accommodation refinement
Dynamically re-query and adjust lodging options in a feedback loop when budget overruns are detected during validation.
System architecture
A Streamlit web interface interfaces with a LangGraph state machine orchestrating Open-Meteo weather forecasts, Geoapify places search, and gpt-oss-120b reasoning with self-correction refinement loops.
Streamlit Web Application
Interactive single-page UI accepting destination, trip dates, budget caps, and activity preferences while streaming agent state graph progress.
- Streamlit
- Python
- Web UI
LangGraph StateGraph
Stateful agent workflow managing typed graph execution, node transitions (fetch_weather → search_accommodation → search_activities → merge → validate → refine), and conditional retry logic.
- LangGraph
- LangChain
- StateGraph
Weather & Spatial Tool Suite
Executes parallel data retrieval via Open-Meteo (forecasts), Geoapify Places API (accommodation & activities), and Tavily (web search fallback).
- Open-Meteo
- Geoapify
- Tavily
gpt-oss-120b Engine
Groq-hosted gpt-oss-120b synthesizes day-by-day itineraries, evaluates budget limits and weather suitability, and triggers self-correcting refinement loops on validation failure.
- Groq
- gpt-oss-120b
- Self-Correction
Open-Meteo API
Provides real-time temperature, precipitation, wind speed, and daily weather condition forecasts without API key restrictions.
Geoapify & Tavily
Geoapify Places API queries accommodations and local attractions; Tavily provides real-time web search fallback when place data is sparse.
Streamlit Cloud
Deploys the Python Streamlit frontend and LangGraph agent pipeline directly from GitHub with secure secrets management.
Request lifecycle
When a user submits trip parameters (destination, travel dates, budget limits, interest tags), Streamlit triggers the LangGraph StateGraph workflow. The agent executes node functions sequentially: first querying Open-Meteo for multi-day weather forecasts, then searching Geoapify Places (with Tavily fallback) for accommodations and attractions. The state passes to Groq (gpt-oss-120b) to assemble a day-by-day itinerary. A validation node checks if total costs exceed budget caps or if outdoor activities coincide with bad weather; if validation fails and retries remain, the graph routes into a self-correction loop to refine accommodation choices before final report generation.
Separation of concerns
The Streamlit UI presents inputs and renders markdown outputs while remaining decoupled from agent execution logic. LangGraph manages graph state, conditional edges, and retry limits. Tool wrappers isolate external API calls (Open-Meteo, Geoapify, Tavily) from the core LLM prompts, ensuring gpt-oss-120b receives structured context for itinerary synthesis and validation.
Key experiences
The interface provides transparent visibility into agent execution, tool outputs, and self-correction steps.
Streamlit control center
Configure trip destination, travel dates, budget caps, accommodation preferences, and activity interest tags.
Visual graph execution state
Track live agent progress through node execution steps: weather fetching, place search, itinerary drafting, and validation.
Day-by-day weather-matched itinerary
View rich markdown itineraries with daily weather summaries, indoor/outdoor activity alignment, and itemized cost breakdowns.
Refinement warning badges
Display clear transparency notifications if budget constraints required self-correction loops or fallback search triggers.
Engineering decisions
LangGraph StateGraph for explicit control flow
Uses typed state schemas and conditional edges to manage graph flow, retries, and conditional fallback paths.
Groq gpt-oss-120b for low-latency agent reasoning
Fast inference via Groq enables multi-turn agent loops and validation checks without user UI latency.
Open-Meteo for key-less weather telemetry
Integrates Open-Meteo REST API for instant, global weather forecast retrieval without API key friction.
Geoapify & Tavily dual search strategy
Pairs structured location data from Geoapify Places with Tavily web search to guarantee rich result coverage.
Streamlit Cloud serverless deployment
Deployed directly from GitHub to Streamlit Cloud with environment secrets management and responsive layout.
An agentic, self-correcting travel planning assistant.
Weather-Aware Trip Planner demonstrates practical agentic AI engineering, combining stateful graph execution, live tool integration, and constraint-based self-correction.
The project is fully open-source with modular tool wrappers, typed LangGraph state definitions, and one-click deployment instructions for Streamlit Cloud.
- LangGraph StateGraph pipeline with self-correcting refinement loops
- Live weather integration via Open-Meteo and place search via Geoapify/Tavily
- Groq-powered gpt-oss-120b LLM reasoning and budget/weather validation
- Responsive Streamlit single-page application with real-time execution tracking
- Source code available on GitHub under open-source release