AI in production
How do you run LLM testing with real user prompts?
Our demos looked fine. The first structured test from a real customer told us what to fix next.
Short answer
LLM testing with real user prompts starts with the questions your customers actually ask. Turn them into a repeatable test set with expected behavior, and let a few real customers run their own structured tests before you scale. LLM testing on demo prompts hides the failures that matter: lost context between turns, repeated answers and wrong filters. Real prompts expose them early, while fixing them is still cheap.
On this page
01Why demo prompts are not a test
A demo prompt is written by the people who built the assistant. It uses the words they expect, asks one thing at a time and avoids the edge cases they already know about. That makes it a poor test. This is part of our larger guide, LLMOps for SaaS: keep AI features working in production.
Real users ask several things at once, change their mind halfway through, refer back to something three turns ago and use words your team never considered. They also care about different things than the builders do. A builder checks whether the answer is plausible. A user checks whether it is right for their situation.
Anthropic's guidance on building evaluations makes the same point: test cases should match the real distribution of tasks and include edge cases such as ambiguous, missing or poor input. Hamel Husain's widely read essay on evals adds that teams should log every conversation and keep reading those traces, because looking at real data is where most failures are found.
02Build the LLM testing set from real conversations
The best test set is built from what users already do. We follow a simple loop.

- 01
Collect real prompts from pilot users, support tickets, sales calls and existing search logs.
- 02
Group them by intent, such as search, comparison, follow up, policy question or hand off.
- 03
Write the expected behavior for each, not an exact answer
which data it should use, which filters it should apply and what it must never do.
- 04
Add multi turn scripts, because many failures only appear on the second or third message.
- 05
Run the full set on every change to the prompt, the tools, the model or the data.
- 06
Add every new failure from production to the set, so it cannot come back unnoticed.
Expected behavior matters more than expected wording. Two good answers can be phrased differently. A bad answer usually breaks a rule you can check: it shows a unit that is not in stock, ignores a filter, forgets a constraint or invents a price.
03What to check, and how
Different failures need different checks. A small number of automatic checks catches most regressions; human review catches the rest.

| Failure | Example | How to check |
|---|---|---|
| Lost context | Forgets the budget set two turns earlier | Multi turn scripts with assertions on the final filters |
| Repeated results | Shows the same unit again as a "new" option | Check returned item identifiers across turns |
| Wrong filter | Ignores location or condition | Compare the tool call parameters with the expected ones |
| Invented facts | Quotes a price or unit not in the data | Verify every item and price against the source record |
| Wrong routing | Answers a service question as a sales one | Label the intent and check where the conversation went |
| Unsafe output | Responds to abuse or leaks internal text | Safety prompts with pass or fail rules |
Code based checks are cheap and fast: they look at tool calls, returned identifiers and fields. Model based grading can help for tone and helpfulness, but check it against human labels before you rely on it.
04Let customers run their own structured tests
The most valuable test we have seen is one a customer designs. When a customer writes its own script of questions, based on how its staff and buyers really talk, it tests what they care about and in their order of importance. It also produces findings that the customer already believes, which makes prioritization easier.
To make this useful:
- Give the customer a simple format: the prompt, what they expected and what happened.
- Ask for whole conversations, not single questions.
- Review every finding with the customer and agree which ones block rollout.
- Re-run their script after each fix and share the result.
05Keep the test set alive after launch
A test set is only useful while it reflects how people use the product today. Usage changes after launch: new customers bring new vocabulary, seasons change what buyers ask, and new features open new paths through the conversation.
Treat the test set like code. Give it an owner, review it on a schedule and version it alongside the prompts and tools it tests. When you change the model or the provider, run the full set before and after, and compare results case by case rather than looking only at the overall pass rate. A model upgrade that improves the average can still break a case a key customer depends on.
Also watch for drift in the opposite direction. If every case passes for weeks, the set may have stopped finding problems. Pull a fresh sample of real conversations, read them, and add the ones that surprise you. Reading real conversations is slow, but it is the step that finds the failures nobody thought to write a test for.
Finally, share results with the people who own the outcome. A short weekly note that lists new failures, fixes and open issues keeps product, engineering and customer teams working from the same picture.
06What we see in production
We built a multi-tenant AI sales assistant for a dealership software company serving RV, marine and vehicle dealers. In our own demos the assistant looked fine. Then a dealer ran its own structured test and found context loss between turns, repeated units and wrong location handling. Early dealer tests also showed wrong classes being returned.
That single test reset our priorities. Instead of adding features, we focused on conversation state and filters: conversation state moved into a database backed checkpointer, inventory search moved to an index with explicit filters, and the flow was rebuilt as a tool using agent so filters are visible in each call and can be checked.
We tested against real dealer prompts and pushed to stabilize with a few live dealerships before scaling. Chat history with AI summaries, exit reasons in the analytics dashboard and token usage logged per conversation now give the team real traces to review. The assistant has been live on dealer websites in the U.S. and Canada since about January 2026, with leads and appointments flowing into the client's CRM.
Before a product has real users, golden prompts stand in for them: on an agent that builds internal apps from company data, an evaluation harness runs a set of retail cases through the real build agent in throwaway databases and scores answer accuracy against reference SQL, repairs, fallbacks and time.
07Decide what "ready to scale" means
Before rolling out to all customers, agree in writing what the assistant must pass:
- The full test set, with zero failures on rules you treat as hard (invented stock, wrong prices, leaked data).
- An agreed pass rate on softer checks, such as helpfulness.
- Clean results from at least one customer's own script.
- Logging in place, so every new failure becomes a new test.
A pass rate below 100 percent on soft checks can be a reasonable product decision. A failure on a hard rule is not. For more on the patterns that break assistants after launch, see why AI agents fail in production.
Frequently asked questions
Where do real user prompts come from?
Collect them from pilot users, support tickets, sales calls and existing search logs. Before a product has real users at all, golden prompts stand in for them, such as a set of realistic cases run through the real agent in throwaway databases. Once customers use the assistant, add every new failure from production to the set.
Should tests check the exact answer wording?
No. Write the expected behavior for each case instead: which data it should use, which filters it should apply and what it must never do. Two good answers can be phrased differently. A bad answer usually breaks a rule you can check, such as showing a unit that is not in stock or inventing a price.
Can a model grade the assistant's answers?
For tone and helpfulness, model based grading can help, but check it against human labels before you rely on it. Code based checks are cheaper and faster for most failures, because they look at tool calls, returned identifiers and fields. A small number of automatic checks catches most regressions, and human review catches the rest.
When is an assistant ready to scale to all customers?
When it passes the full test set with zero failures on hard rules such as invented stock, wrong prices or leaked data. It should also meet an agreed pass rate on softer checks and have clean results from at least one customer's own script. Logging must be in place, so every new failure becomes a new test.
How Datics helps
Datics specializes in brownfield AI: bringing production AI into the product you already operate, without forcing a rebuild.
Related work
Case studies from our projects on the same subject.
Coast Technology
Automotive & Dealerships · AI sales assistant for dealers
RV shoppers get units from live stock, with towing fit computed, not guessed
Dealer sites offered static forms and filters. Now shoppers ask in plain words and get real units from the hourly feed, with the reason each one fits.
Cosmic AI
Financial Services · Multi-agent investing assistant
Retail investors go from research to a confirmed order in one conversation
Investors juggled data, news and a separate broker. Now agents research and prepare each trade in chat, and nothing is placed until they confirm.
CleanHaus
Real Estate & Hospitality · Turnover operations SaaS
Hosts and cleaners manage rental turnovers in chat, within each person's permissions
Owners, managers and cleaners all talk in one property chat. Now an AI there acts for each of them, only within that person's role.
More on AI in production
AI in production
LLMOps for SaaS: keep AI features working in production
LLMOps for product teams: evaluation gates, prompt and model versioning, tracing, regression checks, cost per task, kill switches and model upgrades.
AI in production
AI agent monitoring: catch regressions in production
AI agent monitoring for live SaaS products: what to trace on every run, which user signals to watch, how to score traces and when to roll a change back.
AI in production
Why add an AI kill switch to every feature and agent?
An AI kill switch lets you disable or degrade an AI feature in seconds, without a release. Here is how we design kill switches and safe fallbacks.
AI in production
How can prompt management put domain experts in control?
Prompt management lets domain teams refine AI prompts and scoring rules after launch, while engineering keeps the pipeline, guardrails and staging step.
AI in production
Which AI pricing model works when every answer costs money?
Build an AI pricing model from cost per action: decide which plans trigger expensive AI work and how often, then enforce limits on the server.
AI in production
How do you approach AI model testing on messy real data?
AI model testing for document and data extraction: build messy test sets early, compare AI output with human entry and turn each failure into a regression case.
Your customers already expect AI from your product.
Let us make it real without rebuilding what already works.
