Support

Need help?

Most answers are already written down. For everything else, Oneop does not publish a response time — there is no SLA instrument behind one — so the fastest thing you can do is send a complete first message.

Search the help centreEmail support@oneop.ioOpen your workspace

Worth including

  • The email you log in with
  • The URL of the screen it happened on
  • What you expected, and what happened instead

Goes somewhere else

AI Governance

Common AI agent failure modes, and the controls that catch them

By The Oneop team8 min read

TL;DR

AI agents fail in six recognisable ways: looping on repeated observations, misusing a tool they were granted, acting on stale context, completing part of a task and reporting success, answering confidently and wrongly, and consuming budget without producing anything. Each has a specific detecting control, and none of them is caught by a general accuracy metric.

Agent failures are not random. They come in a small number of recognisable shapes, and each shape has a control that catches it. The reason teams get surprised is that they instrument for the wrong one: general accuracy metrics catch confidently wrong answers and catch almost nothing else on this list.

Here is the catalogue, each failure paired with what actually detects it.

The six failure modes at a glance

Failure modeWhat it looks likeThe control that catches it
LoopingSame tool, same parameters, same result, repeatedlyCompare consecutive observations; end the run on a repeat
Tool misuseA granted tool called with wrong or invented parametersParameter validation at the tool boundary, plus a granted-tool catalogue
Stale contextActing in step five on what was read in step oneRe-read immediately before any write
Silent partial completionTwo of three sub-tasks done, run reports successDistinct exit reasons and per-step observation storage
Confident wrong answerFluent, plausible, incorrectGrounding in live records; a null confidence rather than a default
Runaway costSteps per run drifting upward across a fleetCost per completed goal, plus per-run token and step ceilings

Looping

An agent loops when its reasoning returns to a state it has already been in. It calls the same tool with the same parameters, gets the same answer, and concludes that it should try again, often with a slightly different rationalisation each time, which is why reading the trace makes it look like progress.

The control is cheaper than most people expect: compare each observation with the previous one. Two identical results in a row means the agent is not learning anything from its tools, and the run should end. Oneop’s AI agents do exactly this, ending a run as no progress on two identical consecutive observations, underneath a step ceiling of six by default with a hard cap of twelve.

The distinction between those two mechanisms is worth understanding. The step ceiling is a budget backstop: it stops the loop eventually, after you have paid for it. Observation comparison is a detector: it stops the loop at the moment the loop becomes evident. You want both, and you want the detector to fire first.

Tool misuse

Tool misuse is an agent calling a tool it holds, with parameters that are wrong, malformed or invented. The agent believed the parameter existed, or hallucinated an identifier, or passed a value of the right type and the wrong meaning.

Two controls, layered. First, a fixed tool catalogue with a granted subset per agent: a tool the model names that was not granted is refused rather than improvised. That converts an entire class of failure into an immediate, visible refusal. Second, validation at the tool boundary: the tool itself rejects parameters that do not resolve, rather than the model being trusted to produce good ones.

The design principle: an agent asking for a capability it does not have should produce a boring refusal, not an error, and definitely not an approximation.

Stale context

A run takes time. An agent reads an invoice in step one, reasons through steps two to four, and writes in step five. Everything it believes is a snapshot taken at step one, and the world moved.

This is the failure mode that punishes architectures where the AI reads a synced copy of your data rather than the records themselves. A nightly sync makes every agent decision up to twenty-four hours stale by construction. Reading live records narrows the window from hours to seconds, which is most of the benefit. Oneop agents query the same invoices, deals, tickets and stock rows staff have open, in the same workspace, rather than an API copy. The argument for that architecture is set out in the AI agent system of record.

Narrowing is not closing. The remaining control is re-reading immediately before a write: check the state you are about to change at the moment you change it, not at the moment you decided to.

Silent partial completion

The worst one, because it generates no signal. The agent is asked to do three things, does two, and ends the run reporting success. Nothing errored. The trace looks fine to a skim. The third thing surfaces a week later when something downstream needs it.

Two controls. First, distinct exit reasons rather than a success boolean. Oneop stores nine, including out of steps, out of tokens, out of time, no progress and tool error, so a run that stopped because it ran out of room is not filed alongside one that finished. Second, storing the observation from every step, so completion can be verified against what tools actually returned rather than against the agent’s own closing summary.

That second point is the general rule for this entire list: never let the agent’s account of itself be the record. An agent’s summary is generated by the same process that made the mistake.

Confident wrong answers

The failure everybody knows about, and the one where controls are weakest, because fluency and correctness are produced by the same machinery.

Grounding is the main lever: an agent answering from live records is wrong less often than one answering from training data, and it is wrong in ways that are traceable to a record you can inspect. The complementary control is a hard rule about empty results. When a read finds nothing, the agent must be told there is nothing on file, not left with an absence to fill. That single behaviour is the difference between an agent reporting an empty pipeline and one describing an imaginary deal.

Be sceptical of confidence scores as a control. A score attached to a run is the model’s own assessment of its answer; it is useful for sorting a review queue and it is not a calibrated probability. The honest implementation stores null when no scoring pass produced a value rather than defaulting to something plausible, which is what Oneop does. A simulated run stores no confidence at all rather than a flattering number.

Runaway cost

Runaway cost is rarely one dramatic incident. It is drift: steps per run creeping up across a fleet, each run individually unremarkable, the monthly total quietly doubling.

Per-run ceilings bound the worst case: a token budget, a wall clock, a step cap. What catches the drift is the ratio: cost per completed goal, not cost per run. A fleet whose cost per run is flat while its completion rate falls is getting more expensive at the thing you wanted, and only the ratio shows it.

Two implementation details make cost controls trustworthy rather than decorative. A reservation should be taken before the call and must fit what is left, so four credits remaining and a five-credit action means the action does not start rather than starting and stopping mid-run. And a call the provider never completed should be refunded, with the reservation released, so you pay for answers rather than attempts. Both behaviours are described on AI governance, along with the credit weights per kind of work and an honest note that an action the platform has not classified is charged at the heavier rate rather than the lighter one.

The failure case: three controls, one incident, none of them fired

A reorder-planning agent reads stock levels, works out what needs reordering, and drafts purchase orders. It has a step ceiling, an action ceiling and a cost alert. All three are correctly configured.

A supplier’s product codes change. The stock read still succeeds (the rows are there), but the agent’s matching logic now finds no supplier for half the items. It reasons that those items have no supplier on file, skips them, drafts purchase orders for the rest, and ends the run at goal reached in three steps. Under the step ceiling. Under the action ceiling. Cheaper than usual, so the cost alert reads as an improvement.

Three weeks later, half the catalogue is out of stock.

Every control worked as designed and none of them was a detector for this failure, because this is silent partial completion and the three controls installed were all bounds. Bounds stop runaway behaviour. They say nothing about work that quietly did not happen. What would have caught it is a check on the observation content — items examined versus purchase orders drafted, as a ratio, alerting when the gap moves — which is a detector rather than a bound, and belongs in the operator view described in AI agent observability.

The argument

Most agent reliability work goes into making failures less frequent. That is the lower-value half. Frequency is a property of the model and it improves on someone else’s schedule; what happens when a failure occurs is a property of your system, and it is the half you control.

So the question to ask of any agent deployment is not “how often is it wrong?” It is: for each of the six modes above, name the mechanism that detects it and what that mechanism does next. If the answer for any row is a prompt instruction, that row is uncontrolled. The input-side half of this, covering what reaches the model in the first place, is in AI agent guardrails.

Frequently asked questions

What is the most common AI agent failure mode in production?

Silent partial completion — the agent does part of a multi-step task, reports success, and the missing part surfaces days later. It is the most common because it is the only one on the list that produces no error signal at all. Looping and tool errors announce themselves; a partially completed task looks exactly like a completed one until something downstream needs the missing piece.

How do you detect an AI agent stuck in a loop?

Compare consecutive tool observations. An agent going in circles produces identical results from identical calls, so two matching observations in a row is a reliable and cheap signal that ends the run before a step ceiling would. Step ceilings alone are a backstop rather than a detector, because they stop the loop only after the budget is already spent.

Can better prompts fix AI agent failure modes?

Prompts reduce frequency; they do not change what happens when the failure occurs. A prompt asking an agent not to loop is advice, and advice is not a control. The failures on this list are bounded by mechanism — ceilings, observation comparison, tool catalogues, freshness checks — because a mechanism holds when the model behaves in a way you did not anticipate.

Why do AI agents act on stale context?

Because a multi-step run takes time, and the world changes during it. An agent reads an invoice in step one and acts on it in step five; if anything changed between the two, the agent is acting on a snapshot. Reading live records rather than a synced copy narrows the window but does not close it — re-reading immediately before a write is what closes it.

What does runaway AI agent cost actually look like?

Rarely one dramatic bill. Usually it is a gradual rise in steps per run across a fleet, where each individual run looks unremarkable and the monthly total doubles. Detect it as cost per completed goal rather than cost per run, since a rising denominator hides inside a flat numerator.

Written by

The Oneop team

Writing from the team that builds Oneop — an AI customer platform with web chat and email on top of a real CRM, help desk, ledger and warehouse.

Related reading

Start on the free plan and see the real thing

No credit card. Free plan, 2 seats.

Free forever · 2 seats · No credit card