Shipping LLM features that survive production
Every team we talk to has the same story: the prototype was magic, the demo killed in the all-hands, and then the feature quietly stalled on the way to production. The gap between "works in a notebook" and "works for customers" is wider for LLM features than for any class of software we've built before.
Here's the playbook we use to close it.
Start with an eval set, not a prompt
Before we write a single prompt, we build a small evaluation set — 30 to 50 real examples of the inputs the feature will see, with agreed-upon judgments about what a good output looks like. This does two things:
- It forces the uncomfortable conversation about what "good" means before anyone falls in love with a demo.
- It turns prompt iteration from vibes into engineering. Change the prompt, run the evals, read the diff.
The eval set is the spec. Everything else is implementation.
Treat the model as a component, not the product
The model call is maybe 10% of the system. Around it you need:
- Input shaping — retrieval, truncation, and formatting that decides what the model actually sees.
- Output contracts — structured outputs with validation and retries, so downstream code never parses free text and hopes.
- Fallbacks — what happens on timeout, on refusal, on a malformed response? The answer can't be a stack trace.
- Observability — every call logged with inputs, outputs, latency, and cost, so "the AI feels worse this week" becomes a query instead of a fight.
Ship behind a measurement, not a launch
We roll LLM features out the way you'd roll out a risky migration: to a small slice of traffic, with the old path still alive, comparing outcomes. LLM behavior shifts with model updates, data drift, and prompt edits — the measurement loop isn't scaffolding you remove after launch. It is the production system.
The boring stuff is the moat
None of this is glamorous. That's the point. Anyone can wire a model to a text box in an afternoon — the teams that win are the ones whose features still work in month six, survive a model upgrade without a rewrite, and get better every week because the eval set keeps growing.
That's what "production-grade AI" means to us. Demos are easy. Monday morning is hard.