An agent without explicit success criteria does not know when it is done, or when it has failed

Give a plan no clear finish line and the agent either stops too early and calls a half-done job complete, or runs on past the point it should have stopped.

B

Balagei G Nagarajan

3 MIN READ


A plan racing toward a blurry finish line versus one with a clearly marked checkable goal
Early in a task an agent holds the goal sharply.
— from “An agent without explicit success criteria does not know when it is done, or when it has failed”

Key facts.

  • NoLiMa: GPT-4o drops from 99.3% to 69.7% at 32K tokens as goal-relevant information sinks in the context, so long-run goal judgment fails.source
  • No termination condition means the agent either loops past done or stops the moment something looks plausible. Both are wrong finishes.source
  • Checking a result externally beats the agent's own judgment: RLSR shows verification is reliably cheaper than generation, so an outside criterion catches what a faded agent misses.source

Why isn't the agent's own sense of done enough?

Goal memory drifts. Early in a task an agent holds the goal sharply. Thirty-two thousand tokens in, the goal-relevant information has sunk into context the model uses poorly. NoLiMa put numbers on this: GPT-4o accuracy drops from 99.3% to 69.7% at 32K tokens. So now the agent is trying to judge completion with a faded picture of what completion looks like. Two bad things happen. It quits early, because the output looks plausible and it can't quite remember what done actually required. Or it runs past the real finish line, unable to recognize it got there. In both cases, nothing outside the agent was holding the definition of done, so nothing caught the error.

Write the success criteria down externally, in checkable form. The agent's job is to satisfy a condition, not to feel finished. An external step evaluates whether the condition is met. That check doesn't degrade as the context grows.

A checklist matrix of success criteria each marked met or unmet before the agent can terminate

What goes into the criteria?

List the conditions that must be true for the job to actually be done: record updated, value in range, required outputs present, downstream effect confirmed. Then add two termination rules: one that stops the agent when criteria are met, one that stops it when they're not met after a reasonable number of steps. That second rule is the one that prevents infinite loops. The agent stops when the criteria say so, not when it runs out of ideas.

Finish-line ownerBehavior
The agent's judgmentStops early or runs on as the goal fades
Explicit checkable criteriaStops exactly when the job is truly done

Defining those checkable finish lines is part of what VibeModel does as the Pattern Intelligence Layer. We model the patterns of a completed job and turn them into success and termination criteria an external check can enforce, so the agent ends where the goal was actually met.

Frequently asked questions

Can't I just tell the agent the goal in the prompt?
The prompt fades into a long context. A checkable criterion evaluated externally does not degrade the way the agent's recall does.

What if success is hard to define?
Approximate it with the conditions you can check and route the rest to a human gate. Partial explicit criteria beat none.

How do I stop infinite loops?
Pair success criteria with a hard step or time bound, so an unmet goal still terminates instead of running forever.


Share this post

Join the discussion

Have a take, a war story, or a question? Sign in with GitHub to comment and react. Comments are powered by GitHub Discussions, ad-free and yours to moderate.

Continue Reading

Find where your agent breaks, before you build it

Faultmap maps where your agent will fail from the goal and your data, then hands you the first test suite it has to pass.