LangGraph Travel Agent
Travel advisor delivered to a U.S. agency · concurrent supplier search with resumable human review
Built with Python · LangGraph · FastAPI · AsyncIO · Amadeus / Hotelbeds
WHY
A U.S. travel agency asked for an agent that could turn a natural-language request into flight, hotel, attraction, and restaurant options that respected each customer's budget and schedule. In the manual workflow, missing information, supplier searches, package comparison, CRM updates, and follow-up communication were repeated across separate tools. The system needed to preserve context from the first request through human review and customer contact.
Amadeus and Hotelbeds via asyncio.gather
Budget, Balanced, and Premium
Contract work released later as public OSS
HOW
A resumable path from request to reviewable travel package
Each node has one operational responsibility, while the graph retains enough state to pause and resume without rebuilding the request.
- 01 Collect constraints
Normalize traveler, dates, budget, and preferences; pause when required customer information is missing.
- 02 Search concurrently
Run flight and hotel supplier queries in parallel and return results through asynchronous task polling.
- 03 Synthesize packages
Build three comparable package tiers and calculate the full trip cost from the same typed schema.
- 04 Review and handoff
Save the selected context to HubSpot and keep outbound actions behind an explicit review boundary.
RESULT
Contribution
- Designed and implemented the LangGraph state, conditional routing, asynchronous supplier search, package synthesis, API task lifecycle, and CRM handoff.
- Delivered the system to a U.S. travel agency and retained the contractual IP for a later public-source release.