{"slug": "introducing-novadesk-ai-building-a-stateful-hotel-concierge-with-langgraph", "title": "Introducing NovaDesk AI: Building a Stateful Hotel Concierge with LangGraph", "summary": "A developer built NovaDesk AI, a stateful hotel concierge agent using LangGraph for orchestration, Chainlit for the chat frontend, and FastAPI to expose REST endpoints over a SQLite database. The system combines advanced RAG (HyDE and query rewriting) for policy questions with database-backed room availability, booking, cancellation, and room service flows, plus short-term and persistent memory and a human-in-the-loop approval step for cancellations. Strict domain guardrails route off-topic prompts away from the agent.", "body_md": "When you start learning Agentic AI, you quickly hit a wall. Most tutorials show you how to build a basic chatbot that can search the web or call a simple calculator tool. But building a system that can actually manage multi-step processes, route intents, and remember context requires a massive leap in complexity.\n\nI wanted to dive deep into Agentic AI and LangGraph, but I needed the right playground. If a project is too simple, you don't actually learn the orchestration framework. If it requires heavy domain logic (like the complex mortgage analytics I deal with at work), you spend all your time writing business rules instead of AI agents.\n\nEnter **NovaDesk AI**: a fully stateful, hotel customer conceirge system.\n\nBefore we get into what it does, you can see the final system in action here:\n\n🎥 **YouTube**: \n\n💻 **Github**: \n\nAn enterprise-grade, stateful AI agent built to simulate a virtual hotel front desk. Unlike basic Q&A chatbots, this system bridges the gap between unstructured natural language and strict database transactions, allowing users to query policies, check room availability, book rooms, and request room service seamlessly.\n\nThis project demonstrates advanced AI engineering concepts including Agentic Orchestration (LangGraph), Advanced RAG (HyDE & Query Rewriting), State & Memory Management, and Human-in-the-Loop (HITL) security via FastAPI.\n\nThe system is broken down into three main layers:\n\nFrontend (Chainlit): Provides a clean, conversational chat UI.\n\nOrchestration Brain (LangGraph): Manages conversation state, memory, guardrails, and decision routing.\n\nAction Execution (FastAPI): Serves as the toolkit for the agent, exposing REST endpoints to interact securely with the SQLite database.\n\nStrict Domain Guardrails: A routing node intercepts prompts. If a user asks off-topic questions (e.g…\n\nThis post is the introduction to a multi-part series where I will document the entire build—from architecture and LangGraph subgraphs to RAG optimization and memory management. But first, let’s look at what the system actually does.\n\nNovaDesk AI isn't just a wrapper around an LLM prompt. It is a system designed to act like a real hotel concierge. It connects to a database, enforces booking policies, asks clarifying questions when information is missing, and remembers who you are.\n\n**Note:** Now, we can use even a non-AI website to book rooms or request for cancellations. Except for asking questions and getting immediate and relevant answers (using RAG), this project may not require AI. But the advantage is, the customer can speak in natural language and get answers in natural language. Also, the purpose of this project was more about learning.\n\nHere are the core capabilities I built into the system:\n\nUsers can ask unstructured questions about hotel policies (e.g., \"What is the pet fee?\" or \"Can I get late checkout?\"). The bot retrieves the exact answers from a knowledge base, handling multi-part and confusing queries without hallucinating.\n\nThe bot is connected to a mock SQLite database. If a user asks for a room this weekend, the bot checks the database, confirms availability, and walks the user through the booking process. If the user forgets to provide an email or a name, the bot realizes the missing parameters and asks for them before executing the booking.\n\nHandling cancellations requires precision. The bot can retrieve a user's current booking from the database and securely execute a cancellation subgraph, updating the backend instantly. The subgraph also includes **HITL** (Human-in-the-loop) to ensure cancellation can't occur automatically and requires admin approval. \n\nAs a fun extra feature, I built a room service tool. The bot recognizes when a user wants food, pulls from a predefined menu of dishes, and records the order.\n\nA concierge shouldn't forget what you said two minutes ago. NovaDesk AI uses short-term and persistent memory so a user can say, \"Actually, change that to two nights,\" and the bot understands the context perfectly.\n\nTo make all of this happen, I used:\n\n`checkpointer` and `InMemorySaver` to handle state.\nAs a final milestone, I managed to deploy the FastAPI backend to Azure so it’s publicly accessible. Deployment is still a massive learning curve for me, and getting it live was an adventure of its own, but having a working production URL is incredibly satisfying!\n\nBuilding this was a series of trial and error, and I want to share exactly what broke and how I fixed it. In the upcoming posts, I will be doing deep dives into specific engineering challenges:\n\nIf you are learning GenAI, LangGraph, or just want to see how to architect an agentic workflow, make sure to follow along!\n\n**Have you started experimenting with LangGraph yet, or are you still relying on standard LangChain agents? Let me know in the comments! 👇**", "url": "https://wpnews.pro/news/introducing-novadesk-ai-building-a-stateful-hotel-concierge-with-langgraph", "canonical_source": "https://dev.to/zeroshotanu/introducing-novadesk-ai-building-a-stateful-hotel-concierge-with-langgraph-1p07", "published_at": "2026-11-09 15:15:40+00:00", "updated_at": "2026-11-09 15:25:40.080697+00:00", "lang": "en", "topics": ["ai-agents", "large-language-models", "ai-tools", "developer-tools"], "entities": ["NovaDesk AI", "LangGraph", "Chainlit", "FastAPI", "SQLite"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/introducing-novadesk-ai-building-a-stateful-hotel-concierge-with-langgraph", "markdown": "https://wpnews.pro/news/introducing-novadesk-ai-building-a-stateful-hotel-concierge-with-langgraph.md", "text": "https://wpnews.pro/news/introducing-novadesk-ai-building-a-stateful-hotel-concierge-with-langgraph.txt", "jsonld": "https://wpnews.pro/news/introducing-novadesk-ai-building-a-stateful-hotel-concierge-with-langgraph.jsonld"}}