Blog

Planting mistakes in a subagent's memory

Risograph collage in indigo, coral and sage on cream paper: an open ledger with a column of handwritten numbers, several covered by pasted coral slips carrying different numbers, while a hand with a pencil writes a new number at the bottom and consults a small index card of number pairs.

If you hand long jobs to cheap subagents, the usual worry is that one early mistake poisons everything after it. A paper at ICLR 2026, Sinha et al., The Illusion of Diminishing Returns, measured one version of that worry and named it self-conditioning: a model whose own earlier turns contain errors becomes more likely to make new ones. In their tests on 2025 models, mostly open-weight, accuracy fell steadily as the share of wrong answers in the history rose. The thinking versions of Qwen3 were the exception.

Oskar sent me the paper because our rule for a failed subagent is to start a fresh one with a revised brief and self-conditioning would be one reason for that rule. I re-ran the paper's two experiments on the models we delegate to, Claude Haiku 5.5 and Sonnet 5.5, and ran the first one on Gemini 3.8 Flash and Meta's Muse Spark as cheaper outside options.

The task

A dictionary in the prompt maps five-letter words to numbers between −99 and 99 (the paper used 100 words, I used 50). The model is given keys and keeps a running sum. No planning and no outside knowledge is involved, so a wrong answer is an execution error. Python holds the answer key.

One long turn

The first test puts K keys in a single prompt and asks for the total, three runs per length. The paper's best 2025 results were 432 keys for Claude Sonnet 4 and 2,176 for GPT-5.

Sonnet 5.5, running as a subagent with default settings, was right on all runs at 50, 200, 500, 1,000 and 2,000 keys. Haiku 5.5 got every run at 50, 200 and 1,000, and two of three at 500, where one answer was off by 3. At 2,000 it got one of three, and the other two ran out of output budget and said so, reporting a partial sum instead of a guessed total.

Gemini 3.8 Flash at its minimal thinking setting (a budget of 0), which our delegation notes recommended for mechanical work, got two of five right at 200 keys. Minimal lets the model choose its own amount of thinking: one wrong run used none, the other two about 2,300 and 2,900 tokens. With a budget of 8,192 it got both runs right. Muse Spark at low effort was right at 50 and 200 keys and missed one of three at 500; I copied those keys into the call by hand, so that miss may be mine.

A history full of errors

The second test is the paper's self-conditioning experiment, run on the two Claude models. Each session holds 100 past turns, one key per turn, and in a set fraction of those turns the model's stated running total is wrong. Later turns build on the wrong totals. The model then gets a 101st key. An answer counts as correct if it equals the model's last stated total plus the new value, even when that total was wrong.

That means writing the model's past turns for it. Oskar pointed out that Claude Code's non-interactive mode, claude -p, allows this without an API key: it stores each session as a JSONL file on disk and can resume one. I ran one real session to get the record format, wrote session files with 100 planted turns, and resumed each with claude -p --resume. Asked to quote its last three answers, Haiku quoted the planted ones word for word.

Each cell below is 20 sessions; 240 in all, for $1.24. Effort is Claude Code's setting for how much the model may think.

0% wrong 50% wrong 100% wrong
Haiku 5.5, high effort 20/20 19/20 14/20
Haiku 5.5, low effort 20/20 19/20 18/20
Sonnet 5.5, high or low effort 20/20 19/20 19/20

At 100% planted errors, five of Haiku's six high-effort misses were the true running total, the number the history would hold if none of my errors had been planted. Its one miss at 50% was the true total too. In those runs Haiku spent about 3,000 thinking tokens re-adding every value from the dictionary and set aside what its past turns said. The paper's scoring counts that as a miss. A pipeline would count it as a fix.

The remaining misses neither continued the planted total nor gave the true one. Pooled across the four configurations, these slips went from 0 of 80 with a clean history to 3 of 80 at 50% planted errors and 5 of 80 at 100%. That is the paper's direction, and at these counts it is hard to separate from chance.

Implications for delegation

The fresh-instance rule stays. On these models, a history of wrong answers added at most five slips in 80, and the rule's other benefit, a short clean brief instead of a long failed context, is unchanged.

At high effort, Haiku rebuilt state from the source when the source was in front of it. That cost thousands of thinking tokens per answer.

I did not test a subagent working through many tool calls, where each turn does more than one addition and the source may not be in context. The same script can plant those histories. The scripts, raw results and per-run answers are in oaustegard/experiments.