I recently spent a month building a customer support bot. In theory, it was simple: take a user’s question, pass it to an LLM with some context, and return a helpful answer. In practice, my bot was a confident liar. It’d tell users that a product had a feature we never shipped, or quote a pricing tier that didn’t exist. Nothing embarrassing if you squint—but for a support tool, every hallucination was a trust bomb.
At first I thought, “More prompt engineering.” I added system messages like “You are a friendly support agent. Only answer from the provided context. If unsure, say you don’t know.” The bot just got better at sounding uncertain while still making stuff up. LLMs are incredible at generating plausible text—they’ll happily fabricate a whole return policy if it completes the sentence nicely.
What I Tried That Didn’t Work
I went through a few dead ends:
Simple FAQ lookup – Keyword matching against a list of Q&A pairs. Works for obvious questions (“What’s your return policy?”) but fails on rephrasings or multi-part questions. Also, maintaining the list became a nightmare as we added new products.








