Back to Projects

SagaTraveller - Multi-Agent Autonomous AI Travel Assistant

Multi-Agent Autonomous AI Travel Assistant with LangGraph, MCP, and Human-in-the-Loop Reviews

AGENTIC AIBuilt during: AI Systems Engineer / Full Stack Developer
Tags -
AI/MLLangGraphPythonFastAPIModel Context ProtocolLangChainGroq LPUGeminiNeon PostgreSQLReact 19Docker
SagaTraveller - Multi-Agent Autonomous AI Travel Assistant Preview

Project Overview

SagaTraveller is a production-grade, multi-tenant autonomous travel planning system coordinating specialized agents (Supervisor, Flight, Hotel, Weather, Budget, and Itinerary Synthesis) via LangGraph and real-time external tools through the Model Context Protocol (MCP: AviationStack, OpenWeatherMap, Tavily).

The system incorporates a distributed multi-provider architecture deploying low-latency Groq LPU as primary with automatic fallback to high-capacity Google Gemini, interactive human-in-the-loop review and revision loops backed by PostgreSQL state checkpointers, and real-time Server-Sent Events (SSE) streaming to a responsive React 19 interface with publication-grade PDF generation.

Key Features

  • Multi-Agent Orchestration & Tool Integration — Coordinates specialized agents (Supervisor, Flight, Hotel, Weather, Budget, Itinerary Synthesis) via LangGraph and real-time external tools through MCP.
  • Distributed Multi-Provider Architecture — Resilient dual-provider LLM failover tier routing low-latency guardrails to Groq LPU (~1.5s) with automatic fallback to Google Gemini 3.5 Flash-Lite (1M TPM buffer).
  • Human-in-the-Loop Review & Revision — Interactive user approval and feedback revision loops with persistent PostgreSQL state checkpointers for seamless non-blocking session recovery.
  • Multi-Tenant Security & Episodic Memory — JWT authentication with bcrypt password hashing, tenant-level vector data isolation, and persistent episodic memory in Neon PostgreSQL for personalized continuity.
  • Real-Time Streaming & Publication Export — Server-Sent Events (SSE) streaming to a responsive React 19 interface with downloadable publication-grade PDF generation and dynamic budget charts.

Technical Highlights

  • LangGraph State Checkpointing — Enables non-blocking execution pauses, revision branching, and state recovery on Neon PostgreSQL without losing intermediate multi-agent research.
  • Dual-Provider Failover Tier — Eliminates RPM/TPM token exhaustion and pipeline stall times by routing between Groq LPU and Gemini Flash-Lite.
  • Deterministic Layer-1 Security Guardrail — Pre-execution PII regex scanning, Luhn credit card validation, and jailbreak detection coupled with intent classification to prevent adversarial attacks and credit waste.
  • Dynamic Episodic Memory Injection — Injects compressed episodic memory into supervisor and itinerary prompts for personalized multi-day continuity across sessions.

Challenges & Solutions

Challenge: Latency Bottlenecks & Provider Rate Limiting: Single-provider RPM/TPM token exhaustion and pipeline stall times.
Solution: Engineered a Distributed Multi-Provider Tier that routes low-latency guardrails to Groq LPU (~1.5s) with automatic failover to Google Gemini 3.5 Flash-Lite (1M TPM buffer).
Result: Consistent sub-2s initial response times and complete resilience against provider rate limits.
Challenge: State Loss During Human-in-the-Loop Reviews: Loss of intermediate multi-agent research state during user revisions.
Solution: Implemented LangGraph state checkpointers on Neon PostgreSQL, enabling non-blocking execution pauses, revision branching, and state recovery.
Result: Flawless session restoration and non-blocking human revision workflows without re-running expensive external API queries.
Challenge: Multi-Tenant Isolation & Cross-Session Data Leakage: Preventing data leakage between authenticated users and guest sessions.
Solution: Implemented isolated namespaced storage keys, directory traversal guards, and mandatory vector database owner_id metadata filtering.
Result: Strict tenant isolation and zero cross-user vector or session leakage.
Challenge: Stateless Interaction Amnesia: Context loss across multiple user sessions.
Solution: Persisted historical Q&A interactions in Neon PostgreSQL and dynamically injected compressed episodic memory into supervisor and itinerary prompts.
Result: Seamless multi-day travel planning continuity across devices and sessions.
Challenge: Resource Waste & Adversarial Prompt Injection: Wasteful LLM and external API credit expenditure on invalid or malicious inputs.
Solution: Deployed a deterministic Layer-1 security guardrail (PII regex scan, Luhn credit card validation, and jailbreak detection) coupled with an intent classifier.
Result: Blocked malicious prompts and invalid payloads before invoking downstream agent models or billable APIs.

Tech Stack Breakdown

frontend

React 19, Vite, Tailwind CSS, TypeScript

backend

Python, FastAPI, LangGraph, LangChain, Model Context Protocol (MCP)

database

Neon PostgreSQL (State Checkpointers & Episodic Memory)

infrastructure

Docker, Groq LPU, Google Gemini, Vercel

tools

LangSmith, Langfuse, AviationStack API, OpenWeatherMap API, Tavily API, JWT, Bcrypt