Getting an AI system to work in a demo is surprisingly easy.
Getting one to work reliably when real customers, real money and real operational consequences are involved is a different engineering problem.
The gap between those two things is where many AI projects struggle.
The model may be capable. The prompt may be good. The prototype may be genuinely impressive. But production systems need something more: boundaries, evidence, observability and a way to recover when reality does not match the happy path.
| Prototype | → | Evaluate | → | Constrain | → | Observe | → | Operate |
Each step adds evidence and control before the system gains more responsibility.
The prototype optimises for possibility
An early AI prototype usually asks:
“Can we make the system do this?”
That is an important question. It proves that a capability is possible.
Production asks a different set of questions:
- How often does it work?
- How does it fail?
- What happens when the input is ambiguous?
- What happens when a dependency is unavailable?
- Can we detect a bad result?
- Can we stop or reverse an action?
- Can we explain what happened afterwards?
- Can we change the system without introducing a regression?
Those questions move the work from experimentation into engineering.
AI introduces a different kind of failure
Traditional software tends to fail around known boundaries: an exception, a timeout, an invalid input, a failed database query.
AI systems can fail while looking completely healthy.
An API can return HTTP 200 and the application can continue normally while the model has produced an incorrect classification, invented a fact, misunderstood an instruction or selected the wrong tool.
That means operational health and behavioural correctness have to be monitored separately.
Build an explicit system boundary
A production AI system should make a clear distinction between the model and everything around it.
The model can interpret, generate and reason. Other components should enforce the rules of the system.
A useful architecture separates:
- Input handling: validation, authentication and normalisation.
- Context: retrieval of the information the model is allowed to use.
- Model interaction: prompts, structured outputs and model calls.
- Validation: checks that the response satisfies the required contract.
- Policy: permissions, business rules and prohibited actions.
- Tools: controlled access to external systems.
- Observability: traces, metrics, logs and evaluation results.
- Recovery: retries, fallbacks, escalation and rollback.
This separation is particularly important for agentic systems. A model should not be the only thing standing between an instruction and a consequential action.
Define what “correct” means
One of the earliest production questions should be deceptively simple:
What does a correct answer actually look like?
For a summarisation task, correctness might involve factual coverage and omission of critical information.
For classification, it might mean a known label with an acceptable error rate.
For an agent, correctness may be about the outcome rather than the text it produced.
If an agent is supposed to resolve a support request, a beautifully written response is not enough. The ticket may need to be classified correctly, the right customer record updated and the appropriate response sent.
Define the outcome before deciding how to measure the model.
Turn evaluation into a development loop
A production AI team should be able to answer what changed between two versions of a system.
That requires a repeatable evaluation set.
Start with representative cases and include difficult cases, edge cases and previously observed failures. Run the current system against them. Store the results. Then change one thing and run the evaluation again.
The loop becomes:
- Capture representative cases.
- Define expected behaviour.
- Run a baseline.
- Make one controlled change.
- Run the same evaluation.
- Investigate regressions.
- Add newly discovered failures to the dataset.
This is the foundation for treating AI changes like software changes rather than subjective prompt tweaks.
Observe behaviour, not just infrastructure
Traditional monitoring might tell you that latency has increased or an API is returning errors.
For AI, you also need to know what the system is doing.
Useful signals include:
| Signal | Why it matters |
|---|---|
| Task success | Whether the intended outcome was achieved. |
| Failure category | Whether failures come from retrieval, reasoning, tools, policy or infrastructure. |
| Latency | Whether the system remains usable at real workloads. |
| Cost | Whether the economics remain viable. |
| Escalation rate | How often the system needs human intervention. |
| Tool errors | Whether external actions are succeeding. |
| Policy violations | Whether the system is attempting actions outside its authority. |
The goal is not to collect every possible metric. It is to collect enough evidence to understand whether the system is behaving as intended.
Design for failure before you scale
A useful production exercise is to deliberately ask what happens when each dependency fails.
- What happens if the model times out?
- What happens if retrieval returns nothing useful?
- What happens if the model returns malformed structured data?
- What happens if a tool succeeds but the confirmation is lost?
- What happens if the same request is retried?
- What happens if the agent misunderstands the user’s intent?
- What happens if a downstream system changes its API?
For each failure, there should be an intentional behaviour: retry, fallback, reject, pause, escalate or recover.
“The model probably won’t do that” is not a production strategy.
Make side effects harder than suggestions
There is an important architectural distinction between thinking and acting.
A model can generate a proposed database update without being allowed to execute it.
An agent can prepare a deployment without having production credentials.
A support agent can draft a refund without being able to authorise the payment.
This gives the surrounding system opportunities to validate, apply policy and require approval before an irreversible side effect occurs.
The closer an action is to customers, money, safety, security or regulated data, the more valuable these boundaries become.
Keep humans where they add judgement
Human involvement should not simply be added everywhere as a safety blanket.
If every low-risk action requires approval, the workflow may become slower than the process it was supposed to improve.
Instead, identify the decisions where human judgement genuinely matters.
A useful pattern is:
- automate predictable, reversible actions;
- prepare ambiguous or consequential actions for review;
- block prohibited actions entirely;
- escalate when the system cannot establish that it is operating inside its defined boundary.
This is where the autonomy model from the previous article becomes operational.
Production readiness is an evidence problem
There is rarely a single test that tells you an AI system is ready.
Instead, confidence comes from several kinds of evidence working together.
You want evidence that:
- the system performs its core task on representative cases;
- known failure modes are understood;
- important regressions are detected automatically;
- actions are appropriately constrained;
- operators can see what the system is doing;
- failures have defined recovery paths;
- changes can be evaluated before they reach users.
None of this guarantees perfection. It does something more useful: it makes the system’s behaviour observable, testable and governable.
A practical production checklist
Before moving an AI capability beyond an experiment, ask:
- Purpose: Is the intended outcome clearly defined?
- Evaluation: Do we have representative tests and known failure cases?
- Boundaries: What can the system access and change?
- Validation: Can outputs be checked before consequential use?
- Observability: Can we see both technical and behavioural failures?
- Recovery: What happens when the system is wrong or unavailable?
- Security: Are credentials and permissions scoped to the task?
- Governance: Can we reconstruct important decisions afterwards?
- Change management: Can we evaluate a new model, prompt or tool before release?
The shift from demo to engineering
The most important change between an AI demo and a production system is not usually the model.
It is everything built around the model.
A demo asks whether something is possible.
A production system asks whether it is reliable enough, bounded enough, observable enough and recoverable enough to operate in the real world.
That is why evaluation, constraints and autonomy belong together.
Evaluation tells us what the system actually does.
Constraints determine what it is allowed to do.
Autonomy determines how much of that authority it can exercise without intervention.
Put those three together and AI starts to look much less like a magic feature and much more like an engineering discipline.
The goal isn’t to make AI autonomous. The goal is to make its behaviour predictable enough that the right amount of autonomy becomes an engineering decision.