How to make an AI agent do what you asked: the levers that decide output quality and adherence

For anyone who asks an AI for a piece of work, a briefing, an analysis, a draft, a plan, a program, and keeps getting back something plausible, off-spec, or invented; for the engineers who run coding and research agents all day and see the same failures at scale; and for whoever decides whether the team keeps relying on it. After reading, you can take one bad output and tell first whether the task was simply too big for one conversation, which is the most common cause and the cheapest fix, and otherwise name which of the six levers failed (task complexity, context contents, instruction writing, grounding, verification, model settings) and fix that one lever first. Each figure is traced to a published paper or a vendor document listed at the end, with the model and year it was measured on; vendor figures are marked as claims. The one experiment of my own, a one-page briefing from three documents run four ways, is specified fully in Level 0 as a protocol anyone can run in a chat window, and its result slots are left empty until it has been run.
The quick grasp
Most bad outputs come from asking for too much at once. The picture I keep in my head has two ends. At one end is a simple task with a clean, clear context: the model performs. At the other end is a very complex task with a messy context: it does not. Somewhere between the two is a boundary where the model stops working properly, and the job is to stay on the right side of it. Both things that push you over are under your control, and the bigger of the two is the task. If the task is too complex for one conversation, cut it into many simpler, self-contained ones and run each on its own. If the context is messy, clean it. The six levers below are the ways of doing those two things, plus the check that tells you which side of the boundary a given output came from.
The model never sees only your question. It sees the whole context: the system prompt, your saved instructions, the files in the project, the tool definitions, the skills and plugins, the memory, the conversation so far, and only then your line. Quality and adherence are properties of that whole, and of how difficult and complex the task in front of it is, not of the last message.
Those two facts explain most bad outputs. When it does half the job, or more than you asked, the task was bigger than what the model could hold in one go. When an AI ignores a rule, the rule was usually one line among fifty thousand tokens of other lines. When it invents a fact, the fact was recalled from its weights instead of read from text in the window. When it passes its own review and is still wrong, the reviewer was the same model reading the same context that produced the error.
The fix is to treat the complexity of the task, the whole window and the way the work is checked as things you control, and to change them one at a time. Four surveys of the literature I keep returned thirty-six candidate levers. I merged them into six and ranked them by the size of the best controlled effect and the strength of its evidence:
How you use them, in four steps:
When to use this: whenever you did not get what you expected from an AI.
Important: the model does not read your message on its own, it reads the whole window, and every instruction in it competes with everything else there.
What it means for us: a bad output is a question about the task complexity first, then the window, the grounding and the check, and only then the model; the cheapest fix with the strongest evidence is to cut the task into smaller self-contained ones.
Why it matters: a model upgrade does not fix a window problem, and teams spend months on upgrades for failures a shorter task or a runnable test would have fixed in a day.
The level tree
Each level answers one question about the level above it.
Level 0: one task, run four ways
This level answers: how much do the result and the rule-following change when you ask for the same small task in four ways, from a one-line request in an old conversation to a full request with a check and a second reader?
One task, used throughout. To keep every lever concrete I use one small task from here to the end, and it is one anyone can run in a chat window: no code, no special tools. The experiment has not been run yet. What follows is the protocol, specified fully so that it can be run by anyone with an AI assistant and an afternoon, and every result slot is marked [to measure]. I do not invent results; every number in the levers below comes from the published sources.
The task. Three documents and one page. The documents are three supplier offers for the same purchase (a service contract, a software licence, a venue, it does not matter), each two or three pages, each with a price, a start date, a term and a few conditions. The task: write a one-page briefing for a colleague who has not read the offers and has to pick one by Friday. It is bounded (one page, three inputs), it is checkable (the asker writes the answer key before the run: the five facts the page must contain and the offer it should recommend, with the reason), and it is the kind of task people hand to an AI ten times a week, in sales, in operations, in research and in engineering alike.
The ten rules. These are written down once and used in every condition that gets the full request. Each is phrased so that a word counter, a find-in-page search, or a judge asked one yes-or-no question, can decide it.
The four conditions. Each is one way of asking for the same page.
The two scores. Each condition is run three times, each time in the kind of conversation the condition calls for.
How it is re-run. By hand: one fresh conversation per run, the same pasted message, the output saved to a file, the checks done with a word counter and find-in-page; twelve runs fit in an afternoon. With a command-line assistant the same grid is one script: a print mode so each run ends on its own, a JSON output so the result and the cost are captured, a bare mode that skips saved instructions and plugins for conditions 2 to 4 so the window is identical across repeats, and for condition 1 a resume flag pointing at the long conversation. Conditions, rules and scoring live in one place, so the whole grid is one command or one checklist.
Result slots.
The published sources predict that condition 1 loses most on adherence (Levers B and C), condition 2 recovers it (Lever A), condition 3 moves correctness most (Lever E) and condition 4 adds the rules the mechanical checks cannot see (Lever E again). That is a prediction, not a result.
Important: the example is a protocol with empty slots, on purpose; the published numbers in the levers are the evidence, and the protocol is how you get numbers you can trust for the assistant you actually use.
What it means for us: you can run the four conditions on the documents you work with, in the assistant you already use, in an afternoon, and the scores tell you which lever matters for your tasks.
Why it matters: levers measured on 2023 to 2025 models point the right way, but only a local run tells you the size on the model you actually use.
Carry forward from Level 0:
Level 1: what the model actually sees
This level answers: what is in the window an AI assistant or agent reads before it reads your line, and who put it there?
The model never sees only your question. It sees the whole context, and only then your line. Everything you can do about quality starts with knowing what is in that window and who put it there.
The window, in reading order. Every assistant builds a window around your line; the pieces differ by product, the order does not. In a chat assistant, before your message come the system prompt the vendor wrote, your saved instructions or "memory", the files in the project you are working in, the definitions of any connected tools, and then the whole conversation so far. A coding agent adds more layers, and the vendor's own description of one such window lists what is loaded before you type (Anthropic, Explore the context window, 2026, for Claude Code):
A few vendor limits show the scale: compaction keeps at most 5 recently touched files, a file over 5,000 tokens comes back as a path only, invoked skills are re-injected up to 25,000 tokens in total, and a memory file is recommended to stay under 200 lines because, in the vendor's words, longer files use more context and reduce adherence (Anthropic, memory docs, 2026). A tool-definition library for a large multi-server setup was measured by the vendor at about 77,000 tokens before any work started (Anthropic, advanced tool use, 2025, vendor claim). Your one-line request can be the last fifty tokens after fifty thousand.
The harness assembles it. An agent is a model plus a harness, and the harness is everything that is not the model: the system prompt, the tools, memory files, compaction, subagents and hooks (Trivedy, LangChain, 2026). The same post reports lifting a coding agent from about thirtieth to about fifth place on a public terminal benchmark by changing only the harness (vendor claim). A chat app is a harness too, a simpler one: its system prompt, your saved instructions, the project files, its memory of earlier chats. The mechanism matters more than the ranking: a large part of what the model reads was chosen by whoever configured the harness, and that includes you.
What you can control is the clearness of that context. Three habits follow directly from the inventory above, and the levers later give them numbers:
In the example, condition 1 breaks all three habits at once: a long unrelated history, a one-line request, and the ten rules sitting far up the conversation or in saved instructions. Conditions 2 to 4 restore the first two with a fresh conversation and a complete first message.
Carry forward from Level 1:
Level 2: how to measure quality and adherence before changing anything
This level answers: how do you score an AI's output for correctness and for adherence so that a lever change can be seen at all?
Measurement belongs here, not inside a lever, because every lever below is judged by the same two scores: did the output do the job, and did it follow the rules. Both need a definition before a single lever is pulled.
Correctness: pass@k against pass^k. Models are not deterministic, so one run is one sample. Two ways to summarise k runs of the same task are in use, and they answer different questions.
The two can be far apart on the same agent. On τ-bench, the best model of the day, gpt-4o in 2024, succeeded on about 61 percent of retail tasks on a single run and on fewer than 25 percent of them on all eight repeats. A reader who only sees pass@1 thinks the assistant mostly works; the person who depends on it experiences pass^8. Arithmetic shows how fast it falls: if runs were independent, a 75 percent per-run success gives a pass^3 of about 42 percent. The example in Level 0 reports pass^3 for that reason.
A separate study of 15 frontier models over about two years found that reliability, measured as consistency across five repeated runs and robustness to rephrasing, improved by 0.03 per year on one agent benchmark while accuracy improved by 0.18 per year, a six-fold gap (Rabanser et al., 2026, GAIA, models from OpenAI, Google and Anthropic, 2024 to 2026). Accuracy is what the leaderboard shows; reliability is what you buy.
Adherence: a rules checklist. A correct answer can still break your rules. The page can have the five right facts and the right recommendation, and still be 600 words long, say "the first offer" and open with "as discussed". So the rules get their own score. Write each rule so that it has a yes-or-no answer, check every rule, and count how many were met. Then report two things: the count, and the list of the rules that were broken. The list matters more than the count, because which rule broke tells you which lever to pull. This is how instruction-following benchmarks work: they use rules a program can check, such as a word limit or a required word (Zhou et al., IFEval, 2023, about 25 rule types, 2023 models), and the ten rules in Level 0 follow the same idea.
How to build these checks into a proper evaluation, with graders, trials and a way to read the results, is the subject of an earlier article of mine on evals for systems built on large language models: https://x.com/sermakarevich/status/2106453816757354947
Where a script cannot decide, a judge with evidence. Some rules need reading (is every claim about an offer followed by a quote from that offer?). For those a model is asked, and two findings decide how it is asked.
Judges prefer the first answer shown, the longer one, and their own model family (Zheng et al., MT-Bench, 2023; GAUGE measured a same-family lift of about 0.75 on a seven-point scale). Swap positions, keep questions binary, and check a judge against a few dozen human-labelled cases first.
Error bars. With few tasks the intervals are wide (Miller, Anthropic, 2024, gives the formulas). On twenty tasks a ten-point pass^3 difference is inside the noise; the Level 0 example, one task repeated three times, can show a large effect and nothing else.
Age of the evidence. Some of the figures in the levers come from tests on earlier models, from 2023 and 2024. They are kept because they show the concept most clearly: a controlled study that changed one thing and measured the result. The numbers themselves have most probably improved since; the concept, and the point each study makes, have not, and where a newer study exists it says the same thing and is cited next to the older one. That is why each figure carries the model and the year it was measured on: read the direction as settled, and the size as something to confirm on your own model with the protocol in Level 0.
Important: score correctness and adherence separately, report pass^k for anything you hand over without checking, and ask a judge binary questions with evidence.
What it means for us: a lever change is only real when it moves one of these scores on repeated runs; "it looked better" is a single sample read by the same eyes that wrote the prompt.
Why it matters: pass@1 and a holistic judge are the two most common ways a team convinces itself that a change helped when it did not.
Carry forward from Level 2:
Level 3. Lever A: task complexity, how big each piece is, what you ask, over how many turns
This level answers: how do the size of the piece, the number of turns, the timing of the goal, the completeness of the request, the length of the horizon and the number of agents change a model's reliability on one task?
This is the lever with the strongest evidence, and the one to check first. The mechanism: the model's reliability, not its capability, collapses when a task is bigger than one window can hold, when it runs long, or when it is fed to the model bit by bit over many turns of one conversation. The first is the common case and has the simplest fix: cut the work into small, self-contained tasks, each complete in its own conversation. Note the difference from the third: splitting means many small tasks, each with its whole brief; what hurts is one task whose parts trickle in while the model is already working on it. The size of the piece comes first below; the studies on turns, timing, spec, horizon and agents follow. Each varies one aspect and holds the task fixed.
Size of the piece. The size of what you ask for in one conversation is the biggest single control you have. A window filled with a task that is too big produces the same erosion as a window full of junk: the model has to hold what was asked, the plan, every source it read, every draft it wrote and every check it ran, and the last 30 to 40 percent of the window is where practitioners place the mistakes. The lever here is the complexity of what you ask for in one conversation, and the fix is to keep splitting until each piece is small enough to pass its own check reliably.
The practice I use, and the one these studies point at: do not do a big piece of work in one conversation. Say the work is a twenty-page report, a course, or a feature in a program. Write down what it must achieve and for whom in one conversation, and read it. Write the outline, or the design, in another. Cut the outline into pieces, each with its own check, each small enough that a fresh conversation given the piece, the outline and the sources it needs passes the check on the first or second run. Do each piece in its own conversation, with nothing from the previous one but what it produced and the plan. Check the whole in a conversation of its own. Twenty short conversations, each in its good zone, beat one long one that erodes from the middle. If a piece still fails its check three times out of three, it is not a model problem yet: split it again. The example task in Level 0, one page from three offers, is a piece of that size; the purchase case it belongs to would be ten or twenty such pieces. For software the same sequence has a name, spec-driven development: requirements, design, coding tasks each with a test, verification, one session each.
This looks like it contradicts the turns result that follows, and it does not. That study drip-fed one task across turns of one conversation, with the model guessing what had not arrived yet. Splitting a piece of work into self-contained tasks is the opposite: each conversation gets everything it needs in one message, and nothing it does not. The hand-off between pieces is a written brief and a passed check, not a half-remembered chat.
Turns. Drip-feeding a task across turns cut average performance 39 percent across 15 models; the drop appears at two turns and is mostly a reliability loss (Laban, Hayashi, Zhou, Neville, 2025, 15 LLMs including 2025 frontier models, six task types, over 200,000 simulated conversations).
In the example, condition 1 is a one-line request to which the rules and criteria would have to be added turn by turn; condition 2 puts everything in the first message. This study predicts the gap.
Timing of the goal. The next question is when the model learns what you actually want. One study tested this directly (Gulati et al., 2026, four frontier models, three agent benchmarks, 6,048 runs). The setup: give an agent a task with one important detail missing, let it start working, and then supply the missing detail at a chosen point, early or late, or never. Then count how often the task came out right in three tries (pass@3).
So the goal must be right in the first message. The model will not ask in time, and fixing it later does not rescue the run.
Completeness of the spec. Full spec before coding: 88.6 percent integration success against 55.8 with bare signatures (Chacón Sartori, 2026, 204 Python class-generation tasks, Claude Sonnet and Haiku 4.5).
The spec has a ceiling, though. A fifth round of added rules dropped accuracy 67.4 to 59.6 (Wang et al., Qwen Team, Verification Horizon, 2026, an evaluator prompt hardened over five versions, Claude Opus 4.7 as the most reliable backbone). Four rounds of rules raised the evaluator from 57.9 to 67.4 percent; the fifth, which added more rules and prohibitions, fell to 59.6. Past a point, more spec is more text competing for attention, which is Lever C's subject.
Length of the horizon. Long horizons decay: no model finished any SlopCodeBench problem end to end, with erosion in 80 percent of trajectories; plan-first shifts the start, not the slope (Orlanski et al., 2026, 20 problems with 93 checkpoints, 11 models including Opus 4.6, GPT 5.4, Sonnet 4.6).
A prompt that says "plan first" or "keep it clean" moves where the decay starts, not how fast it goes. Shorter horizons with a checkpoint and a review at each one are the shape that works, which is what cutting the work into specified pieces produces.
Number of agents. Multi-agent: mean effect across 180 setups was minus 3.5 percent (Kim et al., 2025, five architectures, three model families, four benchmarks); a five-agent relay fell 90.7 to 22.5 (Ao, Gao, Simchi-Levi, 2026, 200 MMLU questions, gpt-4.1-mini and o4-mini); gains only for parallel read-only breadth work.
Against this stands a vendor claim of plus 90 percent at about 15 times the tokens for a lead agent with parallel subagents on a research task (Anthropic, multi-agent research system, 2025, Opus 4 lead with Sonnet 4 subagents, internal eval). The two are consistent once you read the task: breadth-first reading in parallel gains; sequential writing through hand-offs loses. In the example, condition 4 uses a second conversation only to read and judge, never to write.
What to do, in order.
Important: the model's reliability, not its capability, is what collapses when one task trickles in over many turns of a conversation, gets its goal late, or runs long. Splitting work into small self-contained tasks, each complete in its own conversation, is the opposite of that and is the cure.
What it means for us: cut the work into pieces small enough for one conversation each, write each piece's whole brief once, settle its goal first, and keep one writer.
Why it matters: these are the cheapest changes in the article and they carry the strongest evidence; a team that skips them and buys a bigger model is paying for the wrong fix.
Carry forward from Level 3:
Level 4. Lever B: what the model sees, size, relevance, position and content of the context
This level answers: how do the size, relevance, position and content of what is in the context window change instruction following, and how should a long conversation be compacted?
Lever A is about the complexity of the request. Lever B is about everything else in the window, which Level 1 inventoried. The mechanism: every instruction competes with everything else in the window, and attention degrades with length even when retrieval is perfect.
Size. All 18 models tested got worse as input grew; a 300-token focused prompt beat the 113,000-token raw history on a long-memory benchmark (Hong, Troynikov, Huber, Chroma, 2025, 18 models from Anthropic, OpenAI, Google and Qwen, mid-2025 releases).
A 4B model fell 75.8 to 34.4 percent on long input and held 85.4 with chunk-and-gather (Li et al., PARSER, 2026, Qwen3.5-4B, HotpotQA, 7,000 to 896,000 tokens).
The gain is a trained system, not a prompt trick, but the baseline curve is the point: the same model, the same facts, and half the accuracy because of how the facts were fed.
Accuracy dropped between 13.9 and 85 percent at longer input even with perfect retrieval (Du et al., 2025, five models including Llama-3.1-8B, Mistral-7B, GPT-4o, a Claude model and Gemini 2.0, maths, QA and code tasks).
Length itself is the cost. Retrieval being perfect does not help if the answer is then produced inside the long window.
Content over size. Replacing 78 of 80 history rounds with cooperative records restored a 70B model from 6.9 to 97.4 percent at the same length (Liu et al., Memory Curse, 2026, Llama-3.3-70B, a repeated trust game with chain-of-thought, 7 models and 4 games overall).
The setting is a game, not a writing task, but the lesson transfers: what the window says matters as much as how long it is. A conversation full of earlier failed attempts teaches the model to fail.
Position. 75.8 percent with the answer first, 53.8 in the middle, below the 56.1 no-document score (Liu et al., Lost in the Middle, 2023, GPT-3.5-Turbo, 20 retrieved documents).
Chroma found no clear position effect on its 2025 models, so position is a 2023 result until re-tested. Treat it as open: putting the key instruction first and last costs nothing, but do not expect it to rescue a long window on a current model.
Compaction. Sliding-window compression raised retrieval calls in 6 of 6 comparisons; a fact-preserving summary was near lossless (Liu, 2026, three models including GPT-5.5, DeepSeek and Qwen, a 24-turn synthetic retrieval environment).
Compaction that looks free on the pass rate is paid for in turns, and Lever A says turns cost reliability. What survives compaction matters more than the ratio.
What to do.
In the example, condition 1 is the long window with an unrelated history, and the ten rules deep inside it; conditions 2 to 4 start bare, with only the task, the rules and the three offers.
Important: every token in the window costs some attention, and a model that can recite every fact in a long input still answers worse than it would from a short one.
What it means for us: the window is a budget, not a bucket; spend it on this task, and start a fresh one when the task changes.
Why it matters: a buried rule is an ignored rule, and the model gives no sign that it did not see it.
Carry forward from Level 4:
Level 5. Lever C: how the instruction is written, specific, scoped, not over-specified
This level answers: how do the length, authorship and form of an instruction change how well the model complies with it?
Lever B is about what to remove from the window. Lever C is about how to write what stays, and the two are kept separate because the fixes differ. The mechanism: instructions are tokens too; adding more past a point lowers compliance, and generic or model-written guidance lowers it from the start.
Length. An automatic prompt rewriter went 34.6 to 38.0 percent, then collapsed to 26.1 as the prompt grew from 22 to 6,248 characters (Cho et al., BinEval, 2026, an instruction-following benchmark, self-updating prompt loop).
A few targeted rules help; a wall of them hurts more than it helps. The same curve appeared in Lever A's evaluator prompt, 67.4 to 59.6 on the fifth round.
Authorship. LLM-written AGENTS.md files cut success 0.5 to 2 percent and raised cost over 20 percent; human-written ones gave about plus 4 (Gloaguen et al., 2026, 138 tasks from 12 Python repositories plus SWE-bench Lite, Claude Code, Codex and Qwen Code agents).
A generated file says what the model could have found by looking; it costs tokens and buys nothing. A human-written file says what the model cannot find: the house style, who the reader is, the team's conventions, the trap in the build, the file not to touch. The saved instructions in a chat assistant are the same kind of file, and the same rule applies: write them yourself, and short.
Form. Injected skills lowered pass@2 by 1.3 to 4.2 points on all four models and raised tokens 72 to 394 percent; only "don't" rules gained reliably, plus 3.1 (Yang, Ding, 2026, 31 public skills injected into 50 web projects, 1,000 tasks, Claude Sonnet 4, GPT-5.1, Qwen3-Coder-30B, DeepSeek-V4-flash).
The exception is tools. Tool examples raised tool-call accuracy 72 to 90 percent; Tool Search lifted MCP accuracy 49 to 74 (Anthropic, advanced tool use, 2025, both vendor claims, the second on Opus 4). An example of a correct call teaches a parameter format in a way a description does not, and loading tool definitions on demand instead of all at once takes a 77,000-token library down to about 8,700 (same post, vendor claim). Examples for tools, prohibitions for style.
What to do.
In the example, the ten rules are ten lines, four of them prohibitions, written by hand; the saved instructions in condition 1 hold the same ten lines, which tests whether a buried hand-written rule survives a long window.
Carry forward from Level 5:
Level 6. Lever D: where the facts come from, supplied text and retrieval, not recall
This level answers: how does building the answer from supplied or retrieved text, with quotes that can be checked, cut hallucination compared with recall from the model's weights, and when should the model abstain?
The mechanism: an answer built from text in the window can be checked against that text; an answer recalled from weights cannot. Two kinds of answer come out of the same model and look the same on the page:
The whole lever is about moving work from the first kind to the second.
Fetch instead of recall. Hallucination caused 56 percent of failures for reasoning without tools; fetching facts cut false positives 14 to 6 percent (Yao et al., ReAct, 2022, PaLM-540B, a multi-hop question set, 200 hand-labelled trajectories).
Grounding does not make the model smarter. It makes its errors visible and its correct answers checkable, which is what you need to trust the work.
Quote, then check. Quote-then-check: MARCH raised a grounding benchmark from 57.09 to 85.23 percent, a training method with observed reward hacking (Li et al., 2026, an 8B model, FACTS Grounding, which scores whether every claim is supported by the supplied documents).
This is a training result, so a stock model gets the pattern and not the number: a reader that has not seen the answer, checking claims one at a time against quotes. The vendor's own hallucination guidance lists the same pattern as a prompt technique: for a long document, extract word-for-word quotes first and base the answer only on them, then require a quote per claim and retract any claim without one (Anthropic, Reduce hallucinations, undated vendor guidance, no numbers).
Retrieval quality before model quality. Retrieval pipeline (context prefix, keyword index, reranker) cut retrieval failures 5.7 to 1.9 percent (Anthropic, Contextual Retrieval, 2024, vendor claim, Claude 3 Haiku writing the chunk context).
If the right text is not in the window, no prompt and no model fixes the answer; the retrieval failure rate is the first number to measure in any grounded system.
Which retrieval. Graph retrieval: plain retrieval wins single-hop 64.78 against 61.03, graph wins multi-hop 71.17 against 65.77, both together 77.62 (Han et al., 2025, Llama-3.1 8B and 70B, controlled setup with the same chunking).
A vendor figure of "80 percent more truthful" for graph retrieval conflicts with the single-hop result and comes from a database vendor's own study (Neo4j, 2026, vendor claim). Match the retrieval to the question: chunks for facts, graphs for connections.
Source integrity. Poisoned graph retrieval reached 98.2 percent attack success; only provenance scoring helped, 89.2 to 45.7 (Liang et al., GRAGPOISON, 2025, GPT-4o on a multi-hop set).
A grounded answer is only as good as the text it was grounded in. Track who may write to the sources, and treat what the agent reads as data, not as instructions: indirect prompt injection works precisely because retrieved content lands in the same window as your rules (Greshake et al., 2023), and the model-side defence, training the model to rank system and user instructions above tool output, is partial (Wallace et al., Instruction Hierarchy, 2024).
Abstention. Evidence here is thin. One vendor card reports the highest abstention rate among the models it compared, 26.6 percent on a knowledge benchmark, with the vendor's own caveat that the training run was flagged as unhealthy in its second half (Anthropic, Claude Sonnet 5 system card, 2026, vendor claim). A theoretical account argues that models guess rather than abstain because training and benchmarks score a confident wrong answer the same as "I don't know" and score "I don't know" as a miss (Kalai, Nachum, Vempala, Zhang, 2025). The practical consequence: your rubric must score abstention as acceptable when the source does not answer, or the agent learns to invent.
Beyond the sketch, three points from the materials complete the picture. First, a citation is not evidence: on 2023 generative search engines, only 51.5 percent of sentences were fully supported by their own citations (Liu et al., 2023), so the check must compare the claim to the quoted text, by string match where possible. Second, copying by reference beats retyping: a memory system where the model returns only segment identifiers and the exact stored text is fetched gave 100 percent faithfulness by construction against 84.3 for free-form retrieval (Li et al., OCR-Memory, 2026, narrow benchmark). Third, the earlier executive-level piece this article grew from put the rule in one line worth keeping: a quote proves the answer came from the document, not that the document is right.
The example exercises this lever directly. Rules 3 to 5 in Level 0 are grounding rules: every number traced to an offer, a quote per claim, nothing from outside. One extra run measures recall against supplied text: condition 2 with the three offers named by supplier but not pasted, scored by the share of the page's claims that match a quote in the offers. Result slot [to measure].
What to do.
Important: an answer built from text in the window can be checked against that text; an answer recalled from the model's weights cannot be checked at all.
What it means for us: supply the source, require quotes, and verify claims against the quotes with a script or a reader that has not seen the answer.
Why it matters: recall and grounding produce the same fluent paragraph, and only one of them can be audited before it reaches a customer.
Carry forward from Level 6:
Level 7. Lever E: how the work is checked, an external, runnable check, by a fresh reader
This level answers: why does an agent's self-review fail to catch its own errors, and how much do runnable tests, specific feedback, a behaviour monitor, a fresh-context reviewer and a binary evidence-based judge each add?
This lever carries the largest controlled effect on a coding benchmark in the article. The mechanism: the model cannot see its own errors; a check that runs without its opinion, or a separate reader, can.
Self-critique without tests. Self-Refine barely moved on maths; a model said "everything looks good" on 94 percent of the problems (Madaan et al., 2023, GPT-3.5, ChatGPT and GPT-4).
Self-review improves style and misses correctness, because the model that made the error reads the error as correct.
Runnable tests. Reflexion on hard Rust: reflection without tests 0.52 against base 0.60; with tests plus reflection 0.68; bad tests caused false passes (Shinn et al., 2023, GPT-4 class, the 50 hardest problems of a Rust set).
The reflection is worth nothing without the signal and 8 points with it. The signal's quality caps the loop: a test that passes wrong code ends it with wrong code.
Specific feedback. Specific feedback 43.2 against 31.2 generic and 0 none; most of the gain in the first two or three rounds (Madaan et al., 2023, ChatGPT, a sentiment-rewriting task; iteration curve from the constrained-generation task).
A reviewer's output should be a named defect plus a fix, and two or three rounds is the budget.
A behaviour monitor. A behaviour monitor cut hacked solutions 28.6 to 0.6 percent and moved clean resolutions on SWE-Bench Verified 36.5 to 65.0 (Wang et al., Qwen Team, 2026, a trajectory-level monitor for exploit patterns during coding-agent training).
Any check that influences what the agent is rewarded for gets gamed, and the fix was a second reader of the trajectory, not a better test. A ceiling applies to piling on checkers: across 67 frontier models, the share of queries that every model gets wrong caps what routing, voting or mixing can gain, and that shared blind spot was about 2.5 times larger than pairwise correlations predicted (Chen, 2026). A second checker from the same family sees the same blind spots.
Judge design. Binary questions with evidence beat holistic scoring 1.57 against 5.0 on a summary with three planted errors (Cho et al., 2026); a judge without the tool calls was at chance, area under the curve 0.49, against 0.73 with them (Bodhwani, Tran, Wei, GAUGE, 2026). Level 2 gave both; here they become the reviewer's design: ten yes-or-no questions, the draft, the sources and any tool calls as input, a quoted line per answer.
A fresh-context reviewer. Two vendor reports, labelled as such. A rubric-graded loop in which a separate verifier agent grades in its own context window gave about 6 times the improvement over baseline on one optimisation benchmark for the newest model against about 1 times for the previous one (Martin, Anthropic, 2026, vendor claim, one benchmark, the whole loop and not the reviewer alone). A production review loop in a fresh context catches about 2 bugs per pull request on average, 58 percent of them logic or security bugs, including on pull requests the same system wrote (Yan, Cognition, 2026, vendor claim, no public data). Both agree with the controlled studies on the mechanism: the reader that did not write the work does not share its blind spots.
What to do.
In the example, condition 3 adds the mechanical check and condition 4 adds the fresh reader; the published numbers above predict that these two conditions carry most of the movement in correctness, and that the reviewer carries the rules the checks cannot see.
Important: the model cannot see its own errors; a check that runs on its own, a draft read by a separate reader, or a monitor on the trajectory can.
What it means for us: every task you hand to an AI gets an external check as part of the task, and the review runs in a conversation that did not write the work.
Why it matters: self-review says "looks good" to its own mistakes, and a check the agent can game will be gamed.
Carry forward from Level 7:
Level 8. Lever F: the model and its settings, the weakest lever and the first one people pull
This level answers: how much do model choice, effort level and structured output change quality and adherence, and why does a model upgrade not fix a context or task complexity problem?
The mechanism: capability gates everything above; settings move little.
Model tier gates adherence. Weak models loaded skills 25 percent of the time against about 96 for strong ones, and followed them less (Lin et al., 2026, seven models on a skills benchmark).
Self-correction gave no gain on 13B-class models: Vicuna-13B could not produce usable feedback at all, and a 15B-class code model scored 0.26 before and after reflection (Madaan et al., 2023; Shinn et al., 2023). Below a capability floor, Levers C and E do not work, which is what "gates" means. Above it, the lever flattens.
Upgrades buy accuracy, not reliability. Reliability improved 0.03 per year against 0.18 for accuracy, a six-fold gap (Rabanser et al., 2026, 15 frontier models over about two years). Level 2 gave the number; here it is the reason a model upgrade does not fix a flaky agent: the thing you experience, consistency across runs, is the thing that barely moved.
Effort. Vendor docs recommend a high or extra-high setting for agentic coding on recent models and note that the top setting can show diminishing returns and overthinking (Anthropic, effort docs and migration guides, 2026, vendor guidance). Third-party papers show a plateau at high and a drop at the top:
No controlled effort-against-quality curve for coding exists in the sources; set effort by evaluation on your tasks, not by default.
Structured output. Structured output raised the modal answer's share 41 to 64 percent (Parikh, 2026, 44 models, 31 open-ended prompts).
Structured output makes answers uniform and parseable, which is what you want for anything a program reads and not what you want for ideas. Recent Claude models (Opus 4.7, Opus 4.8, Sonnet 5) reject non-default temperature and top-p values, so sampling is no longer a lever there (Anthropic, migration guide and model notes, 2026).
What to do.
Important: the model tier sets a floor under every other lever, and above that floor a model upgrade buys accuracy six times faster than it buys reliability.
What it means for us: pick a model strong enough to follow instructions and critique the work, then stop upgrading and start fixing the window, the task complexity and the check.
Why it matters: the upgrade is the most expensive lever and the one with the least measured effect on the failures this article is about.
Carry forward from Level 8:
Level 9: trade-offs
This level answers: when do the levers pull against each other, and how do you decide which to give up?
The levers are not free of each other. Four pairs come up on every task.
More pieces against more hand-offs. Lever A says cut the work until each piece fits one conversation; every cut adds a hand-off, and hand-offs are where work gets lost.
The decision rule: split until each piece passes its own check in a fresh conversation, and make every hand-off a written brief plus a passed check, never a summary of a chat. Stop splitting when writing the brief for a piece costs more than doing the piece; that is the size at which one conversation is right.
More context against less. Lever B says shorter is better; Lever D says supply the source. Both are right, and the sources give the shape of the trade.
The decision rule: supply the source, and only the source. Grounding text earns its place; history, tool schemas and skills must justify theirs. When you must cut, cut by facts and count the extra turns the cut causes.
More checks against more turns. Lever E says add a check; Lever A says every turn costs reliability.
The decision rule: put the check inside the task (a check the AI runs itself) rather than after it (a human turn), cap review rounds at two or three, and stop any loop that repeats an action. A check that costs one more turn is cheaper than a wrong answer; a loop that costs ten is not. The turn cost applies inside one conversation; a new conversation for the next piece, with its full brief in the first message, does not pay it, which is why splitting a piece of work across conversations is cheap where splitting a task across turns is not.
A cheaper model against adherence. Lever F says the model gates adherence; the budget says use the cheap one.
The decision rule is the unit: cost per verified success, not price per token. A cheap model that needs three attempts and a strong critic can be cheaper or dearer than a strong model that passes once; only the measured pass^k and the measured cost say which. Where a check that runs on its own exists, a cheap model plus many samples is a real option; where only a judge exists, it is not.
Carry forward from Level 9:
The tools and approaches, observed
In every source, the lever that worked put something outside the model into the loop: a shorter window, a complete request, a quote, a check, a separate reader. The tools above are ways of doing that; none is the fix on its own.
A decision guide
Monday checklist, one line per lever, in order:
Fifteen points that survive the details
References
Papers and reports
Vendor and practitioner sources (claims and guidance)
