01

Language models are probabilistic. Business outcomes do not have to be vague.

A language model may interpret two descriptions of the same request differently. That flexibility helps when evidence is spread across a document, an email, and a reviewer note. It is a poor place to store an approval limit, permission rule, price calculation, or account update.

The goal is not to pretend the model has become deterministic. Give the flexible part a narrow job, then surround it with software that behaves predictably. The model can gather and explain context. Ordinary code decides which records it may see, which tools it may call, and which actions require approval.

02

Begin with cases from the real workflow

An evaluation starts with a case the system will actually face and a written definition of a good result. For document processing, that may be a conflicting amount that must enter a review queue. For a voice agent, it may be a reschedule request from a verified caller—or a sensitive request that must be handed to a person.

We build the first evaluation set from normal requests, edge cases, known failures, and requests the system should refuse. These cases become a shared specification for the client and the build. They are more useful than a generic model benchmark because they describe the work this particular system must perform.

03

Keep business rules in ordinary software

The strongest checks are often deterministic. Did the cited passage exist? Did the system retrieve a restricted document? Did it call an approved tool with the correct account identifier? Did the database change, and did the confirmation match the new record? These questions can usually be answered with code rather than another model.

Open-ended qualities still matter. A summary may need to preserve an important caveat, and a handoff may need to give staff enough context to continue. Those outputs can be reviewed with a clear rubric, a calibrated model-based grader, or a person. We use the simplest grader that can judge the requirement honestly.

04

The evaluator also needs evaluation

An automated grader can be inconsistent or reward the wrong behavior. Before relying on it, we compare its judgments with examples reviewed by the people who understand the work. We also read failed transcripts to check whether the system failed or the test itself was badly written.

No single score is a complete quality system. Deterministic tests, model-based review, manual sampling, production monitoring, and user feedback catch different kinds of failure. Together they make changes visible before a small mistake becomes an operating habit.

05

Use evaluations before and after launch

The evaluation suite runs while we change prompts, retrieval, tools, interfaces, or models. A release should improve the target behavior without breaking cases that already worked. We can also track latency, cost, handoffs, and correction rates against the same set of tasks.

After launch, real failures become new evaluation cases. Production monitoring shows what the original set missed, and periodic human review keeps the quality bar tied to the work rather than a dashboard. The system is never declared perfect. It becomes easier to inspect, change, and operate responsibly.

Working conclusion

Use AI where flexible interpretation helps. Keep business rules deterministic. Test the complete system against real work before and after it launches.