CYBEN / AI← All systemsStart a project ↗
CASE STUDY / 26PRODUCT SYSTEM

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
Weather-Aware Trip Planner case study cover
PROJECT VISUAL2026

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.

Live request topologyPrompt travels right · tokens stream leftPrompt travels down · tokens stream up
State 01
Client / presentation

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
State 02
Agent Orchestrator

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
State 03
Data Tool Layer

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
State 04
Reasoning & Validation

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
Worker dependenciesState · data · commerce
Forecast Queries

Open-Meteo API

Provides real-time temperature, precipitation, wind speed, and daily weather condition forecasts without API key restrictions.

Places & Web Search

Geoapify & Tavily

Geoapify Places API queries accommodations and local attractions; Tavily provides real-time web search fallback when place data is sparse.

Cloud Hosting

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.

01

Streamlit control center

Configure trip destination, travel dates, budget caps, accommodation preferences, and activity interest tags.

02

Visual graph execution state

Track live agent progress through node execution steps: weather fetching, place search, itinerary drafting, and validation.

03

Day-by-day weather-matched itinerary

View rich markdown itineraries with daily weather summaries, indoor/outdoor activity alignment, and itemized cost breakdowns.

04

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.

Current status / open-source release

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
Continue exploring