A production-style 3-agent weather forecasting system built using LangGraph, designed to collect weather data from multiple APIs, reconcile inconsistencies, generate alerts, and provide LLM-powered analysis and recommendations.
The system is organized around three cooperating agents coordinated via a LangGraph state machine:
WeatherData objects with source-level confidencellm_responseAll agents operate on a shared immutable AgentState containing:
location, request_id, user_questionAgentState is createdagents/ # Data acquisition, report, LLM modules
config/ # Environment-based settings
utils/ # LLM and weather API clients
workflows/ # Orchestrator and workflow definitions
main.py # Entry point
.env # API keys & config
README.md
requirements.txt
OPENWEATHER_API_KEYWEATHERAPI_KEYVISUALCROSSING_API_KEYOPENAI_API_KEYGROQ_API_KEYAt least one LLM provider must be available.
python main.py "London" "Should I bring an umbrella?"
Separation of concerns between agents
Deterministic analysis before LLM reasoning
Confidence-aware decision making
Easy extensibility