← 모든 글

LangGraph Travel Agent

미국 여행사 납품 · 공급사 병렬 검색과 중단 후 재개가 가능한 여행 상담 Agent

Built with Python · LangGraph · FastAPI · AsyncIO · Amadeus / Hotelbeds

FastAPI task polling, 고객 정보 handoff, Amadeus와 Hotelbeds 병렬 검색, 패키지 합성, HubSpot 연동과 검토 경계로 구성된 LangGraph 여행 상담 Agent 구조도
실제 코드 기반 구조 · 공개 구현은 InMemorySaver와 in-memory job store 사용

WHY

미국 여행사는 고객의 자연어 요청을 받아 예산과 일정에 맞는 항공편·숙소·관광지·맛집을 찾아주는 Agent를 요청했습니다. 기존 상담에서는 누락 정보 확인, 공급사 검색, 패키지 비교, CRM 저장과 후속 연락을 서로 다른 도구에서 반복해야 했습니다. 첫 요청부터 상담자 검토와 고객 연락까지 같은 맥락을 유지하는 workflow가 필요했습니다.

공급사 검색 병렬 실행

Amadeus와 Hotelbeds를 asyncio.gather로 호출

패키지 생성 3단계

Budget, Balanced, Premium

납품 미국 여행사

계약 후 IP를 받아 Public OSS로 공개

HOW

상담 요청에서 검토 가능한 여행 패키지까지

각 node는 하나의 운영 책임만 맡고, graph state는 중간에 멈춰도 같은 요청을 다시 만들지 않고 이어갈 수 있게 합니다.

  1. 01 조건 수집

    여행자, 일정, 예산과 선호를 정리하고 필수 고객 정보가 부족하면 입력을 기다립니다.

  2. 02 병렬 검색

    항공과 호텔 공급사를 동시에 검색하고 FastAPI 비동기 task polling으로 결과를 전달합니다.

  3. 03 패키지 합성

    같은 typed schema에서 세 가지 패키지를 만들고 전체 여행 비용을 일관된 방식으로 계산합니다.

  4. 04 검토와 연동

    선택 맥락을 HubSpot에 연결하고 외부 action은 명시적 검토 경계 뒤에 둡니다.

RESULT

Budget, Balanced, Premium 여행 패키지와 항목별 전체 비용 계산을 비교한 합성 예시
Schema 기반 합성 예시 · 실제 공급사 가격이나 고객 데이터가 아닙니다

기여

  • LangGraph state와 conditional routing, 공급사 비동기 검색, 패키지 합성, API task lifecycle과 CRM handoff를 설계하고 구현했습니다.
  • 미국 여행사에 시스템을 납품했고 계약에 따라 IP를 받아 이후 Public OSS로 공개했습니다.

관련 자료

Source code Graph, API, supplier tool과 typed travel-package model