Inspiration

The manual coordination of travel logistics is a significant challenge for consumers who must cross-reference multiple platforms to align flights with hotels. This process is often prone to errors, particularly when trying to synchronize check-in times with flight arrivals across different time zones. Consequently, this fragmented approach frequently results in scheduling conflicts, booking errors, and increased costs.

What it does

This project introduces an AI Travel Agent designed to handle complex, natural-language requests through a unified interface. The system leverages SerpAPI to aggregate real-time flight and hotel data, applying a configurable "timing rule" engine to ensure all itinerary components are chronologically sound. The architecture supports both a modern React-based UI and a robust REST/streaming API. To ensure reliability and scalability, the entire ecosystem is containerized via Docker, featuring built-in observability to monitor agent performance and system health.

How we built it

Frontend React (v19), TypeScript, Vite, CSS (Tailwind, PostCSS, ReactFlow)

UI & Styling Tailwind CSS, Class Variance Authority (CVA), Radix UI, Lucide React

Backend Python, FastAPI, LangGraph, LiteLLM, uv (Package Manager)

Containers & Deployment Docker, Docker Compose (managing UI, supervisor, agents, NATS, ClickHouse, Grafana)

Observability OpenTelemetry, Grafana, ClickHouse

A2A communication Cisco AGNTCY (A2A Protocol), NATS (Message Transport), agntcy-app-sdk

Challenges we ran into

Complex Orchestration: Managing the multi-step reasoning required for an agent to move from "search" to "validation" to "recommendation" required the use of LangGraph for structured state management.

Time Zone Synchronization: Enforcing strict timing rules across various international locales proved difficult, requiring precise handling of UTC offsets to prevent logic errors in check-in/check-out windows.

Third-Party Integration: Maintaining a stable connection with SerpAPI required robust error handling and rate-limiting strategies to ensure high availability.

System Observability: Monitoring distributed services (frontend, backend, and various databases) necessitated a centralized telemetry stack to track request flows and agent decision-making.

API Consistency: Ensuring the TypeScript-based frontend remained perfectly aligned with the Python-based FastAPI backend, particularly for streaming responses, required rigorous schema definitions.

What we learned

From this project, we learned how the A2A system works

What's next for Travel AGYNTC

For the future product, we can allow users to do a detailed search (ex. search for flights without layovers, hotel has rating over 4.5). Also, we're thinking to add purchase link so that users can purchase tickets on the same page.

Built With

Share this project:

Updates