Most teams test their first AI feature the same way: they try five or six prompts, the answers look good, and they ship. Two weeks later someone edits the prompt to fix one complaint, and three other behaviours quietly break. Nobody notices until a customer does. An LLM evaluation set (often called an "eval set") is the fix. It is a collection of realistic inputs paired with a description of what a good answer looks like, which you run every time anything changes.
This guide explains how to build one without a research team or expensive tooling. It is written for founders, product managers, and engineers at startups and SMEs who are shipping chatbots, document extractors, summarisers, or agents and want to stop guessing whether a change made things better or worse.
Traditional software is deterministic. If a function returns the right value today, it returns the right value tomorrow. Language models are different: the same input can produce different outputs, and a small prompt tweak can shift behaviour in places you were not looking at. Spot checking fails for three reasons.
An eval set is a regression test suite for behaviour you cannot fully specify in code.
Each test case has three parts: an input, the context the model would see in production, and a definition of success. The definition of success is the part teams skip, and it is the part that makes the whole exercise useful.
Pull examples from your support inbox, chat logs, uploaded documents, or sales calls. Real users misspell words, paste messy text, ask two questions at once, and switch languages mid sentence. If you serve Indian customers, include Hinglish messages and regional name formats, because a model that handles clean English perfectly can stumble on these.
Language models rarely produce identical text twice, so do not compare against a single "golden answer". Instead describe the properties a correct answer must have. For a refund policy bot, that might be: "States the return window correctly, does not promise a refund for opened items, and offers to connect the customer to a human." Those are checkable statements.
Consider an illustrative scenario. A D2C brand launches an AI assistant that answers order and return questions. The team writes a prompt, tests ten questions, and ships. A month later the founder asks the assistant to sound friendlier. The new prompt works nicely for greetings, but the assistant starts offering refunds on final sale items, because the friendlier tone made it more agreeable.
With an eval set, this would have been caught in minutes. One test case reads: "Customer asks to return a final sale item. Expected: politely declines, explains the policy, offers store credit if the policy allows." The tone change fails that case, the team sees it before release, and they adjust the prompt. The eval set did not make the model smarter. It made the team aware of a trade off they had accidentally made.
These are cheap, fast, and reliable. If your model extracts invoice data, you can check that the total is a number, the date parses, and the vendor name matches a known list. Whenever an output can be validated by code, validate it by code.
A second model reads the answer plus your rubric and returns pass or fail. This works well for tone, completeness, and faithfulness to source documents. Keep the rubric narrow ("Does the answer contradict the provided policy text?") and spot check the judge's decisions by hand every so often. A judge that is lenient will quietly hide regressions.
Reserve people for the cases where a wrong answer is expensive: legal wording, medical information, financial advice. A weekly review of a small sample is often enough, and it keeps the team close to how the feature actually behaves.
If your feature uses retrieval augmented generation, a wrong answer can come from the retriever fetching the wrong passage or from the model misusing a good passage. Test them separately. For retrieval, record which document should have been found for each question and check whether it appears in the top results. For the generation step, supply the correct passage and see whether the model uses it faithfully.
Agents add another layer: tool choice and tool arguments. Test whether the agent picks the right tool, passes valid arguments, and stops when it should ask a human. When something fails in production, tracing and observability for LLM workflows tells you which step went wrong, and the failing trace becomes your next test case.
You do not need a platform to begin. Open a spreadsheet with four columns: input, context, success criteria, and result. Add 30 rows from real usage. Write a short script that sends each input to your AI feature, collects the outputs, and applies your checks. Run it, record the pass rate, and put that number in your team chat. From that point on, every change to the AI feature has a score attached to it.
If you want help designing evaluations, wiring them into delivery, or building the AI feature itself, our team works on this every day through our AI development services.
AI features do not fail loudly. They drift, regress, and surprise you in ways that a handful of manual tests will never reveal. A small evaluation set turns that uncertainty into a number you can track, a test you can automate, and a habit your whole team can share. Start with thirty real examples, write checkable success criteria, run them on every change, and keep adding the failures you find. Within a few weeks, you will ship AI changes with the same confidence you have shipping ordinary code.