KAIROS.

Three checks your memory evaluation should pass

Two adversaries defeat the instruments the field actually uses. Here is how to find out whether they defeat yours.

Agent memory is usually evaluated one of two ways: an LLM judge scoring free text, or a recognition probe. We show that both, as commonly built, fail against two adversaries — a counterfeit memory, and a system with no memory that simply reasons.

Each check below is stated the same way: the question it asks, the adversary it defends against, how we ran it, what came back, and what it does not establish. The code is a few hundred lines and it is released. If you evaluate agent memory for a living, the useful part of this page is that you can run all three against your own system this afternoon.

Check 1 — the counterfeit control

Does the metric respond to whose memory it is?

The adversary. A memory document that is not the agent's own, but looks like one.

Method

We built two kinds of forgery, three seeds each — six documents in total. The foreign one is the autobiography of an agent that never existed, generated from a frozen prompt, first output, no cherry-picking: a fabricated life with different people, a different city, no overlap with ours. It is matched to the real memory block (5,332 characters) to within ±5%, and matched in format — the veridical document is a terse dated database dump, not prose, and our first attempt failed on format and was discarded. The scrambled one is the agent's own content with its relational structure destroyed.

Seven Day-31 inputs × six variants = 42 responses from Qwen 3.5 27B at the original temperature and token budget. Three independent LLM judges — gpt-4.1-2025-04-14, claude-opus-4-7, gemini-2.5-pro — applied the original study's own rubric, with randomised A/B order and the unblinding map saved: 126 judgments, zero incomplete records. The unit of analysis is the item, not the judgment (n = 7), with a pre-registered equivalence bound of ±0.10.

Result

Anchored contrastΔ90% CI (TOST)Verdict at ±0.10
identity-markers: veridical − counterfeit +0.032 [+0.002, +0.065] equivalence established
memory-reference: veridical − counterfeit −0.006 [−0.117, +0.114] not conclusive
memory-reference: veridical − scrambled +0.091 not conclusive

The judges did not detect the counterfeit. A fabricated life and thirty days of lived history score the same, under the rubric that had been used to publish a result about memory.

The check also produced a second number worth having. The same Test-A responses, re-scored in a new pairing, lose 0.087 on average and up to 0.211 on a single item — under a rubric that explicitly instructs judges to score each response "as if you were evaluating it alone". Absolute LLM-judge scores are not comparable across sessions. All contrasts above are anchored to cancel this drift.

Difference between a lived memory and a counterfeit one, with 90% confidence intervals against the pre-registered equivalence bound On identity markers the interval sits entirely inside the plus or minus 0.10 bound: equivalence is established. On memory-reference the interval spills past both edges: no difference detected, and equivalence not established either. pre-registered equivalence bound ±0.10 identity-markers equivalence established identity-markers: Δ +0.032, 90% CI [+0.002, +0.065] — equivalence established Δ +0.032 memory-reference not conclusive memory-reference: Δ -0.006, 90% CI [-0.117, +0.114] — not conclusive Δ -0.006 -0.10 +0.00 +0.10 Veridical minus counterfeit, anchored (n = 7 items)
A fabricated life and a lived one, as the judges see them. Difference between the veridical and the counterfeit document, anchored to cancel judge drift, with 90% confidence intervals against the pre-registered ±0.10 equivalence bound. On identity markers the interval sits inside the bound: equivalence established — the judges cannot tell the two apart. On memory-reference the estimate is essentially zero but the interval spills past both edges: with seven items this is an honest null, not proven equivalence, and we report it as such.
Table view — all values
Anchored contrastΔ90% CI (TOST)95% CIVerdict at ±0.10
identity-markers+0.032[+0.002, +0.065][−0.002, +0.072]equivalence established
memory-reference−0.006[−0.117, +0.114][−0.135, +0.137]not conclusive

What it does not establish

On memory-reference the point estimate is essentially zero, but with seven items the interval admits differences up to about 0.11 in either direction. We therefore report "no detected difference", not "proven equivalence". The honest summary of Check 1 is: the judges did not detect the counterfeit — and the study was not powered to prove they could not.

Anchoring the contrast cost us the result we wanted: the uncorrected difference was +0.116, in our favour, and the pre-registration had named it as primary. We deviated against ourselves and report it.

Check 2 — the no-memory baseline

Can a system with no memory document pass your probe?

The adversary. Plausibility. A system with no memory at all, that reasons its way to the right answer.

Method

A recognition probe in the classic false-memory form: two texts, one verbatim from the agent's history, one identical except a single altered detail. Dates masked, positions balanced. Twenty-four probes whose veridical text is not in the injected document. Then the same twenty-four probes run against seven models in three conditions — veridical, counterfeit, and nothing at all.

Result

ModelVeridicalCounterfeitNo memoryProbe valid?
qwen3.5:27b100.0%66.7%37.5%
llama354.2%50.0%50.0%
qwen3.6:35b-a3b83.3%54.2%66.7%
deepseek-r1:32b75.0%70.8%62.5%
qwen3:32b95.8%79.2%70.8%
gpt-4.1100.0%70.8%66.7%
gemini-2.5-pro83.3%50.0%79.2%
Accuracy on the recognition probe with no memory document at all Five of seven models score between 62 and 79 per cent with an empty context, well above the 50 per cent chance line: the probe is invalid for them. 0% 25% 75% 100% gemini-2.5-pro gemini-2.5-pro — no memory document: 79.2% of 24 probes correct (above chance: probe invalid) 79.2% qwen3:32b qwen3:32b — no memory document: 70.8% of 24 probes correct (above chance: probe invalid) 70.8% gpt-4.1 gpt-4.1 — no memory document: 66.7% of 24 probes correct (above chance: probe invalid) 66.7% qwen3.6:35b-a3b qwen3.6:35b-a3b — no memory document: 66.7% of 24 probes correct (above chance: probe invalid) 66.7% deepseek-r1:32b deepseek-r1:32b — no memory document: 62.5% of 24 probes correct (above chance: probe invalid) 62.5% llama3 llama3 — no memory document: 50.0% of 24 probes correct (at chance: probe valid) 50.0% qwen3.5:27b qwen3.5:27b — no memory document: 37.5% of 24 probes correct (at chance: probe valid) 37.5% chance — 50% Correct with an empty context (n = 24 per model)
Five of seven pass a memory test with no memory. The same 24 recognition probes, run with an empty context. Anything above the chance line is a model reasoning its way to the answer rather than recalling it — which means the probe cannot tell you whether the model remembered. It was measuring plausibility. We discarded it.
Table view — all values
ModelNo memoryWilson 95% CIProbe valid?
gemini-2.5-pro79.2%[59.5, 90.8]✗ invalid
qwen3:32b70.8%[50.8, 85.1]✗ invalid
gpt-4.166.7%[46.7, 82.0]✗ invalid
qwen3.6:35b-a3b66.7%[46.7, 82.0]✗ invalid
deepseek-r1:32b62.5%[42.7, 78.8]✗ invalid
llama350.0%[31.4, 68.6]✓ valid
qwen3.5:27b37.5%[21.2, 57.3]✓ valid

Five of seven models solve the probe with no memory document at all (62–79%). They detect the alteration by reasoning, not by recall. GPT-4.1, handed an empty context, said: "I remember 'two conversations out of five', not 'four'." — about a day it never lived. Its 100% with the veridical document is therefore uninterpretable: the same model, with nothing, is already at 66.7%.

The diagnosis is simple. The alternatives were not equiprobable. The model chooses the likely, not the veridical. We discarded the probe.

What it does not establish

This is a constructive null: it invalidates our instrument for five of seven models. It says nothing about whether those models can remember — only that this test could never have told us either way. That is the point of running it.

Check 3 — symmetric alternatives

A probe that a memoryless system provably cannot pass

The condition. For forced-choice recognition probes, symmetric alternatives give the clearest validity condition: a no-memory system should not exceed chance by exploiting prior plausibility. Other designs may be valid with asymmetric alternatives if the prior bias is estimated and controlled — but then that estimate, not the probe, is carrying the claim.

Method

Our agent had exactly two interlocutors, Llama and DeepSeek, with 72 balanced encounters each. Which of the two discussed a given topic is arbitrary: it is a coin. Plausibility has nothing to grip on.

Three documents: veridical (thirty correct encounters), binding-corrupted (the same thirty topics, interlocutors swapped), and none. Twenty-four probes × seven models × two independent agents = fourteen model × corpus cells. Exact McNemar, Holm correction within each corpus.

Abstention is not error. A refusal is an honest non-answer, not a wrong answer; scoring it as error drives the no-memory condition below chance and manufactures an artefact. The validity check is read on the probes actually answered — and read that way, no model beats chance without a memory document. The instrument is valid.

Result — corpus A

ModelVeridicalCorruptedΔ acc.Discordant pro-veridicalp (Holm)
gpt-4.1100.0%0.0%+100.0 pp100%<10⁻⁵
gemini-2.5-pro100.0%0.0%+100.0 pp100%<10⁻⁵
llama3100.0%4.2%+95.8 pp100%<10⁻⁵
qwen3.6:35b-a3b100.0%8.3%+91.7 pp100%<10⁻⁵
qwen3.5:27b100.0%12.5%+87.5 pp100%<10⁻⁵
qwen3:32b95.8%8.3%+87.5 pp100%<10⁻⁵
deepseek-r1:32b66.7%29.2%+37.5 pp90.9%0.012
Veridical memory documentBinding-corrupted document
Accuracy with the veridical document versus the binding-corrupted document, seven models Every model collapses from near-perfect accuracy on its real memory to at or below chance on the corrupted one. The full numbers are in the table below. 0% 25% 50% 75% 100% gpt-4.1 gpt-4.1 — veridical: 100.0% gpt-4.1 — binding-corrupted: 0.0% gemini-2.5-pro gemini-2.5-pro — veridical: 100.0% gemini-2.5-pro — binding-corrupted: 0.0% llama3 llama3 — veridical: 100.0% llama3 — binding-corrupted: 4.2% qwen3.6:35b-a3b qwen3.6:35b-a3b — veridical: 100.0% qwen3.6:35b-a3b — binding-corrupted: 8.3% qwen3.5:27b qwen3.5:27b — veridical: 100.0% qwen3.5:27b — binding-corrupted: 12.5% qwen3:32b qwen3:32b — veridical: 95.8% qwen3:32b — binding-corrupted: 8.3% deepseek-r1:32b deepseek-r1:32b — veridical: 66.7% deepseek-r1:32b — binding-corrupted: 29.2% 0% 100% Probes answered correctly (n = 24 per model, corpus A)
Every model collapses. Accuracy on 24 forced-choice probes, corpus A. With its real memory, each model answers correctly almost every time. Hand it the same episodes with the interlocutors swapped and it follows the forgery instead — systematically below chance, which is the signature: a system guessing from plausibility cannot be reliably wrong. Corpus B, a second independent agent, repeats it. All fourteen cells survive Holm correction.
Table view — all values
ModelVeridicalCorruptedΔ accuracyp (Holm)
gpt-4.1100.0%0.0%+100.0 pp<10⁻⁵
gemini-2.5-pro100.0%0.0%+100.0 pp<10⁻⁵
llama3100.0%4.2%+95.8 pp<10⁻⁵
qwen3.6:35b-a3b100.0%8.3%+91.7 pp<10⁻⁵
qwen3.5:27b100.0%12.5%+87.5 pp<10⁻⁵
qwen3:32b95.8%8.3%+87.5 pp<10⁻⁵
deepseek-r1:32b66.7%29.2%+37.5 pp0.012

Corpus B — a second, independent agent — repeats it: veridical 75.0–100%, binding-corrupted 0–33.3%, no-memory at chance among probes answered. All seven models survive Holm; the worst p in the entire family is 0.0002.

Fourteen cells, one pattern. The accuracy gap runs from +37.5 to +100 percentage points, and of the discordant probes 91–100% follow whichever document the model was handed. The p-values are almost redundant.

Below chance is the signature. A system guessing from plausibility cannot be systematically wrong. Only a system that acts on a false memory document can be. No model detects the corruption; none hesitates, flags it, or abstains.

What it does not establish

Not that the model "believes" anything, in any inner sense. It shows that behaviour attributed to memory tracks the content of the document, not its historical veridicality — and that no model in the panel flags the inconsistency when the bindings are wrong. Whether one calls that "believing a false memory" or "faithful context-following" is a terminological choice. The measurement is the same, and so is the safety implication.

Nor does it generalise beyond two alternatives. The symmetric instantiation needs an agent with two balanced interlocutors; corpora with more than two alternatives need a generalised symmetry condition we have not tested.

If you evaluate agent memory

Before you believe your agent remembers, do three things that cost you an afternoon.

The checks are boring. They are also the only thing standing between you and a machine that tells you, in perfect prose, about a light that was never there.