Case Study · 06

Agentic AI
Hotel Concierge

My Role
Technical Lead
Duration
Jun 2026 — Present
Client
Lotte New York Palace · NYC
Stack
LangGraph · FastAPI · RAG · AWS

Guests shouldn't need to navigate
a booking flow. They should just say
what they want.

Lotte New York Palace is the first five-star hotel in New York City's history — a landmark property at 455 Madison Avenue in Midtown Manhattan, housed inside the historic Villard Mansion built in 1882. Offering two distinct luxury experiences across The Palace and The Towers, the hotel is recognised by AAA Four Diamond Award, Virtuoso, American Express Fine Hotels & Resorts, and Tripadvisor Travellers' Choice.

Hotel booking — even at this level of luxury — still means forms, dropdowns, and multi-step flows. A guest who wants a suite, an airport transfer, a dinner reservation at MITANI New York, and an ila Only Spa appointment has to navigate four separate systems. This platform changes that.

As Technical Lead, I'm designing and building a multi-agent AI hospitality platform for Lotte New York Palace — enabling guests to book rooms, modify reservations, request concierge services, get hotel and NYC recommendations, and get answers about the hotel through voice and text conversation. No forms. No flows. Just intent. The system integrates with Synxis CRS for real-time availability and rates, and Opera PMS for reservation and guest profile management.

"The hardest part of building an AI concierge isn't the AI. It's knowing when to trust it — and when to hand control back to a human."

6
Specialised AI agents
2
Modalities — voice & text
RAG
Hotel knowledge retrieval
0
Forms. Just conversation.

Why hotel booking
needed to be reinvented.

Traditional hotel booking interfaces optimise for completeness, not ease. They present every option, require every field, and assume guests know exactly what they want before they start. The result is friction — especially for complex requests like "book me a suite in The Towers for next weekend, arrange an airport pickup Friday at 6pm, get me a table at MITANI New York on Saturday night, and book an ila Spa session Sunday morning."

For a property like Lotte New York Palace — where guests include diplomats, celebrities, and long-standing VIP visitors — that friction is a brand contradiction. A guest who has stayed at the Palace for years shouldn't navigate four separate systems to plan a weekend. They should be able to ask, just like they would with a human concierge at the Grand Lobby.

Limitations of traditional booking
  • Multi-step forms interrupt guest intent mid-flow
  • No context about past stays, preferences, or loyalty status
  • Complex requests require navigating multiple separate flows
  • Hotel information siloed from the booking experience
  • No ability to modify or cancel conversationally
  • Zero personalisation — every guest treated identically
What the AI concierge enables
  • Natural language room booking across The Palace and The Towers
  • Concierge requests in the same conversation — dining, spa, transport
  • Real dining venues: VILLARD, Rarities, MITANI New York — bookable conversationally
  • ila Only Spa and Cedric Salon appointments via chat
  • NYC neighbourhood recommendations and St. Patrick's VIP tour bookings
  • Human escalation to the real concierge team when needed — graceful, not abrupt

Six agents.
One coherent conversation.

Rather than a single monolithic AI model trying to handle everything, the platform uses six specialised agents — each an expert in its domain, orchestrated by LangGraph's state machine. Whether a guest speaks or types, their input is transcribed and routed to the appropriate specialist agent, with the result delivered back as both text and synthesised voice.

AGENT 01
Room Booking
Handles room search, availability checking, reservation creation, modification, and cancellation. Integrates with Synxis CRS for real-time availability and rates, and Opera PMS for reservation management.
Synxis CRSOpera PMSPricing
AGENT 02
Reservation Management
Manages existing bookings — check-in details, special requests, room upgrades, early check-in, late checkout, and itinerary queries. Reads and writes directly to Opera PMS.
Opera PMSGuest Profile
AGENT 03
Concierge Services
Handles restaurant reservations, airport transfers, transportation, spa appointments, housekeeping requests, room service, and luggage assistance.
Operations APIsScheduling
AGENT 04
Guest Services
Manages in-stay requests — maintenance, amenity delivery, wake-up calls, preferences — and coordinates with hotel operations staff.
Property OpsStaff Routing
AGENT 05
Recommendations
Personalised dining, activity, and local experience recommendations based on guest profile, stay history, preferences, and real-time availability.
pgvector RAGGuest History
AGENT 06
Hotel Information
Answers questions about hotel policies, amenities, facilities, dining options, room types, services, and local area — grounded in RAG-retrieved hotel documentation.
RAG / pgvectorSanity CMS

How the platform is built.

The platform is built on a Python/FastAPI backend with LangGraph orchestrating agent workflows. It supports both voice and text input — voice is handled via a speech-to-text (STT) pipeline, processed through the agents, and responses are delivered back as synthesised voice via text-to-speech (TTS) as well as text. State is maintained in PostgreSQL and Redis, ensuring conversation context persists across sessions and modalities.

Agentic AI Platform — System Architecture
Voice Input (STT)
Text Input (Chat)
Guest Interface (React) · Voice + Text UI
FastAPI Backend · REST API Layer
LangGraph Orchestrator · Intent Router · State Manager
Room Booking Agent
Concierge Agent
Guest Services Agent
Hotel Info Agent
+ 2 more
Synxis CRS
Opera PMS
pgvector RAG
Redis Session
PostgreSQL
LLM (Brain PAWA)
TTS · Voice Response
Lotte NY Palace Backend

Voice or text —
same seamless experience.

Guests can speak naturally or type — the platform handles both. Voice input is transcribed via speech-to-text, processed through the agent pipeline, and the response is delivered as both text and synthesised voice. The conversation below shows how different agents are invoked across a single natural flow, with full context maintained throughout — whether the guest spoke or typed each message.

Example — Voice + Text · Room Booking + Concierge + FAQ · Lotte New York Palace
G
🎙 Voice
I'd like a suite in The Towers for the 22nd to 25th. Preferably with a city view.
AI
Room Booking Agent
I've found two suites in The Towers with city views available for those dates — a Premier Suite on the 48th floor and a Signature Suite on the 52nd floor with views towards Midtown and Central Park. Both include Five Star Towers amenities and butler service. Would you like pricing for both, or shall I go ahead with one?
🔊 Voice response delivered
G
🎙 Voice
The Signature Suite on 52. Also, can you arrange an airport pickup from JFK on the 22nd — arriving at 4pm? And a dinner reservation at MITANI New York on the 23rd, 8pm, table for 2.
AI
Concierge Agent
Done. The Signature Suite is reserved for the 22nd–25th. I've arranged a car pickup from JFK at 4pm on the 22nd, and a table for 2 at MITANI New York at 8pm on the 23rd — Chef Mitani's omakase experience. Your confirmation details are on the way. Anything else for your stay?
🔊 Voice response delivered
G
⌨ Text
Is the ila Spa open on Sunday mornings? And can I book a session?
AI
Hotel Information + Concierge Agent
ila Only Spa is open from 6am on Sundays. They offer Ayurvedic treatments, signature rituals, and deep tissue massage. I can book a 90-minute session for you on the 24th — what time works best?
🔊 Voice response delivered

The hard choices and
why they were made.

Architecture Decisions
  • LangGraph over a single LLM call — complex hospitality requests require stateful multi-step reasoning; a single LLM call can't reliably handle booking + concierge + FAQ in one turn without hallucinating
  • Specialised agents over one general agent — each domain has its own tools, prompts, and validation logic; separation reduces errors and improves reliability per task
  • RAG over fine-tuning — hotel content changes frequently (menus, policies, rates); RAG with pgvector allows real-time updates without retraining
  • Redis for session state — conversation context must survive page refreshes and device switches; in-memory state isn't enough for a hospitality context
Reliability & Safety
  • Human-in-the-loop escalation — agents flag complex or ambiguous requests for staff review rather than attempting and failing
  • Structured outputs — all booking-critical agent responses use typed schemas to prevent malformed API calls
  • Guardrails — input/output validation prevents the AI from confirming bookings it can't actually make
  • Tool call validation — every API call made by an agent is validated against the hotel's live inventory before confirmation
  • Audit trail — all agent actions are logged for fraud detection, debugging, and compliance

RAG-based hotel knowledge —
grounded, current, reliable.

One of the most critical design decisions was how to give agents accurate, up-to-date knowledge about hotel policies, amenities, dining, and services — without hallucination. The answer was Retrieval-Augmented Generation (RAG) using pgvector for semantic search.

Hotel documentation — room descriptions for The Palace and The Towers, dining menus for VILLARD, Rarities, and MITANI New York, ila Only Spa treatments, local NYC recommendations, cancellation policies, packages and offers — is ingested, chunked, and embedded into a pgvector database. When the Hotel Information or Recommendations agent needs to answer a question, it retrieves the most semantically relevant chunks and grounds its response in that retrieved content. The result is an AI that stays factual, cites the right policies, and doesn't invent amenities that don't exist.

Content teams can update the knowledge base through a CMS integration — no engineering involvement needed for content changes. New menus, updated policies, seasonal packages like the Palace Pinstripes or Summer Bar offerings — all flow through automatically.

Stack & tooling

LangGraph LangChain Python / FastAPI RAG / pgvector LLMs (Brain PAWA) Opera PMS Synxis CRS Speech-to-Text (STT) Text-to-Speech (TTS) React PostgreSQL Redis Docker AWS REST APIs Function / Tool Calling Structured Outputs Human-in-the-loop

What this platform changes

6
Specialised agents handling the full guest journeyFrom room search and booking to concierge requests, in-stay services, and hotel knowledge — the platform covers the complete guest journey through a single conversational interface, replacing multiple disconnected forms and flows.
0
Forms. Zero booking forms required.Guests express intent in natural language — the agents extract structured data, validate against live inventory, and execute. The guest never sees a dropdown, date picker, or multi-step form.
Persistent conversation memory across sessionsGuest context — preferences, previous requests, stay history, loyalty status — is maintained across multi-turn conversations via Redis and PostgreSQL. The AI remembers. The guest doesn't have to repeat themselves.
↑ Trust
Reliability by design, not by luckStructured outputs, tool call validation, guardrails, and human escalation ensure the platform doesn't confirm what it can't deliver. Every booking action is validated against live inventory before confirmation. Trust is built into the architecture.

What building agentic AI taught me

This is the most intellectually interesting work I've done. Building agentic AI systems is a fundamentally different discipline from building traditional software — you're not just writing logic, you're designing systems that reason. The challenge shifts from "does this code do the right thing?" to "does this agent make the right decision in ambiguous situations?"

The hardest problem wasn't the LangGraph implementation or the RAG pipeline. It was defining the boundaries of what the AI should attempt vs. escalate. A guest asking to modify a booking is straightforward. A guest asking to "move everything around because my plans changed" is ambiguous. Getting that boundary right — and making the escalation feel natural rather than like a failure — required more iteration than any technical component.

I also deepened my appreciation for reliability engineering in AI contexts. In traditional software, if code is wrong, you fix it and deploy. In an AI agent, "wrong" is probabilistic and context-dependent. Building the validation, guardrails, and audit layers that make the system trustworthy for a luxury brand — where a bad interaction has real reputational consequences — was as important as building the agents themselves.

This is the direction everything is heading. And I'm glad to be building it now.

Previous case study
← IHCL Digital Platform
← Taj Hotels All projects →