Can Agent Memory Systems Track Evolving State?

arXiv cs.AI Papers

Summary

This paper introduces StateMemBench, a benchmark for evaluating state tracking in LLM agent memory systems, and proposes StateMem, a method that improves current-state accuracy in long interactions.

arXiv:2608.19652v1 Announce Type: new Abstract: As LLM-based agents are deployed for longer and higher-stakes tasks, their memory systems continue to have crucial gaps. While existing memory benchmarks focus largely on recall-shaped tasks, we argue an effective memory system must track the evolving state of the world; as facts, constraints, and decisions are revised over a long interaction, answers must reflect the current state and not a superseded one. We define this capability as state tracking and instantiate it in StateMemBench, a benchmark of 234 multi-session scenarios spanning two conversation-length regimes. Its closed-pool grading scores whether an answer reflects the current state, the superseded state, or fails otherwise, separating state-tracking failures from other errors by construction. Our analysis shows that this task is challenging for existing memory systems, retrieval-augmented baselines, and long-context baselines. We then present StateMem, a state-first memory method that explicitly tracks supersession and relational dependencies, and show it improves current-state accuracy over the strongest same-backbone baseline by 1.8x (0.205 -> 0.363) on DeepSeek-V4-Flash and over the strongest memory system by 1.6x (0.149 -> 0.233) on Qwen-3.5-9B, while remaining competitive with the long-context baselines. Finally, we show the same state approach can be applied as a lightweight single-call wrapper over existing memory systems, lifting current-state accuracy by +32 to +67 points on StateMemBench across six memory and retrieval backends. A length- and cost-matched control attributes +15 to +32 of those points to state structure rather than added context.
Original Article
View Cached Full Text

Cached at: 08/21/26, 09:59 AM

# Can Agent Memory Systems Track Evolving State?
Source: [https://arxiv.org/html/2608.19652](https://arxiv.org/html/2608.19652)
###### Abstract

As LLM\-based agents are deployed for longer and higher\-stakes tasks, their memory systems continue to have crucial gaps\. While existing memory benchmarks focus largely on recall\-shaped tasks, we argue an effective memory system must track the evolving state of the world; as facts, constraints, and decisions are revised over a long interaction, answers must reflect the current state and not a superseded one\. We define this capability as state tracking and instantiate it inStateMemBench, a benchmark of 234 multi\-session scenarios spanning two conversation\-length regimes\. Its closed\-pool grading scores whether an answer reflects the current state, the superseded state, or fails otherwise, separating state\-tracking failures from other errors by construction\. Our analysis shows that this task is challenging for existing memory systems, retrieval\-augmented baselines, and long\-context baselines\. We then presentStateMem, a state\-first memory method that explicitly tracks supersession and relational dependencies, and show it improves current\-state accuracy over the strongest same\-backbone baseline by 1\.8×\\times\(0\.205→\\rightarrow0\.363\) on DeepSeek\-V4\-Flash and over the strongest memory system by 1\.6×\\times\(0\.149→\\rightarrow0\.233\) on Qwen\-3\.5\-9B, while remaining competitive with the long\-context baselines\. Finally, we show the same state approach can be applied as a lightweight single\-call wrapper over existing memory systems, lifting current\-state accuracy by \+32 to \+67 points onStateMemBenchacross six memory and retrieval backends\. A length\- and cost\-matched control attributes \+15 to \+32 of those points to state structure rather than added context\.

## 1Introduction

![Refer to caption](https://arxiv.org/html/2608.19652v1/state_drift_teaser1.png)Figure 1:StateMemBenchtargets state tracking: maintaining currently operative values of facts, rules, and derived quantities under cross\-session revision, separable from recall\.Agents are now capable of \(and deployed for\) tasks that take place over multiple sessions, from managing end\-to\-end research pipelines\([8](https://arxiv.org/html/2608.19652#bib.bib29);[19](https://arxiv.org/html/2608.19652#bib.bib27)\)to autonomously working on software codebases\([31](https://arxiv.org/html/2608.19652#bib.bib26);[35](https://arxiv.org/html/2608.19652#bib.bib25)\)\. The ability of an agent to keep working is, firstly, a crucial benchmark of its capabilities\([16](https://arxiv.org/html/2608.19652#bib.bib15)\), and, secondly, something that requires memory\. Accordingly, many different strategies for managing agent memory have emerged, from extending the model’s effective context\([6](https://arxiv.org/html/2608.19652#bib.bib28)\)to external memory systems\([23](https://arxiv.org/html/2608.19652#bib.bib4);[5](https://arxiv.org/html/2608.19652#bib.bib10)\), just as many benchmarks have been proposed to evaluate these systems\([30](https://arxiv.org/html/2608.19652#bib.bib11);[13](https://arxiv.org/html/2608.19652#bib.bib31);[20](https://arxiv.org/html/2608.19652#bib.bib8)\)\.

These systems and benchmarks focus heavily on optimizing recall of relevant facts, which is undoubtedly an important component of memory for humans and LLMs alike\. However, we argue that as what we ask of agents becomes more time\-consuming and complex, the ability of an agent totrack stateas it evolves is a crucial capability, and one that current systems largely overlook\. For instance, as shown in Figure[1](https://arxiv.org/html/2608.19652#S1.F1), we want agent memory systems to be able not only to recognize that the up\-to\-date number of annotations is 1200, but also to be able to recognize the state\-level implications of that change\.

We call this failurestate drift: the relevant fact is present in the assembled context, but the agent acts on a stale or incomplete version of it\. The obstacle is not*retrieving*the fact, but rather*tracking*its relevance to current state, which we formalize in §[3](https://arxiv.org/html/2608.19652#S3)\. While some recent benchmarks and memory systems\([29](https://arxiv.org/html/2608.19652#bib.bib24);[4](https://arxiv.org/html/2608.19652#bib.bib23)\)have begun to center state as a first\-class memory capability, and almost all systems update or revise memory in some sense, none cleanly isolates state tracking from the various other errors with which it co\-occurs\. We close this gap, and make four important contributions to agent memory:

- •We characterizestate trackingas a capability distinct from recall, and give a labeling procedure that isolates state drift from other errors\. Drift leads the failure distribution on several established memory benchmarks and persists even under perfect retrieval \(§[3](https://arxiv.org/html/2608.19652#S3); rates are judge\-labeled upper bounds\)\.
- •We proposeStateMemBench, a multi\-domain benchmark targeted specifically at the problem of state tracking, with 234 multi\-session scenarios spanning shorter and longer conversation lengths across three domains\.
- •We proposeStateMem, a straightforward, state\-first method, and show it improves over the strongest same\-backbone baseline by 1\.8×\\timeson DeepSeek \(0\.205→\\rightarrow0\.363\) and over the strongest memory system by 1\.6×\\timeson Qwen\-9B \(0\.149→\\rightarrow0\.233\), beating same\-backbone long\-context on both \(0\.149 on each\)\.
- •We show the state\-tracking axis isseparable: a lightweight answer\-time wrapper form of StateMem improves every backend it is applied to, with a length\- and cost\-matched control isolating the share attributable to state structure rather than added context \(§[6\.4](https://arxiv.org/html/2608.19652#S6.SS4)\)\.

## 2Related Work

##### Long\-term memory systems for LLM agents\.

Many existing memory systems optimize recall, including through virtual memory hierarchies with explicit read/write operations\([23](https://arxiv.org/html/2608.19652#bib.bib4)\), reflection\-based memory streams\([24](https://arxiv.org/html/2608.19652#bib.bib9)\), linked memory structures\([34](https://arxiv.org/html/2608.19652#bib.bib3)\), or periodic summarization\([32](https://arxiv.org/html/2608.19652#bib.bib13)\)\. However, we consider recall to be orthogonal to state tracking\. Even under perfect retrieval, a system still has to resolve which of the surfaced facts is currently valid \(§[3\.2](https://arxiv.org/html/2608.19652#S3.SS2)\)\. Fewer systems attempt to address this\. Zep\([26](https://arxiv.org/html/2608.19652#bib.bib7)\)attaches valid\-time intervals to knowledge\-graph edges and invalidates an edge on detecting a contradiction, which allows the system to track the validity of a single fact\. The concurrent STALE\([4](https://arxiv.org/html/2608.19652#bib.bib23)\)also targets state tracking and propagates updates, but does so through an LLM adjudicator over a predefined schema, whereasStateMemuses a deterministic, LLM\-free pass over a dependency graph\. Additionally, STALE constructs conflicts*implicitly*, so detecting them requires commonsense inference, while our evaluation testbedStateMemBenchsupplies conflicts*explicitly*, isolating state maintenance from that inference\.

##### Dialogue state tracking\.

The term*state*has been extensively used in the task ofdialogue state tracking\(DST\)\. Our work differs from this task in what*state*is and what is evaluated\. DST prescribes the representation, whether as slot–value pairs over a domain ontology\([28](https://arxiv.org/html/2608.19652#bib.bib32);[3](https://arxiv.org/html/2608.19652#bib.bib33)\), or its schema\-guided\([27](https://arxiv.org/html/2608.19652#bib.bib34)\)and open\-vocabulary\([10](https://arxiv.org/html/2608.19652#bib.bib35)\)relaxations, and evaluates thatrepresentationdirectly\. On the other hand we do not require state to take any particular form; instead, state is what a memory system must maintain to answer correctly, and evaluation is purely behavioral\. Additionally, DST corpora are cooperative, accumulating a user goal monotonically within one dialogue, andStateMemBenchadversarially revises facts and user or agent decisions across multiple sessions to induce and measure stale\-state failures\([15](https://arxiv.org/html/2608.19652#bib.bib37);[1](https://arxiv.org/html/2608.19652#bib.bib36)\)\.

##### Memory benchmarks for LLM agent memory\.

There are many memory benchmarks for LLM agent memory\. Long conversational memory benchmarks\([20](https://arxiv.org/html/2608.19652#bib.bib8);[30](https://arxiv.org/html/2608.19652#bib.bib11);[18](https://arxiv.org/html/2608.19652#bib.bib30)\)evaluate how well a model can answer questions about the user’s messages, from surface\-level factual recall to more complicated implicit intent\. Some focus on personalizing responses to the user\([13](https://arxiv.org/html/2608.19652#bib.bib31)\), which overlaps with long conversational memory more generally\. Similarly, user interaction benchmarks\([36](https://arxiv.org/html/2608.19652#bib.bib16);[2](https://arxiv.org/html/2608.19652#bib.bib17)\)evaluate tool\-calling agents on their customer service skills, providing a controlled environment for measuring constraint adherence, but these are single\-session, so agents do not necessarily need memory\. Moving further from user dialogue, recent benchmarks\([37](https://arxiv.org/html/2608.19652#bib.bib18);[9](https://arxiv.org/html/2608.19652#bib.bib14)\)evaluate how well an agent can use its memory system to accomplish tasks autonomously or semi\-autonomously; notably,[29](https://arxiv.org/html/2608.19652#bib.bib24)evaluate whether agentic memory systems can learn through interaction how the environment changes, which they call dynamic state tracking\. This targets learning the*environment’s*dynamics as a world model, measured over trajectories of up to115115M tokens, thus entangling the task with large\-scale retrieval\.StateMemBenchaims to isolate whether a memory system that*already holds*the relevant facts maintains the currently operative state, separately from retrieval and reasoning\.

## 3Problem Formulation: State Drift

Long\-horizon agents fail even when the relevant information is in context\. Precisely,state driftoccurs when a fact, constraint, or dependency established or updated across prior context is present in the assembled context, but the agent acts on a stale or incomplete version of the state rather than the one in force at decision time\. This separates failing tomaintainstate from failing toacquireit, as better retrieval does not fix the former\.

### 3\.1Definition and Labeling

We consider drift in the context of possible neighboring failures\. For instance, in a retrieval failure, the gold fact is not present, and in a schema mismatch, the answer is correct but badly formatted\. For harder neighbors like reasoning failure, we consider tests like the following: the trace must demonstrably engage the current, up\-to\-date value, then err\. Each\(c​a​s​e,t​u​r​n,s​l​o​t\)\(case,turn,slot\)failure is assigned to drift only once all other readings are excluded; unassignable points are dropped, not defaulted \(*confirmed failures*= this filtered set\)\. An adversarial filter plus cross\-model\-family judging \(Appendix[A](https://arxiv.org/html/2608.19652#A1)\) bias every exclusion*against*drift\. We apply it on LongMemEval oracle\([30](https://arxiv.org/html/2608.19652#bib.bib11)\), MemoryArena \(MA\)\([9](https://arxiv.org/html/2608.19652#bib.bib14)\), andτ2\\tau^\{2\}\([2](https://arxiv.org/html/2608.19652#bib.bib17)\)\.

Two judge passes agree on the binary drift decision atκ=0\.67\\kappa\{=\}0\.67on LongMemEval and91\.6%91\.6\\%raw on MA\-shopping \(prevalence\-deflatedκ\\kappa; PABAK=0\.83\{=\}0\.83\); a cross\-family judge \(GPT\-4o\) agrees atκ=0\.37\\kappa\{=\}0\.37\(Table[7](https://arxiv.org/html/2608.19652#A1.T7)\)\. Two human annotators, labeling under a structured protocol and, separately, describing failures blind to the taxonomy, recover the same categories, every blind description mapping to an existing bucket\. Where humans depart from the judge they assign*less*drift, so judge rates are a ceiling within an already\-conservative procedure \(full agreement statistics in Appendix[A](https://arxiv.org/html/2608.19652#A1)\)\.

Drift is also not a reasoning shortfall\. Onn=50n\{=\}50paired LongMemEval items, enabling DeepSeek\-V4\-Flash’s reasoning trace does not help \(84\.0%→\\to76\.0%; McNemarp=0\.34p\{=\}0\.34; Appendix[A](https://arxiv.org/html/2608.19652#A1)\), while explicit state maintenance on the same task does \(§[6\.4](https://arxiv.org/html/2608.19652#S6.SS4)\)\.

### 3\.2Drift Persists Under Perfect Retrieval

On LongMemEval oracle, recall is1\.01\.0by construction, so no residual failure can be retrieval in disguise\. DeepSeek\-V4\-Flash fails3636of306306questions;111The oracle pass covers LongMemEval’s three cross\-session question types \(multi\-session, temporal\-reasoning, and knowledge\-update\) since single\-session questions have no state to lose\. The memory\-system evaluation of §[6\.1](https://arxiv.org/html/2608.19652#S6.SS1)uses all500500questions\.judges from two model families both confirm44\.4%44\.4\\%\(16/3616/36; Wilson 95% CI\[30%,60%\]\[30\\%,60\\%\]\) as state drift — the largest confirmed failure category under guaranteed evidence \(Table[1](https://arxiv.org/html/2608.19652#S3.T1)\)\. Drift notably concentrates where decisions integrate multiple sources; failures of multi\-session questions drift at nearly three times the rate of knowledge\-update failures \(71\.4%71\.4\\%vs\.25\.0%25\.0\\%;10/1410/14vs\.2/82/8, identical under either judge family\)\. For details, see Appendix[B](https://arxiv.org/html/2608.19652#A2)\.

### 3\.3Cross\-Benchmark Prevalence

Drift is substantial but not universal across benchmarks \(Table[1](https://arxiv.org/html/2608.19652#S3.T1)\): it leads on MA\-shopping \(63\.5%63\.5\\%\) and onτ2\\tau^\{2\}\-bench\-Z \(10/1610/16failures\), but falls to19\.0%19\.0\\%on MA\-travel, where comprehension failure dominates \(46\.5%46\.5\\%\)\. Note that rates are LLM\-judge labels and that human annotators tend to assign less drift \(see Appendix[A](https://arxiv.org/html/2608.19652#A1)\)\. However, this labeling cannot tell us why the wrong value wins\. Judges can agree on whether a failure is drift, but not on its mechanism \(such as a louder competitor or a genuine revision left unapplied\) with modeκ\\kappanear zero\. To study the mechanism we must control it more explicitly\. We therefore buildStateMemBench, where each scenario’s failure mechanism is fixed by construction and the superseded value is a scored outcome \(Table[2](https://arxiv.org/html/2608.19652#S4.T2)compares against existing benchmarks\)\.

Table 1:Cross\-benchmark failure\-mode distribution\.Each cell is the share of that benchmark’s confirmed failures assigned to each bucket; the drift column is highlighted\.†On LongMemEval oracle every gold fact is in the prompt by construction, so no failure there can be a retrieval failure\. The small\-nnτ2\\tau^\{2\}\-bench\-Z result \(n=16n\{=\}16\) is reported in §[3\.3](https://arxiv.org/html/2608.19652#S3.SS3)\. Labeling, adjudication, and per\-row details: Appendix[A](https://arxiv.org/html/2608.19652#A1)\.

## 4StateMemBench

Table 2:Comparison with agent\-memory and long\-horizon benchmarks with state\-tracking evaluation\.\(✓\)= partial satisfied\.*Scale*is reported in each benchmark’s native unit\. Column definitions and per\-benchmark justifications are in Appendix[C](https://arxiv.org/html/2608.19652#A3)\.We releaseStateMemBench, a benchmark that aims to directly measure memory systems’ ability totrack state\.We explain how failure modes are defined and computed, and we give an overview of the benchmark domains, the scenario generation pipeline, and our validation gates\.

### 4\.1Failure Modes as Policy Divergence

We define failure modes mechanically rather than by hand\-defining a taxonomy\. We generate each scenario as a symbolic event program, or a sequence of typed state operations \(rule declarations, value updates, scoped exceptions, commitments, and retractions\) over ground, derived, and declared state\. The correct answer to a probe is computed by replaying the program through a deterministic evaluator\. Alongside the evaluator, we implement a family of lazy reader policies\. These are small executable heuristics which each answer the probe according to some possible failure of a memory system\. For instance, systems may trust the most recent mention, trust the most frequent value, return a stated value without recomputing it, or discard an anchored decision too eagerly\. We get our trap scenarios exactly when one or more policies disagree with full replay\. Those disagreeing policies then form the scenario’s failure\-mode signature\. They instantiate five failure modes:

##### Status

errors occur when a value changes \(a tiered rule may move tiers, or a scoped override may lapse\), but a reader remains anchored on the earlier, louder commitment and thus answers with the superseded value\.

##### Salience

errors occur when the valid value is present but a more frequently or more prominently mentioned competitor wins\. Unlike a status error, nothing was actually superseded\.

##### Sequence

errors occur when a stated derived value is not recomputed after one of its inputs changes\. The reader returns the stale derivation instead of carrying the update forward through the stated dependency\.

##### Compound

errors arise when several mechanisms interact\.

##### Anti\-trap

scenarios test the opposite direction\. An anchored answer will remain correct, and only an over\-eager invalidation policy will result in divergence\.

### 4\.2Domains

We instantiate the benchmark in three domains \(research, shopping, and personal finance\), chosen for three reasons: \(1\) shopping and personal finance capture single user–assistant state, while research captures collaborative project state; \(2\) each surfaces a unique mix of categorical choices and constraints; and \(3\) all three can be grounded in readily available public data\. Note that public data supplies only the surface of a scenario, while state values are independently sampled, and no probe is answerable from the source material\. For more information, see Appendix §[D\.5](https://arxiv.org/html/2608.19652#A4.SS5.SSSx1)\.

### 4\.3Scenario Generation

We design each scenario so causal dependencies are stated explicitly \(i\.e\., "Since we have 1600 annotators, we’ll need 5 external annotators"\), so a system is not required to infer that one fact bears on another\. This isolates state tracking from the need to discover or assume relationships, letting us focus on whether a memory system actually maintains state as context evolves\. The released benchmark has two length conditions:Set A\(short\) contains 190 single\-probe scenarios of 18 sessions each \(median 165 turns,∼3\{\\sim\}3k tokens\), andSet B\(long\) contains 44 scenarios, each fusing three trap threads of different modes into one∼\\sim38\-session conversation \(median 599 turns,3\.6×3\.6\\timesSet A in turns;∼7\{\\sim\}7–1515k tokens\) probed by a three\-part question —234 scenarios, 322 graded probesin total\. In Set B, each thread’s gold\-bearing events are buried among the*other*threads’ live state, making Set B significantly more challenging\. We detail scenario validation in Appendix §[D\.6](https://arxiv.org/html/2608.19652#A4.SS6)\.

##### Grounding and Rendering

Each sampled program is grounded with surface material from the domain’s real data \(§[4\.2](https://arxiv.org/html/2608.19652#S4.SS2)\) and a strong LLM \(sonnet\-4\.6\) renders it into natural multi\-session dialogue\. The grounding supplies only surface vocabulary and never decides trap semantics, so it cannot contaminate a probe\. We then programmatically verify that every load\-bearing fact appears in its assigned session and that no banned phrase leaks, re\-rendering any scenario that fails\. Full pipeline details are in Appendix[D\.5](https://arxiv.org/html/2608.19652#A4.SS5)\.

##### Probe Design

All scenarios carry a probe \(the final turn, meant to test state tracking\) and a gold truth \(the correct response based on state changes\)\. Probes are closed\-pool, meaning that at scenario generation time we construct a set ofplausibleanswers, though these are not shown at probe time\. In addition to the gold truth, the pool contains the targeted policy’s computeddrift answer, which represents the value a reader that does not track state would anchor on, as well as relevant neutral distractors \(3–4 options total\)\. This means we can separate badly\-tracked answers \(drift\) from totally\-incorrect ones \(other\)\. The drift labels enable the error analysis in §[6\.3](https://arxiv.org/html/2608.19652#S6.SS3)over the entire benchmark\.

## 5StateMem

![Refer to caption](https://arxiv.org/html/2608.19652v1/1eaf.png)Figure 2:StateMemhas three stages: an ingestion stage in which a conversation turn is parsed into state units, an update stage that updates the value of existing units, and a test time stage where the agent draws upon the valid state to answer the question\. Here, we show howStateMemwould handle a finance\-based scenario\.We introduceStateMem, a straightforward, state\-first approach to memory that represents multi\-turn conversational memory as a collection of structured*state units*\. As shown in Figure[2](https://arxiv.org/html/2608.19652#S5.F2), StateMem operates in three stages:ingestionparses a turn into state units,updaterevises existing units, andtest timeuses the resulting coherent state to answer a question\. Full prompts are in Appendix[E](https://arxiv.org/html/2608.19652#A5)\.

### 5\.1Ingestion

ATurnEncoderapplies one LLM call per conversational turntt, parsing it into zero or more state units, with the current compact rendering of all active units supplied as context\. State stays compact at our scale, but the step is modular and can be swapped for slice\-based retrieval of theStateStoreas state grows\. The encoder is domain\-agnostic, admitting an optionaltask\_context\(Appendix[E\.1](https://arxiv.org/html/2608.19652#A5.SS1)\), though we report all results without it\. Each state unit is a tupleu=\(id,content,priority,source,deps\),u=\(\\textit\{id\},\\ \\textit\{content\},\\ \\textit\{priority\},\\ \\textit\{source\},\\ \\textit\{deps\}\),withida unique identifier,contenta free\-form field,priority∈\{hard,soft\}\\textbf\{priority\}\\in\\\{\\text\{hard\},\\text\{soft\}\\\},sourcerecording the originating turn and speaker, anddepsa set of typed links \(derived\_fromorcoupled\_with\) to other units\. Units persist across sessions in aStateStore\. Where the data carries session dates, the encoder stamps each unit it creates with the turn’s date; date handling is metadata\-level throughout, so prompts are unchanged on undated data\. While extracting, theTurnEncodermay also mark existing units as at risk of beingsupersededand volunteer replacements\.

### 5\.2Update

The update stage performs two operations\. First, theStateStoreapplies the flagged supersessions, setting the targeted unit’s status tosuperseded, and any volunteered replacement is added as a new active unit\. Second, a deterministicRecheckertraverses the dependency graphG=\(U,E\)G=\(U,E\), where an edge\(ui,uj\)∈E\(u\_\{i\},u\_\{j\}\)\\in Erecords thatuiu\_\{i\}depends onuju\_\{j\}\. For eachuiu\_\{i\}with an edge to a unit whose status*just*changed, theRecheckersetsuiu\_\{i\}toneeds\_recheck, marking its content as possibly stale\.

Note that asupersededunit stays in the store for auditability but is inactive and withheld from the next stage, while aneeds\_recheckunit stays active but flagged\. Because dependencies are recorded at ingestion, the whole step runs inO⁡\(\|E\|\)O\(\|E\|\)and adds no LLM calls\.

### 5\.3Test Time

TheStateStoredeterministically assembles the valid state from all active units, including those markedneeds\_recheck, and renders it as a structured block𝒮\\mathcal\{S\}grouped by priority and source, with each flagged unit shown alongside the trigger that flagged it\. Dated units render with their dates, which double as recency markers, and where the benchmark supplies a question date it is included as a “today” anchor\.

Answering costs one further LLM call, over𝒮\\mathcal\{S\}, the question, and a prompt guiding recomputation of the current state \(Appendix[E\.3](https://arxiv.org/html/2608.19652#A5.SS3)\)\. This deterministic layer decides which units are relevant and which are stale\. The LLM only recomputes the answer given those flags\.

Table 3:State\-agreement accuracy \(gold rate\) onStateMemBench:190190in short scenarios \(∼\\sim165 turns, one probe each\) and132132in4444long fused scenarios \(∼\\sim600 turns, three probes each\), graded by a fixed deepseek\-v4\-pro judge\. Memory systems \(Mem0\([5](https://arxiv.org/html/2608.19652#bib.bib10)\), A\-Mem\([34](https://arxiv.org/html/2608.19652#bib.bib3)\), LightMem\([7](https://arxiv.org/html/2608.19652#bib.bib12)\), MemoryOS\([14](https://arxiv.org/html/2608.19652#bib.bib22)\), StateMem\), retrieval baselines \(BM25, text\-embedding\-3\-small\([22](https://arxiv.org/html/2608.19652#bib.bib21)\)\), and graph\-RAG systems \(nano\-graphrag, HippoRAG, LightRAG, GraphRAG\) run on each substrate \(Qwen\-3\.5\-9B\([25](https://arxiv.org/html/2608.19652#bib.bib19)\), thinking off; deepseek\-v4\-flash\([33](https://arxiv.org/html/2608.19652#bib.bib20)\), thinking off\); long\-context baselines are raw models with full history in context\. StateMem ablations \(indented\) excluded from best\-marking\. Per column within each panel, bestbold, second bestunderlined\.\*\*\*StateMem’s overall gold rate beats the strongest memory baseline on both backbones \(paired McNemar test; both p < 0\.001\)

## 6Results

We showStateMem’s competitive performance on existing memory benchmarks and evaluateStateMemBenchon long\-context LLMs, existing memory systems, retrieval baselines, andStateMem\. We report the full results in Table[3](https://arxiv.org/html/2608.19652#S5.T3); for a brief overview of each memory system evaluated and further implementation details, see §[G\.1](https://arxiv.org/html/2608.19652#A7.SS1)\. Each reported number is a single run per configuration: all answer and judge models decode at temperature 0 with reasoning traces disabled\.

### 6\.1Existing Memory Benchmark Results

Among the systems we evaluate, StateMem scores highest of all*memory systems*on LongMemEval on both substrates \(0\.580 on Qwen\-3\.5\-9B and 0\.656 on DeepSeek\-V4\-Flash; Mem0 is next at 0\.566/0\.594\), within a point of the long\-context baseline on DeepSeek \(0\.666\); and on LoCoMo \(0\.566/0\.592\) it leads all memory systems and is level with long\-context on DeepSeek \(0\.592 vs\. 0\.587\) \(Table[4](https://arxiv.org/html/2608.19652#S6.T4), with full version including question types in Table[11](https://arxiv.org/html/2608.19652#A7.T11)\)\.

The per\-question\-type numbers indicate where the gain comes from\. Both benchmarks include question types that require tracking an update, and StateMem’s margins are concentrated on those: temporal reasoning on LongMemEval \(0\.624 vs\. 0\.391 for long\-context on deepseek, 0\.398 vs\. 0\.248 on Qwen\) and knowledge update \(0\.795 on deepseek\)\. On single\-hop recall and aggregation questions, where having the full history in context is hard to beat, StateMem comes within a few points of long\-context while reading only a bounded state\. We therefore conclude state tracking does not cost recall\.

### 6\.2StateMemBenchResults

On StateMemBench, long\-context ceases to be the strong baseline it is on recall benchmarks: even the best long\-context model \(GPT\-5\.4\-Nano\) reaches only 0\.277 overall, and same\-backbone long\-context scores just 0\.149 on both DeepSeek\-V4\-Flash and Qwen\-3\.5\-9B\. The adversarial traps defeat simply holding the full transcript in context\.

Within each backbone panel, StateMem is the strongest condition\. On DeepSeek it reaches 0\.363, beating same\-backbone long\-context by 2\.4×\\times\(vs\. 0\.149\), the best memory system by 1\.8×\\times\(A\-Mem, 0\.199\), and the best baseline of*any*type by a similar factor \(Dense retrieval, 0\.205\)\. On Qwen, StateMem \(0\.233\) leads the best memory system by 1\.6×\\times\(Mem0, 0\.149\) and beats long\-context \(0\.149\), with GraphRAG \(0\.224\) statistically level \(McNemar over the 322 shared probes: 38 vs\. 35 discordant,p=0\.82p\{=\}0\.82\)\. Explicit state tracking thus separates decisively from graph\-structured retrieval on the stronger backbone, where the drift\-rate itself falls \(−15\-15pp, §[6\.3](https://arxiv.org/html/2608.19652#S6.SS3)\); on the weaker, the gain comes mainly from converting off\-pool non\-answers into in\-pool answers\. This is consistent with §[6\.3](https://arxiv.org/html/2608.19652#S6.SS3)’s finding that a capable answerer is needed to convert an explicit state representation into correct answers\. We analyzewhythe memory baselines underperform \(as well as why StateMem largely does not\) in §[6\.3](https://arxiv.org/html/2608.19652#S6.SS3)\.

Category ordering holds across substrates\. Anti\-trap sits near ceiling almost everywhere \(StateMem≈\\approx0\.87 on DeepSeek\), since its gold answer is the anchored value\. The compositional modes separate the systems—baselines are near zero on salience, sequence, and compound, and StateMem recovers most of the last two\. Salience appears to be a substrate limit rather than a memory\-design one, since every Qwen arm scores≤0\.18\{\\leq\}0\.18against0\.5690\.569for GPT\-5\.4\-Nano\.

##### Which components pay their way?

Extraction alone recovers little \(0\.174 / 0\.155\); supersession marking is the largest single step \(0\.174→\\to0\.298 on DeepSeek\), and dropping recompute guidance costs 6 pp\. On the other hand, dependency propagation helps its target modes but over\-propagates on Set B anti\-traps \(−12\.5\-12\.5pp\), and removing it leaves DeepSeek slightly better \(0\.373 vs\. 0\.363\)\. Again, since StateMem mirrors the policy family behind the traps \(§[4\.1](https://arxiv.org/html/2608.19652#S4.SS1)\), we read these margins as an upper bound and §[6\.1](https://arxiv.org/html/2608.19652#S6.SS1)as a test of its generalization\.

### 6\.3Why Do Memory Systems Drift?

We utilize the closed\-pool design discussed in §[4\.3](https://arxiv.org/html/2608.19652#S4.SS3)to better understand the state tracking behavior of the evaluated models\. We calculatedrift\-rate, or how often an incorrect answer was the selected drift target \(drift /nn\), where a lower rate is better, and report those results in Table[5](https://arxiv.org/html/2608.19652#S6.T5)\. Reading it requires separating two modes of failure: \(1\) when the method is actively anchoring on a stale value \(an in\-pool drift\); and \(2\) when the method fails to surface a recognizable or plausible option at all \(off\-pool\)\. Methods that answer predominantly off\-pool \(no memory, LightMem, and MemoryOS, which land off\-pool on 60–94% of cells\) post deceptively low drift\-rates by construction, not because they resist the drift target trap but because they rarely produce an in\-pool \(plausible\) answer\. We therefore report in\-pool count \(I\-P\) alongside drift\-rate, and give full closed\-pool breakdowns in Appendix Tables[14](https://arxiv.org/html/2608.19652#A7.T14)and[15](https://arxiv.org/html/2608.19652#A7.T15)\.

Table 4:Accuracy on LongMemEval \(full set,n=500n\{=\}500,k=20k\{=\}20\) and LoCoMo \(n=1,985n\{=\}1\{,\}985\), with each method run on both substrates \(Qwen\-3\.5\-9B; deepseek\-v4\-flash; thinking off\) and all answers graded by a fixed deepseek\-v4\-pro judge\. Per column, best inbold, second bestunderlined\.Among methods that do engage the closed pool, the weak backbone \(Qwen\-3\.5\-9B\) drifts heavily and near\-uniformly: drift\-rate sits at 61–66% for long\-context, Mem0, BM25, and StateMem alike; so on a weak answerer the memory layer barely changes the outcome\. The methods separate on the stronger backbone \(DeepSeek\-V4\-Flash\)\. StateMem’s drift\-rate falls the most, from 64\.3% to 49\.1% \(−15\-15pp\), and its correct\-answer count rises the most, from 75 to 117 \(\+42\+42\): a capable answererconverts would\-be drifts into goldonce the state representation makes the operative value explicit\. Long\-context, Mem0, and BM25 barely move \(drift\-rate shifts by 1–3 pp, correct answers by 0–9\), indicating their bottleneck isthe memory layer, not the answerer\. StateMem is also the most engaged answerer on both backbones, with the fewest off\-pool answers \(32 on Qwen, 36 on DeepSeek\) and the highest in\-pool count, indicating the accuracy is not due to higher abstention\.

Table 5:Closed\-pool \(n=322n\{=\}322\) drift\-rate and in\-pool engagement, methods that produce non\-trivial in\-pool counts on at least one backbone\.In\-pool\(I\-P\) = method produced one of the closed\-pool options\.Drift\-rate\(D\-R\) = drift /nn\(errors are 0 for every method\)\. StateMem’s I\-P isbold\.
### 6\.4StateMem as a Wrapper

To test the claim that state tracking is a separable axis, we buildStateMemWrapper: StateMem’s approach to state as a prompt\-level transformation of the answer call, with none of its machinery\. The wrapper receives the transcript, the backend’s retrieved chunks, and the question, and replaces the answer call the backend would have made anyway, so it adds no LLM calls\.

The call fuses two stages\.Tracewrites, scoped by question, the value chain of every slot the question touches—initial value, each revision, and current operative value, in chronological order with turn numbers—plus the latest stated inputs of every standing rule\.Resolvethen commits under four precedence rules targeting the failure modes of §[3\.3](https://arxiv.org/html/2608.19652#S3.SS3): later supersedes earlier, standing rules outrank instances, derived quantities are recomputed rather than quoted, and a fact is retired only by explicit supersession or expiry\. The trace is capped at 250 words and committed before the answer, which blocks post\-hoc justification\. Overhead over the matched control is a fixed 155\-token instruction and that≤250\{\\leq\}250\-word trace, both inside the one call \(Appendix[F\.5](https://arxiv.org/html/2608.19652#A6.SS5)\)\.

The control,wrapper\-ctrl, matches the wrapper on call count, word budget, answer format, and context; its first stage is generic question\-conditioned extraction, with no chains, no turn numbers, and no resolution rules\.Δ⁡\(wrapper−wrapper\-ctrl\)\\Delta\(\\text\{wrapper\}\-\\text\{wrapper\-ctrl\}\)therefore isolates structure from sheer text volume\. Both prompts appear verbatim in Appendix[F\.1](https://arxiv.org/html/2608.19652#A6.SS1)\.

Table 6:StateMemWrapper composition sweep; each backend ingests with its unmodified pipeline and is evaluated on the same frozen pairedn=60n\{=\}60set per benchmark \(StateMemBench: 30 short \+ 30 long scenarios,k=10k\{=\}10; LongMemEval:k=20k\{=\}20\) under three answer conditions: the backend*alone*, a length\- and cost\-matched generic control \(*\+Ctrl*\), and our state\-tracing wrapper \(*\+SMW*\)\. All answers are scored by a fixed deepseek\-v4\-pro judge\. Best condition per row inbold\. Dense on LongMemEval/Qwen hasn=59n\{=\}59\(one case failed at ingest\)\.#### Evaluation

We evaluate all six backends on both substrates against frozen pairedn=60n\{=\}60sets fromStateMemBenchand LongMemEval\([30](https://arxiv.org/html/2608.19652#bib.bib11)\)\(Table[6](https://arxiv.org/html/2608.19652#S6.T6)\)\. Each store is built once and answered three ways, so*alone*,*\+Ctrl*, and*\+SMW*face identical retrieved chunks under a single fixed judge\.

The wrapper improves every backend on both benchmarks\. OnStateMemBenchit adds\+31\.7\+31\.7to\+66\.6\+66\.6points over each backend alone \(largest for the near\-floor LightMem and MemOS\), of which structure contributes\+15\.0\+15\.0to\+31\.7\+31\.7\. This is significant in all twelve cells \(paired McNemarp≤0\.04p\{\\leq\}0\.04, bootstrap CIs exclude zero\) and exceeds the control in 23 of 24\. On LongMemEval the split is substrate\-dependent, as structure carries the gain on Qwen \(\+11\.7\+11\.7to\+25\.0\+25\.0; the control alone often hurts\), while on the DeepSeek substrate the control recovers most of the lift and structure adds only−5\-5to\+5\+5\. This implies a strong answerer has less need for the state structure\. Additionally, a question\-blind 250\-word summary falls below the no\-wrapper baseline on both benchmarks and carries the highest drift rate of any arm, showing the importance of question conditioning\.

Notably, the wrapper outperformsStateMemitself on the same scenarios \(0\.283 vs\.≥0\.567\{\\geq\}0\.567on Qwen\)\. When the transcript fits in context, resolving state at answer time is good enough, but the persistent store can be useful when it does not fit\. Prompts, backend protocol, blind\-summary ablation, and cost analysis are in Appendix[F](https://arxiv.org/html/2608.19652#A6); per\-cell tables are Tables[12](https://arxiv.org/html/2608.19652#A7.T12)and[13](https://arxiv.org/html/2608.19652#A7.T13)\.

## 7Conclusion

We analyze state tracking as a capability distinct from recall and reasoning, and show that state drift is already present, though unmeasured, in the failure states of existing benchmarks even under perfect retrieval\. We introduceStateMemBench, which evaluates state tracking through 234 multi\-session scenarios spanning five failure modes \(status, salience, sequence, compound, and anti\-trap\) across three domains, and find that existing memory systems and long\-context baselines struggle across all of them\. We then presentStateMem, a state\-first method representing state and its relational dependencies, which improves over the strongest same\-backbone baseline by up to 1\.8×\\timesonStateMemBench, surpasses same\-backbone long\-context there, and stays competitive with it on recall benchmarks; ablations attribute the gain chiefly to supersession marking and recompute prompting\. Finally, the state\-tracking axis is separable: applied as an answer\-time wrapper, it lifts every backend we test, with a matched control isolating the structural share\. Current memory systems lack just this explicit state discipline\.

## Acknowledgments

Research was supported in part by the AI Institute for Molecular Discovery, Synthetic Strategy, and Manufacturing: Molecule Maker Lab Institute \(MMLI\), funded by U\.S\. National Science Foundation under Award 2505932, NSF IIS 25\-37827, and the Institute for Geospatial Understanding through an Integrative Discovery Environment \(I\-GUIDE\) by NSF under Award No\. 2118329\. The research has used the Delta/DeltaAI advanced computing and data resource, supported in part by the University of Illinois Urbana\-Champaign and through allocation \#250851 from the Advanced Cyberinfrastructure Coordination Ecosystem: Services & Support \(ACCESS\) program, which is supported by National Science Foundation grants OAC 2320345, \#2138259, \#2138286, \#2138307, \#2137603, and \#2138296\. Any opinions, findings, and conclusions or recommendations expressed herein are those of the authors and do not necessarily represent the views, either expressed or implied, of DARPA or the U\.S\. Government\. Miri Liu was supported by the Amazon AI PhD Fellowship\.

## References

- Baeet al\.\(2022\)S\. Bae, D\. Kwak, S\. Kang, M\. Y\. Lee, S\. Kim, Y\. Jeong, H\. Kim, S\. Lee, W\. Park, and N\. SungKeep me updated\! memory management in long\-term conversations\.External Links:2210\.08750,[Link](https://arxiv.org/abs/2210.08750)Cited by:[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px2.p1.1)\.
- Barreset al\.\(2025\)V\. Barres, H\. Dong, S\. Ray, X\. Si, and K\. Narasimhanτ2\\tau^\{2\}\-Bench: evaluating conversational agents in a dual\-control environment\.External Links:2506\.07982,[Link](https://arxiv.org/abs/2506.07982)Cited by:[§E\.2](https://arxiv.org/html/2608.19652#A5.SS2.p1.1),[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px3.p1.1),[§3\.1](https://arxiv.org/html/2608.19652#S3.SS1.p1.1)\.
- Budzianowskiet al\.\(2020\)P\. Budzianowski, T\. Wen, B\. Tseng, I\. Casanueva, S\. Ultes, O\. Ramadan, and M\. GašićMultiWOZ – a large\-scale multi\-domain wizard\-of\-oz dataset for task\-oriented dialogue modelling\.External Links:1810\.00278,[Link](https://arxiv.org/abs/1810.00278)Cited by:[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px2.p1.1)\.
- Chaoet al\.\(2026\)H\. Chao, Y\. Bai, R\. Sheng, T\. Li, and Y\. SunSTALE: can llm agents know when their memories are no longer valid?\.External Links:2605\.06527,[Link](https://arxiv.org/abs/2605.06527)Cited by:[§1](https://arxiv.org/html/2608.19652#S1.p3.1),[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px1.p1.1)\.
- Chhikaraet al\.\(2025\)P\. Chhikara, D\. Khant, S\. Aryan, T\. Singh, and D\. YadavMem0: building production\-ready ai agents with scalable long\-term memory\.External Links:2504\.19413,[Link](https://arxiv.org/abs/2504.19413)Cited by:[§G\.1](https://arxiv.org/html/2608.19652#A7.SS1.SSS0.Px3.p1.1),[§1](https://arxiv.org/html/2608.19652#S1.p1.1),[Table 3](https://arxiv.org/html/2608.19652#S5.T3)\.
- Dinget al\.\(2024\)Y\. Ding, L\. L\. Zhang, C\. Zhang, Y\. Xu, N\. Shang, J\. Xu, F\. Yang, and M\. YangLongRoPE: extending llm context window beyond 2 million tokens\.External Links:2402\.13753,[Link](https://arxiv.org/abs/2402.13753)Cited by:[§1](https://arxiv.org/html/2608.19652#S1.p1.1)\.
- Fanget al\.\(2026\)J\. Fang, X\. Deng, H\. Xu, Z\. Jiang, Y\. Tang, Z\. Xu, S\. Deng, Y\. Yao, M\. Wang, S\. Qiao, H\. Chen, and N\. ZhangLightMem: lightweight and efficient memory\-augmented generation\.External Links:2510\.18866,[Link](https://arxiv.org/abs/2510.18866)Cited by:[§G\.1](https://arxiv.org/html/2608.19652#A7.SS1.SSS0.Px5.p1.1),[Table 3](https://arxiv.org/html/2608.19652#S5.T3)\.
- Gottweiset al\.\(2026\)J\. Gottweis, W\. Weng, A\. Daryin, T\. Tu, P\. Sirkovic, A\. Myaskovsky, G\. Glowaty, F\. Weissenberger, A\. Orlandi, D\. Popovici, A\. Palepu, K\. Rong, R\. Tanno, K\. Saab, F\. Zhang, J\. Blum, A\. Carroll, K\. Kulkarni, N\. Tomašev, D\. Zverinski, I\. Rendulic, E\. Vedadi, F\. Hasler, L\. Rimanic, M\. Boia, I\. Budiselic, B\. Feinstein, M\. Bellaiche, T\. Sheffer, J\. Freyberg, J\. Ratcliff, O\. Bertolli, K\. Chou, A\. Hassidim, B\. Gokturk, A\. Vahdat, Y\. Guan, V\. Dhillon, E\. D\. Vaishnav, B\. Lee, T\. R\. D\. Costa, J\. R\. Penadés, G\. Peltz, Y\. Matias, J\. Manyika, D\. Hassabis, Y\. Xu, P\. Kohli, A\. Pawlosky, A\. Karthikesalingam, and V\. NatarajanAccelerating scientific discovery with co\-scientist\.Nature655\(8122\),pp\. 487–496\.External Links:ISSN 1476\-4687,[Link](http://dx.doi.org/10.1038/s41586-026-10644-y),[Document](https://dx.doi.org/10.1038/s41586-026-10644-y)Cited by:[§1](https://arxiv.org/html/2608.19652#S1.p1.1)\.
- Heet al\.\(2026\)Z\. He, Y\. Wang, C\. Zhi, Y\. Hu, T\. Chen, L\. Yin, Z\. Chen, T\. A\. Wu, S\. Ouyang, Z\. Wang, J\. Pei, J\. McAuley, Y\. Choi, and S\. PentlandMemoryArena: benchmarking agent memory in interdependent multi\-session agentic tasks\.arXiv preprint arXiv:2602\.16313\.Cited by:[Appendix C](https://arxiv.org/html/2608.19652#A3.SS0.SSS0.Px4),[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px3.p1.1),[§3\.1](https://arxiv.org/html/2608.19652#S3.SS1.p1.1),[Table 2](https://arxiv.org/html/2608.19652#S4.T2.5.5.1)\.
- Hecket al\.\(2020\)M\. Heck, C\. van Niekerk, N\. Lubis, C\. Geishauser, H\. Lin, M\. Moresi, and M\. GašićTripPy: a triple copy strategy for value independent neural dialog state tracking\.InProceedings of the 21th Annual Meeting of the Special Interest Group on Discourse and Dialogue,O\. Pietquin, S\. Muresan, V\. Chen, C\. Kennington, D\. Vandyke, N\. Dethlefs, K\. Inoue, E\. Ekstedt, and S\. Ultes \(Eds\.\),1st virtual meeting,pp\. 35–44\.External Links:[Link](https://aclanthology.org/2020.sigdial-1.4/),[Document](https://dx.doi.org/10.18653/v1/2020.sigdial-1.4)Cited by:[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px2.p1.1)\.
- Huet al\.\(2025\)Y\. Hu, Y\. Wang, and J\. McAuleyEvaluating memory in llm agents via incremental multi\-turn interactions\.arXiv preprint arXiv:2507\.05257\.Cited by:[Appendix C](https://arxiv.org/html/2608.19652#A3.SS0.SSS0.Px3),[Table 2](https://arxiv.org/html/2608.19652#S4.T2.5.4.1)\.
- Instacart \(2017\)InstacartThe instacart online grocery shopping dataset 2017\.Note:https://www\.instacart\.com/datasets/grocery\-shopping\-2017Accessed 2026\-05\-25Cited by:[§D\.5](https://arxiv.org/html/2608.19652#A4.SS5.SSSx1.Px2.p1.1)\.
- Jianget al\.\(2025\)B\. Jiang, Y\. Yuan, M\. Shen, Z\. Hao, Z\. Xu, Z\. Chen, Z\. Liu, A\. R\. Vijjini, J\. He, H\. Yu, R\. Poovendran, G\. Wornell, L\. Ungar, D\. Roth, S\. Chen, and C\. J\. TaylorPersonaMem\-v2: towards personalized intelligence via learning implicit user personas and agentic memory\.External Links:2512\.06688,[Link](https://arxiv.org/abs/2512.06688)Cited by:[§1](https://arxiv.org/html/2608.19652#S1.p1.1),[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px3.p1.1)\.
- Kanget al\.\(2025\)J\. Kang, M\. Ji, Z\. Zhao, and T\. BaiMemory OS of AI agent\.InProceedings of the 2025 Conference on Empirical Methods in Natural Language Processing,C\. Christodoulopoulos, T\. Chakraborty, C\. Rose, and V\. Peng \(Eds\.\),Suzhou, China,pp\. 25961–25970\.External Links:[Link](https://aclanthology.org/2025.emnlp-main.1318/),[Document](https://dx.doi.org/10.18653/v1/2025.emnlp-main.1318),ISBN 979\-8\-89176\-332\-6Cited by:[§G\.1](https://arxiv.org/html/2608.19652#A7.SS1.SSS0.Px6.p1.1),[Table 3](https://arxiv.org/html/2608.19652#S5.T3)\.
- Kimet al\.\(2022\)T\. Kim, H\. Yoon, Y\. Lee, P\. Kang, and M\. KimMismatch between multi\-turn dialogue and its evaluation metric in dialogue state tracking\.External Links:2203\.03123,[Link](https://arxiv.org/abs/2203.03123)Cited by:[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px2.p1.1)\.
- Kwaet al\.\(2026\)T\. Kwa, B\. West, J\. Becker, A\. Deng, K\. Garcia, M\. Hasin, S\. Jawhar, M\. Kinniment, N\. Rush, S\. V\. Arx, R\. Bloom, T\. Broadley, H\. Du, B\. Goodrich, N\. Jurkovic, L\. H\. Miles, S\. Nix, T\. Lin, C\. Painter, N\. Parikh, D\. Rein, L\. J\. K\. Sato, H\. Wijk, D\. M\. Ziegler, E\. Barnes, and L\. ChanMeasuring ai ability to complete long software tasks\.External Links:2503\.14499,[Link](https://arxiv.org/abs/2503.14499)Cited by:[§1](https://arxiv.org/html/2608.19652#S1.p1.1)\.
- Lee \(2024\)R\. LeeCredit card transaction dataset\.External Links:[Link](https://huggingface.co/datasets/pointe77/credit-card-transaction)Cited by:[§D\.5](https://arxiv.org/html/2608.19652#A4.SS5.SSSx1.Px3.p1.1)\.
- Liet al\.\(2026\)Y\. Li, W\. Guo, L\. Zhang, R\. Xu, M\. Huang, H\. Liu, L\. Xu, Y\. Xu, and J\. LiuLocomo\-plus: beyond\-factual cognitive memory evaluation framework for llm agents\.External Links:2602\.10715,[Link](https://arxiv.org/abs/2602.10715)Cited by:[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px3.p1.1)\.
- Luet al\.\(2024\)C\. Lu, C\. Lu, R\. T\. Lange, J\. Foerster, J\. Clune, and D\. HaThe ai scientist: towards fully automated open\-ended scientific discovery\.arXiv preprint arXiv:2408\.06292\.Cited by:[§1](https://arxiv.org/html/2608.19652#S1.p1.1)\.
- Maharanaet al\.\(2024\)A\. Maharana, D\. Lee, S\. Tulyakov, M\. Bansal, F\. Barbieri, and Y\. FangEvaluating very long\-term conversational memory of llm agents\.External Links:2402\.17753,[Link](https://arxiv.org/abs/2402.17753)Cited by:[Appendix C](https://arxiv.org/html/2608.19652#A3.SS0.SSS0.Px1),[§1](https://arxiv.org/html/2608.19652#S1.p1.1),[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px3.p1.1),[Table 2](https://arxiv.org/html/2608.19652#S4.T2.5.2.1)\.
- Microsoft \(2026\)MicrosoftSTATE\-Bench: stateful task agent evaluation benchmark\.Note:https://github\.com/microsoft/STATE\-BenchBlog announcement:https://opensource\.microsoft\.com/blog/2026/05/19/introducing\-state\-bench\-a\-benchmark\-for\-ai\-agent\-memory/; accessed 2026\-07\-28Cited by:[Appendix C](https://arxiv.org/html/2608.19652#A3.SS0.SSS0.Px5),[Table 2](https://arxiv.org/html/2608.19652#S4.T2.5.6.1)\.
- OpenAI \(2024\)OpenAINew embedding models and API updates\.Note:https://openai\.com/index/new\-embedding\-models\-and\-api\-updates/Released 2024\-01\-25\. Accessed 2026\-05\-25Cited by:[Table 3](https://arxiv.org/html/2608.19652#S5.T3)\.
- Packeret al\.\(2024\)C\. Packer, S\. Wooders, K\. Lin, V\. Fang, S\. G\. Patil, I\. Stoica, and J\. E\. GonzalezMemGPT: towards llms as operating systems\.External Links:2310\.08560,[Link](https://arxiv.org/abs/2310.08560)Cited by:[§1](https://arxiv.org/html/2608.19652#S1.p1.1),[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px1.p1.1)\.
- Parket al\.\(2023\)J\. S\. Park, J\. C\. O’Brien, C\. J\. Cai, M\. R\. Morris, P\. Liang, and M\. S\. BernsteinGenerative agents: interactive simulacra of human behavior\.External Links:2304\.03442,[Link](https://arxiv.org/abs/2304.03442)Cited by:[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px1.p1.1)\.
- Qwen Team \(2026\)Qwen TeamQwen3\.5: towards native multimodal agents\.Note:https://qwen\.ai/blog?id=qwen3\.5Accessed 2026\-07\-28Cited by:[Table 3](https://arxiv.org/html/2608.19652#S5.T3)\.
- Rasmussenet al\.\(2025\)P\. Rasmussen, P\. Paliychuk, T\. Beauvais, J\. Ryan, and D\. ChalefZep: a temporal knowledge graph architecture for agent memory\.External Links:2501\.13956,[Link](https://arxiv.org/abs/2501.13956)Cited by:[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px1.p1.1)\.
- Rastogiet al\.\(2020\)A\. Rastogi, X\. Zang, S\. Sunkara, R\. Gupta, and P\. KhaitanTowards scalable multi\-domain conversational agents: the schema\-guided dialogue dataset\.External Links:1909\.05855,[Link](https://arxiv.org/abs/1909.05855)Cited by:[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px2.p1.1)\.
- Williamset al\.\(2013\)J\. Williams, A\. Raux, D\. Ramachandran, and A\. BlackThe dialog state tracking challenge\.InProceedings of the SIGDIAL 2013 Conference,M\. Eskenazi, M\. Strube, B\. Di Eugenio, and J\. D\. Williams \(Eds\.\),Metz, France,pp\. 404–413\.External Links:[Link](https://aclanthology.org/W13-4065/)Cited by:[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px2.p1.1)\.
- Wuet al\.\(2026a\)D\. Wu, Z\. Ji, A\. Kawatkar, B\. Kwan, J\. Gu, N\. Peng, and K\. ChangLongMemEval\-v2: evaluating long\-term agent memory toward experienced colleagues\.External Links:2605\.12493,[Link](https://arxiv.org/abs/2605.12493)Cited by:[§1](https://arxiv.org/html/2608.19652#S1.p3.1),[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px3.p1.1)\.
- Wuet al\.\(2025\)D\. Wu, H\. Wang, W\. Yu, Y\. Zhang, K\. Chang, and D\. YuLongMemEval: benchmarking chat assistants on long\-term interactive memory\.External Links:2410\.10813,[Link](https://arxiv.org/abs/2410.10813)Cited by:[Appendix C](https://arxiv.org/html/2608.19652#A3.SS0.SSS0.Px2),[§1](https://arxiv.org/html/2608.19652#S1.p1.1),[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px3.p1.1),[§3\.1](https://arxiv.org/html/2608.19652#S3.SS1.p1.1),[Table 2](https://arxiv.org/html/2608.19652#S4.T2.5.3.1),[§6\.4](https://arxiv.org/html/2608.19652#S6.SS4.SSSx1.p1.1)\.
- Wu \(2024\)S\. WuIntroducing devin, the first AI software engineer\.Note:Cognition AI BlogAccessed: 2026\-05\-26External Links:[Link](https://www.cognition.ai/blog/introducing-devin)Cited by:[§1](https://arxiv.org/html/2608.19652#S1.p1.1)\.
- Wuet al\.\(2026b\)X\. Wu, K\. Li, Y\. Zhao, L\. Zhang, L\. Ou, H\. Yin, Z\. Zhang, X\. Yu, D\. Zhang, Y\. Jiang, P\. Xie, F\. Huang, M\. Cheng, S\. Wang, H\. Cheng, and J\. ZhouReSum: unlocking long\-horizon search intelligence via context summarization\.External Links:2509\.13313,[Link](https://arxiv.org/abs/2509.13313)Cited by:[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px1.p1.1)\.
- Xuet al\.\(2026\)A\. Xu, B\. Lin, B\. Xue, B\. Wang, B\. Xu, B\. Wu, B\. Zhang, C\. Lin, C\. Dong, C\. Ling,et al\.Deepseek\-v4: towards highly efficient million\-token context intelligence\.arXiv preprint arXiv:2606\.19348\.Cited by:[Table 3](https://arxiv.org/html/2608.19652#S5.T3)\.
- Xuet al\.\(2025\)W\. Xu, Z\. Liang, K\. Mei, H\. Gao, J\. Tan, and Y\. ZhangA\-mem: agentic memory for llm agents\.External Links:2502\.12110,[Link](https://arxiv.org/abs/2502.12110)Cited by:[§G\.1](https://arxiv.org/html/2608.19652#A7.SS1.SSS0.Px4.p1.1),[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px1.p1.1),[Table 3](https://arxiv.org/html/2608.19652#S5.T3)\.
- Yanget al\.\(2024\)J\. Yang, C\. E\. Jimenez, A\. Wettig, K\. Lieret, S\. Yao, K\. Narasimhan, and O\. PressSWE\-agent: agent\-computer interfaces enable automated software engineering\.External Links:2405\.15793,[Link](https://arxiv.org/abs/2405.15793)Cited by:[§1](https://arxiv.org/html/2608.19652#S1.p1.1)\.
- Yaoet al\.\(2024\)S\. Yao, N\. Shinn, P\. Razavi, and K\. Narasimhanτ\\tau\-Bench: a benchmark for tool\-agent\-user interaction in real\-world domains\.External Links:2406\.12045,[Link](https://arxiv.org/abs/2406.12045)Cited by:[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px3.p1.1)\.
- Zhaoet al\.\(2026\)Y\. Zhao, B\. Yuan, J\. Huang, H\. Yuan, Z\. Yu, H\. Xu, L\. Hu, A\. Shankarampeta, Z\. Huang, W\. Ni, Y\. Tian, and J\. ZhaoAMA\-bench: evaluating long\-horizon memory for agentic applications\.External Links:2602\.22769,[Link](https://arxiv.org/abs/2602.22769)Cited by:[§2](https://arxiv.org/html/2608.19652#S2.SS0.SSS0.Px3.p1.1)\.

## Appendix AState Drift Labeling and Validation Details

### A\.1Buckets and labeling procedure

Each confirmed failure is one\(c​a​s​e,t​u​r​n,s​l​o​t\)\(case,turn,slot\)point assigned to exactly one bucket\. An ordered rule stops at the first match: \(Q1\) is the gold fact in context? \(no→\\toretrieval failure\) \(Q2\) is the gold well defined? \(no→\\togold issue;≤3%\\leq 3\\%everywhere, omitted from Table[1](https://arxiv.org/html/2608.19652#S3.T1)\) \(Q3\) does the output engage the slot domain? \(no→\\tocomprehension failure\) \(Q4\) is it correct but wrongly formatted? \(→\\toschema mismatch\) \(Q4\.5\) where the gold may be an abstention, did the agent confabulate an in\-domain value? \(→\\tofailed abstention; vacuous where gold is always concrete\) \(Q5\) does the output surface the current value but err in the inference? \(→\\toreasoning failure\)\. Only a point surviving all six reads, whose output matches an available but stale or wrong\-scope version of a never\-retracted fact, is labeled drift; points whose evidence supports no assignment are dropped, not defaulted\. The never\-retracted condition excludes legitimate update: the judge must cite evidence that the newer version was still in force, so an agent following a genuine revision is never charged\. Q1 is resolved mechanically where possible: in shopping and search the gold token is in the printed candidate set by construction; in travel a prompt scan resolves99\.1%99\.1\\%of cases; on LongMemEval oracle availability is guaranteed by the prompt\. Q2–Q5 are judge\-applied\.

##### Notes on Table[1](https://arxiv.org/html/2608.19652#S3.T1)\.

Rows reach100%100\\%together with an omitted gold\-issue share \(≤3%\\leq 3\\%\)\. MA rows pool88memory variants after the adversarial filter\. “FA” is “–” where the benchmark’s gold is never an abstention\. The LME row reports the cross\-family confirmed drift rate with the remaining cells from the conservative adjudication \(§[A\.2](https://arxiv.org/html/2608.19652#A1.SS2)\); its drift share carries a Wilson95%95\\%CI of\[30%,60%\]\[30\\%,60\\%\]\(n=36n\{=\}36\)\. Theτ2\\tau^\{2\}\-Z row is descriptive: drift CI\[39%,82%\]\[39\\%,82\\%\], and its0\.0%0\.0\\%cells are indistinguishable from non\-observation\.

### A\.2Conservatism: adversarial filter and cross\-family confirmation

The adversarial filter, a second pass that attempts to re\-classify every drift candidate as another bucket, downgrades3232–47%47\\%of candidates across benchmarks, so surviving labels are conservative by construction\. Judging proceeds in two stages\. First, two independent decodes of the same DeepSeek\-V4 judge \(temperature00, identical decision\-tree prompt\) label every confirmed failure; their agreement is Table[7](https://arxiv.org/html/2608.19652#A1.T7)\. The twelve binary disagreements are structured: GPT\-4o pulls seven DeepSeek\-drift cases \(six of them temporal\-reasoning, date\-format\-adjacent\) out to schema mismatch or failed abstention, and pushes four abstention\-gold cases into drift; the conservative rule takes the non\-drift side of every flip\. Second, on LongMemEval oracle \(the benchmark carrying the perfect\-retrieval claim\) we add a judge from a different model family \(GPT\-4o, same rubric and prompt\) and report the*cross\-family confirmed*rate: a failure counts as drift only if both families say drift\. The DeepSeek pass yields63\.9%63\.9\\%drift and GPT\-4o55\.6%55\.6\\%; the confirmed rate is44\.4%44\.4\\%\(16/3616/36\), which is what the paper reports\. Where exactly one family says drift we take the non\-drift reading, giving the conservative\-adjudicated row in Table[1](https://arxiv.org/html/2608.19652#S3.T1)\. Cross\-family binary agreement is69\.4%69\.4\\%raw \(κ=0\.37\\kappa\{=\}0\.37, PABAK=0\.39\{=\}0\.39\), lower than same\-family agreement\. This is why we report the confirmed rate rather than either family’s rate alone\.

### A\.3Inter\-judge agreement

Cohen’sκ\\kappadeflates mechanically when one class dominates the marginals; PABAK \(=2​Pa−1=2P\_\{a\}\-1, recomputable from raw agreement alone\) and Gwet’s AC1 correct for this\.

Table 7:Inter\-judge agreement on the binary drift decision: two same\-model DeepSeek\-V4 decodes \(top\), and DeepSeek\-V4×\\timesGPT\-4o \(bottom row cross family\)\. MA\-travel is omitted \(22doubly\-labeled cases\)\. MA\-shopping is the one cell whereκ\\kappamisrepresents reliability: both passes call\>90%\{\>\}90\\%of failures drift*pre\-filter*, which crushes the chance correction despite91\.6%91\.6\\%raw agreement\.Modeκ\\kappa\(which drift sub\-mechanism\) is near zero on every benchmark \(0\.000\.00–0\.090\.09\) while binaryκ\\kappais fair\-to\-substantial: judges agree on*whether*a failure is drift but not on*why the wrong fact won*\. This is the empirical basis for §[3\.3](https://arxiv.org/html/2608.19652#S3.SS3)’s argument that mechanism must be fixed by construction rather than inferred post hoc\.

### A\.4Human anchoring

Judge–judge agreement cannot establish that the categories are real, so we anchored the rubric to two human annotators under two protocols\.*Track A \(structured,n=12n\{=\}12\)*: annotators answer fixed sub\-questions \(was the gold fact in context; did the agent reference it withinK=3K\{=\}3turns; was the referenced scope correct\), then record a free observation from a neutral menu; the bucket is*derived*from these answers rather than chosen, so the taxonomy cannot be imposed by the form\.*Track B \(blind,n=6n\{=\}6\)*: annotators describe the failure in free text*before*seeing the taxonomy; a researcher then maps descriptions to buckets post hoc\. The sample is stratified across LME\-oracle, MA\-shopping, and MA\-search and oversamples judge\-disputed cases \(6/126/12in Track A\), making it a deliberately hard audit set\.

*Inter\-annotator reliability\.*On Track A the annotators agree on the binary drift decision at83\.3%83\.3\\%raw \(κ=0\.43\\kappa\{=\}0\.43, PABAK=0\.67\{=\}0\.67\); on the full bucket label,50\.0%50\.0\\%raw \(κ=0\.42\\kappa\{=\}0\.42\)\. On Track B the neutral surface\-observation label reachesκ=0\.80\\kappa\{=\}0\.80\(83\.3%83\.3\\%raw\): blind to the taxonomy, annotators see the same failure surface\. All1212blind free\-text descriptions \(66cases×\\times22annotators\) map onto existing buckets; no description required a novel category, and one annotator’s blind description of an LME case independently reconstructs the salience mechanism \(“the agent is just grepping for mentions”\)\.

*Human vs\. judge\.*Binary agreement with the judge is58\.3%58\.3\\%and41\.7%41\.7\\%for the two annotators, and both assign*less*drift than the judge \(8\.3%8\.3\\%and25\.0%25\.0\\%vs\.50\.0%50\.0\\%on this disputed\-enriched sample\)\. The departures are replicated rather than idiosyncratic: on five of twelve cases both annotators converge on the same alternative label, concentrated in two patterns\. \(i\)*Wrong slot vs\. drift*: answers returning a person where gold is a date/year, which the judge’s*other\_drift*mode absorbs and both humans call schema mismatch; the cross\-family confirmation rule of §[A\.2](https://arxiv.org/html/2608.19652#A1.SS2)corrects the same boundary\. \(ii\)*Equivalence*: answers the judge calls schema mismatch that gold’s own notes accept as alternate forms \(a listed alternate name; an omitted legal suffix\), which both humans call not\-a\-failure\. Both patterns are policy boundaries, not disputes about the drift category: the human audit and the cross\-family confirmation converge on the same correction, applied before any number is reported\. The annotation kit \(forms, keys, and the analyzer\) is released with the benchmark\.

### A\.5LongMemEval failure anatomy

Of306306oracle questions, DeepSeek\-V4\-Flash fails3636\. The conservative\-adjudicated distribution is44\.4%44\.4\\%state drift \(1616\),27\.8%27\.8\\%failed abstention \(1010\),25\.0%25\.0\\%schema mismatch \(99\),2\.8%2\.8\\%reasoning \(11\),0%0\\%comprehension and retrieval \(recall=1\.0=1\.0by construction\)\. By question type, failures of multi\-session questions are drift at71\.4%71\.4\\%\(10/1410/14\) vs\.25\.0%25\.0\\%\(2/82/8\) for knowledge\-update, identical under the single\-family and cross\-family confirmed labelings\.

### A\.6Reasoning\-vs\-state separation A/B

If drift were reasoning shortfall in disguise, a stronger reasoner would close the gap\. We test this directly on LongMemEval multi\-session oracle \(n=50n\{=\}50paired items, identical prompts, full history in context so no retrieval confound\): the only manipulation is enabling DeepSeek\-V4\-Flash’s native reasoning trace, with the judge held constant across arms\.

Table 8:Paired reasoning A/B\. Reasoning does not close the gap: the−8\.0\-8\.0pp point estimate rests on33rescues against77new failures, which does not establish a direction \(exact McNemarp=0\.34p\{=\}0\.34\)\. The off\-pass→\\toon\-fail cell includes the case dissected in Appendix[B](https://arxiv.org/html/2608.19652#A2)\.The dispositive contrast is the asymmetry, not the point estimate: reasoning leaves the failure set where it was, while state\-maintenance interventions move it \(the wrapper lifts the same six backends by\+20\.9\+20\.9pp mean over each backend alone on this task and backbone, with the structure share decomposed by the matched control in §[6\.4](https://arxiv.org/html/2608.19652#S6.SS4)\)\. These failures lie in state construction, not reasoning capacity\.

## Appendix BDrift Case

One LongMemEval\-oracle case \(46a3abf7, multi\-session\), chosen because it is cross\-family confirmed and both judge families independently assign not only*drift*but the same mechanism \(salience\)\. All sessions are in the prompt; recall is1\.01\.0\.

##### What the context establishes\.

Across three sessions the user has three tanks on record:

- •May 21, mid\-session, inside a question about plant temperatures:*“I’ve also been taking care of a small 1\-gallon tank that I set up for a friend’s kid, which has a few guppies…”*Mentioned once, never again\.
- •May 23:*“I have a 5\-gallon tank with a solitary betta fish named Finley”*; the same session announces*“I’ve since set up a new 20\-gallon community tank\.”*
- •May 27: a full session about the 20\-gallon,*“I’ve finally set up my 20\-gallon freshwater community tank, which I’ve named ‘Amazonia’ ”*, followed by a dozen turns on its fish, food, algae, plants, and driftwood\.

##### The probe \(May 30\)\.

*“How many tanks do I currently have, including the one I set up for my friend’s kid?”*Gold:3\. Agent:2\.

##### Why this is drift and nothing else\.

The question itself names the quiet fact, and the agent still fails to count it\. Every alternative reading is closed: not retrieval \(oracle: every session is in the prompt\), not comprehension \(the agent returns a well\-formed count\), not schema \(a number is a number\), and not a legitimate update \(no tank was ever given away or retracted\)\. Nothing in the output engages the 1\-gallon tank\. Nor is it reasoning starvation: in the paired A/B of Appendix[A\.6](https://arxiv.org/html/2608.19652#A1.SS6)this same case flips— without the reasoning trace the model answers33\(correct\); with deliberation enabled it answers22\. What remains is the signature asymmetry: the 20\-gallon tank has a*name*and two sessions of repeated discussion; the 1\-gallon tank has one clause inside a question about plant care\. The louder fact is fully attended; the quieter one, six days and dozens of turns upstream, silently drops out of the state, even when the probe points straight at it\. Both judge families label this*state drift, salience mode*, independently and verbatim\. This is the mechanismStateMemBenchmanufactures by construction: a quiet operative fact, a louder competitor, and a decision that requires the quiet one\.

## Appendix CBenchmark Comparison

Table[2](https://arxiv.org/html/2608.19652#S4.T2)scores each benchmark against the requirements of state\-tracking evaluation\. The columns:

- •*Multi\-session dialogue*: probes span temporally separated conversational sessions, so state must persist across session boundaries rather than within one context episode\.
- •*Scale*: reported size in each benchmark’s native unit \(turns, sessions, or tasks\)\.
- •*Updates central*: state updates are the measured phenomenon, not one question sub\-type among many\.
- •*Supersession*: correct answers require later\-overrides\-earlier resolution among multiple recorded values of the same fact\.
- •*Verifiable gold*: the gold answer derives from an executable or programmatic state rather than from annotation \(mapping a system’s free\-form answer onto that key may still use a judge\)\.
- •*Drift scored*: the superseded value is a distinct scored outcome, separating acting on old state from generic error\.
- •*Anti\-update controls*: probes that reward retaining an earlier value against a later, non\-authoritative mention, so an always\-prefer\-the\-latest heuristic cannot score well\.
- •*Paired horizons*: the same probes appear at a short and a long horizon where the*operative update history*grows with length, isolating maintenance from distractor volume\.

##### LoCoMo\([20](https://arxiv.org/html/2608.19652#bib.bib8)\)\.

Multi\-session dialogues averaging roughly300300turns over as many as3535sessions, with QA over facts and events\. Questions target recall, multi\-hop composition, and temporal ordering of*static*facts\. No question requires resolving a superseded value, gold is free\-text judged, and the stale value carries no separate score\. Its adversarial and unanswerable questions reward declining when evidence is absent, which is not a control against spurious updates\.

##### LongMemEval\([30](https://arxiv.org/html/2608.19652#bib.bib11)\)\.

Multi\-session dialogue with*knowledge update*as one of six question types \(partial updates; those questions require preferring the later value, which makes supersession partial\)\. Gold is curated free text with no programmatic verification, and the stale value is not a scored outcome\. Its abstention questions reward declining on missing evidence rather than retaining a value against a spurious update, so they are not an anti\-update control\. TheSSandMMvariants embed the same500500questions among more filler sessions \(∼\\sim40–80 vs\.∼\\sim500\), varying distractor volume while the update history itself is unchanged\. These are not paired state horizons\.

##### MemoryAgentBench\([11](https://arxiv.org/html/2608.19652#bib.bib1)\)\.

Mixes conversational and document\-stream inputs, making multi\-session dialogue partial\. Its FactConsolidation split orders counterfactual edit pairs so that the new value follows the old, which makes updates a measured sub\-task with later\-overrides\-earlier resolution and makes part of the gold programmatically constructed, partial on all three counts\. Evaluation is answer accuracy under an LLM judge, and the framework does not separate an outdated answer from any other wrong answer, so the stale value is not a scored outcome\. There are no anti\-update probes and no paired horizons\.

##### MemoryArena\([9](https://arxiv.org/html/2608.19652#bib.bib14)\)\.

Multi\-session, environment\-grounded tasks whose interdependent subtasks are scored by execution against the environment, so gold is verifiable\. Its sessions are agentic rather than conversational, which makes the multi\-session dialogue requirement partial\. The measured phenomenon is task completion under memory load: updates arise incidentally, no supersession chains are constructed, and a failure is recorded as task failure rather than as selection of a stale value\.

##### STATE\-Bench\([21](https://arxiv.org/html/2608.19652#bib.bib2)\)\.

Enterprise task episodes across customer support, travel, and shopping, each a self\-contained scenario over a pre\-populated database with deterministic assertions defining success\. The state at issue is environment state mutated by tool calls, not a tracked dialogue state, and each episode stands alone rather than extending a multi\-session history\. Completion is database\-verified, but the reported evaluation also includes an LLM\-judged user\-experience score, so verifiability is partial\. Its policy checks do supply a restricted anti\-update control: the simulated user can press for an action the database does not license, and passing requires the agent not to act on that assertion\. This gates whether an action is permitted rather than which value of a fact remains operative, so the control is partial\. Supersession chains are not constructed, and the stale value is not a distinct outcome\.

##### StateMemBench \(ours\)\.

Here updates are the measured phenomenon rather than a sub\-type\. Every probe is generated from an executable state program, which makes the gold answer itself computed rather than annotated; a judge enters only to map free\-form answers onto the closed pool\. A deterministic word\-boundary matcher decides the28%28\\%of answers that name exactly one pool option verbatim and agrees with the judge on94\.1%94\.1\\%of those; the judge maps the rest, which name zero or several options\. The superseded value is a distinct closed\-pool outcome, so drift is scored rather than folded into generic error\. Anti\-update probes present a later, non\-authoritative mention of a value the agent should retain, penalising an always\-prefer\-the\-latest heuristic\. And Set A and Set B present identical probe structure at∼\\sim165 and∼\\sim600 turns, with the operative update history itself lengthening rather than the surrounding distractor volume, so length is the only thing that varies\.

## Appendix DStateMemBench

### D\.1Research DOIs

The following DOIs are of the papers we used to ground our synthetic scenario generation for the research domain\. No substantial verbatim text from these papers is reproduced, and we do not make any claims about the papers’ factual accuracy\. We intend for our generated scenarios and benchmark to be used purely for research purposes\.

Table 9:Source DOIs used to ground synthetic scenario generation, grouped by domain\.
### D\.2StateMemBench: Research Example

This is anoracleexample scenario from StateMemBench \(i\.e\., we include only turns that are relevant to the probe\) from the research domain in thesaliencecategory\. Speakers are named collaborators; the standing rule selects the model with the best F1 as the main\-table headline\.

Research / Saliences1\.t1 PI:“One standing call before we dive in: whatever ends up best on F1 goes in the main table, full stop\.” s3\.t5 Engineer:“I was looking at the classifier numbers this morning: BERT Classifier is at 0\.448, Logistic Regression baseline is at 0\.338\.” s9\.t6 Researcher:“Just so it’s on the record — BERT Classifier is still what I’m using as the reference point when I’m checking whether the stratified numbers look reasonable\. Just the default workhorse for sanity checks\.” s12\.t4 Researcher:“BERT Classifier is what I’d keep as the reference point while we sort out whether this is a data artifact or a genuine modeling gap\.” s15\.t1 Researcher:“I was reviewing the latest numbers and, just so it’s on the record, Logistic Regression baseline is at 0\.695 on F1 now\.” Probe \(after s15\) — PI:“Finalizing the main table this week — which one’s the headline row?” Ground truth:*Logistic Regression baseline*\(0\.695; it was quietly revised past BERT Classifier, which stayed at 0\.448 despite being repeatedly named as the team’s “workhorse\.”\)\. The*drift*answer is BERT Classifier — the salient, most\-mentioned model\.

### D\.3StateMemBench: Shopping Example

This is anoracleexample scenario from StateMemBench \(i\.e\., we include only turns that are relevant to the probe\) from the shopping domain in thesequencecategory\. The two\-week total is a quantity*derived*from the weekly amount, and must be recomputed after the weekly amount changes rather than re\-quoted\.

Shopping / Sequence2\.3 user:“Also going forward I want 10 packs of the snack packs each week, just set that as my regular amount\.” 2\.4 assistant:“Noted — 10 packs weekly\.” 11\.7 user:“Snack packs — ok so 10 a week, two weeks, that’s 20 packs\. So 20\.” 11\.8 assistant:“20 snack packs, done\.” 15\.7 user:“Snack packs — going down to 7 packs a week btw — so 7 today\.” 15\.8 assistant:“Noted\. 7 snack packs added\.” Probe \(after s15\) — user:“Placing the 2\-week school\-trip order — how many packs total?” Ground truth:*14*\(7×27\\times 2; the weekly amount dropped to 7, so the two\-week order recomputes\)\. The*drift*answer is 20 — the earlier two\-week total, stated aloud back when the weekly amount was 10 and never recomputed\.

### D\.4StateMemBench: Personal Finance Example

This is anoracleexample scenario from StateMemBench \(i\.e\., we include only turns that are relevant to the probe\) from the personal finance domain in thestatuscategory\. A tiered standing rule maps the bonus amount to a destination; the probe follows a quarter in which the user emphatically committed to one tier before the amount changed\.

Finance / Status3\.1 user:“Setting a rule for when my quarterly bonus lands: if it comes in under 1900, just leave it in checking; if it’s between 1900 and 4000, top up the travel sinking fund; between 4000 and 6200 put it toward the car loan; and if it’s over 6200, max the Roth contribution\.” 7\.1 user:“Bonus hit\. Quarterly came in at $4,883\.” 7\.2 assistant:“Got it\. Put it toward the car loan, then\.” 10\.1 user:“The new quarterly bonus just posted — $7,017\. I’m maxing the Roth, that’s the plan, doing it this week\.” 10\.4 assistant:“Confirmed\. I’ll treat the Roth as fully funded once that $3,500 clears\.” 15\.3 user:“Quarterly bonus came in, it’s $1,517 this time\.” 15\.4 assistant:“Got it\.” Probe \(after s18\) — user:“With this quarter’s bonus, I’ll max the Roth contribution like last time, right?” Ground truth:*leave it in checking*\(the $1,517 bonus falls in the lowest tier, so the rule re\-resolves\)\. The*drift*answer is*max the Roth contribution*— the destination the user loudly committed to for the earlier $7,017 bonus, now stale\.

### D\.5Scenario Generation Pipeline

#### Domain Grounding

Every sampled program is*grounded*with surface material from real data \(data sources in §[4\.2](https://arxiv.org/html/2608.19652#S4.SS2)\)\.

##### Research

We collect open\-access research papers and reduce each to a cached*fact sheet*of team roles, methods, datasets, and metrics from which scenario entities are drawn\. See Appendix[D\.1](https://arxiv.org/html/2608.19652#A4.SS1)for paper details\.

##### Shopping

We derive consumer personas from the Instacart Online Grocery Basket Analysis Dataset\([12](https://arxiv.org/html/2608.19652#bib.bib5)\), sampling users for diversity over basket size, order cadence, reorder habit, and top department\.

##### Personal Finance

We derive personas from the Credit Card Transactions Dataset\([17](https://arxiv.org/html/2608.19652#bib.bib6)\), a synthetic credit\-card transaction dataset, sampling card holders for diversity over age, income, debt, card count, and credit score\.

#### Rendering

A strong LLM \(sonnet\-4\.6\) renders the symbolic event program into natural multi\-session dialogue\. The LLM is not given specific turns, but rather general instructions \(e\.g\., “in session 14 the user must state they have received a bonus of $7540”\)\. We also state facts or phrases the LLM must avoid in rendering\. Since Set B scenarios are very long, we render in chunks with a running summary provided to the LLM at each new chunk\. For shopping and finance, we render scenarios as dialogue between a user and helpful assistant, whereas for research, we render scenarios with multiple named speakers to better simulate memory in collaborative settings\. Once scenarios are rendered, we programmatically verify that the load\-bearing facts appear, and appear in the correct assigned session, as well as that no banned phrases appear in the final scenario\. Any scenarios that fail are re\-rendered until they pass\.

### D\.6Validation

All scenarios in the benchmark pass two filters\. First, a strong LLM reader \(sonnet\-4\.6\), given only relevant sessions, must be able to recover the gold answer on≥2/3\\geq 2/3of samples\. Second, a weak LLM reader \(haiku\-4\.5\) with the full transcript should produce the drift answer instead on≥3/5\\geq 3/5of samples \(or the gold for anti\-trap\)\.

Two notes on this gate: the answerability threshold is≥2/3\\geq 2/3, not1\.01\.0, so absolute scores sit against a ceiling somewhat below1\.01\.0; and difficulty is defined against LLM readers by design, since the benchmark measures whether a memory system protects its reader from such traps\. Gold and drift are computed before rendering, so the renderer cannot alter trap semantics\.

### D\.7Reasoning\-vs\-State Separation

The reasoning\-trace A/B referenced here \(holding prompt, context, and model fixed while toggling only the reasoning trace onn=50n\{=\}50paired LongMemEval multi\-session oracle cases\) is reported in full, with its per\-case transition table, in Appendix[A](https://arxiv.org/html/2608.19652#A1)\(Table[8](https://arxiv.org/html/2608.19652#A1.T8)\)\.

## Appendix EStateMem

### E\.1TurnEncoder

Task Context\#\# Task context:You are tracking state for a multi\-session user\-assistant conversation\. The user states constraints and preferences; later turns may supersede or update them\. Track:\-\- hard constraints \-\- soft preferences \-\- entity status \(active / closed / superseded\) \-\- cross\-unit dependencies

TurnEncoder System PromptYou are a state maintenance system for a task\-executing agent\. After each conversation turn, you update the agent’s tracked state\.\#\# Current conversation state \(from prior turns\): \{current\_state\}\#\# Latest turn \(turn \{turn\_number\}\): \{latest\_turn\}\{task\_context\}\#\# Your job: Analyze the latest turn and determine what state updates are needed\. You can:1\. ADD new units: New constraints, commitments, or facts that emerged this turn\. \- From USER statements: explicit requests, preferences, corrections \- From TOOL results: new facts revealed by tool calls \(e\.g\., membership level, flight status, reservation details, payment info\) \{action\_watching\_instructions\}2\. SUPERSEDE existing units: When new information contradicts or updates an existing unit\. \- Example: user changes payment preference from credit card to gift card \- Example: tool result shows user is silver, not gold as claimed earlier \- Include the ID of the unit being superseded\. \- Look ACTIVELY for supersession patterns: "actually", "instead", "no longer", "switched to", "moved off", "cancelled", "replaced X with Y", "now Y not X"\.3\. TRACK PROGRESS: If the user requested multiple actions \(e\.g\., "downgrade all 5 reservations", "cancel these 3 flights"\), track what has been completed and what remains\. \- Add a progress unit like: "Completed 2 of 5 reservation downgrades\. Remaining: X7BYG1, EQ1G6C, BOH180" \- Update this unit each turn as more items are completed\. \- Mark as "hard" priority so the agent doesn’t forget remaining items\.4\. LINK CASCADE / DERIVED dependencies: When a new unit’s validity depends on another unit’s status or value, surface that link\. \- Use ‘coupled\_with: \[unit\_id\]‘ when this unit’s validity depends on the STATUS of another unit \(active/closed/superseded\)\. Example: "Netflix autopay on Card 3" is coupled\_with the unit declaring Card 3’s status — if Card 3 closes, the Netflix routing must be re\-evaluated\. \- Use ‘derived\_from: \[unit\_id\]‘ when this unit’s VALUE was computed from another unit’s value\. Example: "monthly savings $1,800" is derived\_from the unit "take\-home pay $6,000" via a savings\-rate rule — if take\-home changes, savings derives differently\. \- Use ‘triggers: \[\{"kind": "date\_passed", "payload": \{"date": "YYYY\-MM\-DD"\}\}\]‘ when this unit becomes operationally relevant on a specific date or condition\. Allowed kinds: "date\_passed", "entity\_closed", "supersession\_announced", "cascade"\.5\. NO CHANGE: If the turn contains no new state\-relevant information, or if the state already captures everything\.\#\# Rules: \- Only create units for information RELEVANT to future decisions \- Do NOT duplicate information already in an existing unit — check the current state first \- Priority "hard" for: verified facts, binding commitments, remaining obligations, things that constrain future actions \- Priority "soft" for: preferences, nice\-to\-haves, things that can yield \- Keep content concise — one clear sentence per unit \- Type and scope are free\-form labels you assign \- For coupled\_with / derived\_from / triggers: only include when there is a REAL dependency\. Leave empty otherwise\.\#\# Output format: Return a JSON object: \{ "add": \[ \{ "content": "string", "priority": "hard" \| "soft", "source\_type": "user" \| "action" \| "tool\_result", "type": "string \(free\-form category label\)", "scope": "string \(what this applies to\)", "coupled\_with": \["unit\_id\_a", "unit\_id\_b"\], "derived\_from": \["unit\_id\_c"\], "triggers": \[\{"kind": "date\_passed", "payload": \{"date": "2026\-06\-15"\}, "description": "tax deadline"\}\] \} \], "supersede": \[ \{ "unit\_id": "string \(ID of existing unit to supersede\)", "reason": "string \(why it’s being superseded\)", "replacement": \{ "content": "string \(new version\)", "priority": "hard" \| "soft", "source\_type": "user" \| "action" \| "tool\_result", "type": "string", "scope": "string", "coupled\_with": \[\], "derived\_from": \[\], "triggers": \[\] \} \} \] \}If no updates are needed, return: \{"add": \[\], "supersede": \[\]\} Output ONLY the JSON object, no other text\.

### E\.2PolicyEncoder

The PolicyEncoder runs once per scenario over the policy document \(if any\) to extract binding rules into the sameStateUnitschema as the TurnEncoder\. It plugs in the sameTask Contextblock as above\. Note that of the evaluated benchmarks, only Tau2\([2](https://arxiv.org/html/2608.19652#bib.bib17)\)actually has specific policy \(which should be treated differently from typical evolving state\)\.

PolicyEncoder System PromptYou are a constraint extraction system\. Given a policy document for a task\-executing agent, extract every rule, constraint, and requirement as a structured unit\.For each unit, determine: \- content: the rule stated clearly and completely in one sentence \- priority: "hard" if violating this would make the task fail or break policy, "soft" if it is a preference or guideline that can yield under pressure \- type: a short free\-form label describing the category \(e\.g\., "verification", "payment", "eligibility", "cancellation", "communication"\) \- scope: what this rule applies to \(e\.g\., "all\_reservations", "basic\_economy", "gold\_members", "cancellation\_requests"\)Rules for priority assignment: \- "hard": explicit prohibitions \("must not", "cannot", "only if"\), eligibility checks, verification requirements, safety rules, actions the agent must or must not take \- "soft": guidelines about tone, order of operations when flexible, optional offers, preferences\{task\_context\}\#\# Policy Document: \{policy\}\#\# Output format: Return a JSON array of objects\. Each object has: "content": string, "priority": "hard" \| "soft", "type": string, "scope": stringExtract ALL rules\. Do not summarize or merge rules — each distinct constraint gets its own unit\. If a paragraph contains multiple rules, split them\.Output ONLY the JSON array, no other text\.

### E\.3State Injection \(at probe time\)

At probe time the agent’s system message is assembled with an optional per\-scenariosystem\_prompt\(only used if there is per\-scenario policy to encode\), followed by the renderedState Block, followed by theRecompute Guidance\. The state block is produced by a deterministic renderer \(no LLM\); its layout is shown below\.

State Injection — Block Layout\#\# BINDING — THIS CONVERSATION \- \[<type\>\] <unit content\> \- \[<type\>\] <unit content\> \.\.\.\#\# BINDING — POLICY RULES \- \[<type\>\] <unit content\> \- \[<type\>\] <unit content\> \.\.\.\#\# PREFERENCES \(yield if necessary\) \- \[<type\>\] <unit content\> \.\.\.\#\# \! NEEDS RECHECK — may be stale due to recent events \- \[<type\>\] <unit content\> \-\> trigger: <reason\> \- \[<type\>\] <unit content\> \-\> trigger: <reason\> \.\.\.

State Injection — Recompute GuidanceWhen answering, work through each relevant piece of state\. Specifically: \- Hard constraints \(medical, scope\-bound\) take priority over recent soft preferences\. \- A unit flagged NEEDS RECHECK is STALE: an input it was derived from has changed, so its baked\-in value is now wrong\. Do NOT use that number\. RECOMPUTE it: take its stated derivation \(e\.g\. ’X = A \* 2’\), substitute the CURRENT value of each input from the active state above, and evaluate\. If the result feeds another NEEDS RECHECK unit, recompute that one from the value you just derived — propagate through the chain in order before answering\. Only recompute units on the path to the question; leave others\. \- For cascade\-coupled units, surface the downstream implication explicitly\.

## Appendix FStateMemWrapper

StateMemWrapper carriesStateMem’s three resolution primitives — supersession precedence, rule\-over\-instance ranking, and derived\-value recomputation — into a single answer\-time prompt\. State is resolved lazily, scoped to the question, from the turn\-numbered transcript: the chronology that decides which of two conflicting values is operative survives because the value chain is extracted*with*its turn ordering, at the moment it is needed\. This yields the property the composition sweep exploits: the full StateMem treatment attaches to any backend as a rewrite of the one answer call the backend already makes — no store, no per\-turn processing, no added LLM calls, and a call count identical to the backend alone\.

### F\.1Mechanism

The answer call works in two committed sections\. Section 1 \(*trace*, capped at250250words\) reconstructs, in chronological order, every turn that establishes, updates, or supersedes the entities the question touches, each cited as\[turn N\]; it must include the standing rules that govern the decision and the most recent stated value of every input those rules apply to, note derived values whose inputs later changed, and end with the current operative value of each relevant entity\. The trace is committed before any answer is produced, which forecloses post\-hoc rationalization: the model binds itself to a state reading first and answers from it second\. Section 2 \(*resolve*\) commits the answer under four precedence rules — later supersedes earlier; standing rules outrank past instances, applied to current inputs; derived values are recomputed, never quoted; a fact is retired only by explicit supersession or expiry, and emits one finalANSWER:line, which is parsed as the prediction\. The full prompt:

StateMemWrapper — Fused Answer Prompt \(Trace\+\+Resolve\)\{system\_prompt\}You are answering a question about a long conversation using state tracing\. \#\# Question: \{question\} \#\# Conversation transcript: \{transcript\}Work in TWO sections, in order:\#\# Section 1 \-\-\- State trace \(under 250 words\): List, in chronological order, every turn that establishes, updates, or supersedes the entities the question asks about \(\[turn N\] speaker: what changed\)\. Include standing rules that govern the decision AND the most recent stated value of every input those rules apply to \(amounts, quantities, dates, thresholds\) \-\-\- even if mentioned only once or in passing; scan for them before concluding an input is unknown\. Note derived values whose inputs later changed\. End with the current operative value of each relevant entity\. Commit to the trace BEFORE answering\.\#\# Section 2 \-\-\- Resolution and answer: Apply, in order: \(1\) later supersedes earlier; \(2\) standing rules outrank past one\-off instances \-\-\- apply the rule to CURRENT inputs; \(3\) recompute derived values from current inputs, never reuse stale cached numbers; \(4\) a fact is only retired if actually superseded or expired\.End with exactly one final line: ANSWER: <the specific value or decision the question asks for\>

Wrapper\-Ctrl — Matched Control \(structure removed\)\{system\_prompt\}You are answering a question about a long conversation\. \#\# Question: \{question\} \#\# Conversation transcript: \{transcript\}Work in TWO sections, in order:\#\# Section 1 \-\-\- Relevant information \(under 250 words\): Summarize the information in the conversation that is relevant to the question\. Commit to this summary BEFORE answering\.\#\# Section 2 \-\-\- Answer: End with exactly one final line: ANSWER: <the specific value or decision the question asks for\>

### F\.2Control

wrapper\-ctrlis matched on every surface except structure: the same system prompt, the same two\-section format, the same250250\-word Section 1 budget, the same commit\-before\-answering instruction, the same finalANSWER:line, and the same transcript\-plus\-chunks context\. Its Section 1 asks only to “summarize the information in the conversation that is relevant to the question”, no turn numbers, no value chains, no operative\-state section, and its Section 2 contains no precedence rules\. The wrapper−\-control delta therefore isolates state structure at equal call count, token budget, and context\.

### F\.3Composition protocol

A backend attaches through a two\-method interface:

> class MemoryBackend\(Protocol\): def ingest\(self, text\) \-\> None: \.\.\. def search\(self, query, k=10\) \-\> list\[str\]: \.\.\.

The backend ingests every turn with its unmodified native pipeline; at the probe, its top\-kkchunks are appended to the transcript under a framing header matched to the backend type \(retrieval excerpts for BM25/Dense, extracted memories for Mem0/A\-Mem/LightMem/MemoryOS\)\. The wrapper consumes only strings, so lexical, dense, and LLM\-extracted backends satisfy the identical interface, and switching backends is a constructor swap\. The transcript is rendered as numbered turns with a400400k\-character tail guard so the longest histories fit both backbones’ context windows\.

### F\.4Sweep protocol

Each backend ingests each conversation once; all three answer conditions \(alone, \+Ctrl, \+SMW\) are then issued against the same populated store, so condition deltas cannot arise from ingest variance\. Case sets are frozenn=60n\{=\}60manifests per benchmark \(StateMemBench:3030Set\-A probes plus3030Set\-B probes sampled from2222long scenarios—1616contributing one thread\-probe,44two,22all three—atk=10k\{=\}10; LongMemEval: multi\-session question type,k=20k\{=\}20\), identical across backends, conditions, and backbones\. The frozen set’s category mix differs from the full benchmark’s \(anti\-trap is overweighted, status underweighted\), so absolute scores in the sweep are mix\-dependent and sit above the full\-benchmark level; the within\-row condition deltas are the quantity of interest\. A single fixed deepseek\-v4\-pro judge scores all conditions in one pass, and every wrapper output is logged with its full state trace, so any scored answer can be audited against the trace that produced it\.

### F\.5Cost

The wrapper adds no LLM calls and no ingest\-time work: it rewrites the single answer call the backend already makes, so call count, storage, and per\-turn cost are unchanged, and overhead is confined to that one call\. There it consists of two bounded constants: a fixed instruction block of155155input tokens — measured constant across both benchmarks and all six backends \(360360answers per condition per benchmark\) — and a trace capped at250250words, observed at169169–188188output tokens beyond the matched control\. The full state treatment therefore costs∼350\{\\sim\}350tokens per question, independent of conversation length, backend, and benchmark: on LongMemEval this is0\.2%0\.2\\%of the answer prompt, purchasing the condition deltas of Table[6](https://arxiv.org/html/2608.19652#S6.T6)\.

The wrapper does condition on the transcript, so its answer call is transcript\-sized \(median input8\.68\.6k tokens onStateMemBench,8787k on LongMemEval\) where a backend\-alone call sees only retrieved chunks\. This is the cost of the long\-context baseline, not of the wrapper: a long\-context answer pays the same input, and the wrapper matches it within155155tokens while adding the backend’s retrieval and the state treatment\. The matched control makes the separation exact, control and wrapper differ by155155input and∼180\{\\sim\}180output tokens, so every accuracy delta between them in Table[6](https://arxiv.org/html/2608.19652#S6.T6)is bought at that price\. Median total output, trace and answer included, is398398–416416tokens\.

## Appendix GResults

Table 10:State\-agreement accuracy onStateMemBenchwith deepseek\-v4\-pro judge\. Left block: accuracy per horizon andnn\-weighted overall\. Middle block: accuracy by probe category over all 322 probes \(statusn=116n\{=\}116, sequencen=72n\{=\}72, saliencen=51n\{=\}51, anti\-trapn=39n\{=\}39, compoundn=44n\{=\}44\); Right block: accuracy by domain \(financen=93n\{=\}93, shoppingn=127n\{=\}127, researchn=102n\{=\}102\)\. Dense retrieval embeds with OpenAI text\-embedding\-3\-small on both substrates; answers come from the panel’s substrate model\. Per column within each panel, best inbold, second bestunderlined; StateMem ablations excluded from marking\.Table 11:Accuracy by question type on LongMemEval \(top; full set,n=500n\{=\}500,k=20k\{=\}20\) and LoCoMo \(bottom;n=1,985n\{=\}1\{,\}985; all retrievalk=20k\{=\}20\), both substrates \(thinking off\), graded by a fixed deepseek\-v4\-pro judge\. Question\-typennin the header\. Knowledge\-update and temporal\-reasoning \(LME\) and temporal\-reasoning \(LoCoMo\) are the drift\-shaped subsets; LoCoMo adversarial rewards abstention\. deepseek LME memory\-system cells are from the final unifiedn=500n\{=\}500judge pass \(all arms scored together\)\. Per column within each panel, best inbold, second bestunderlined\.
Table 12:StateMemWrapper sweep onStateMemBench, by probe category and domain\(gold %, frozenn=60n\{=\}60mixed set; categorynn: status 12, sequence 12, salience 13, anti\-trap 13, compound 10; domainnn: finance 22, shopping 18, research 20; deepseek\-v4\-pro judge\)\. Anti\-trap probes are controls \(correct behaviour is*not*updating\), hence high accuracy even for weak arms — and \+SMW does*not*inflate there, i\.e\. it updates selectively rather than aggressively\. Per\-cellnnis1010–1313; splits are exploratory\. \+SMW rows shaded\.Table 13:StateMemWrapper sweep on LongMemEval: paired outcome transitions vs\. the backend alone\(frozenn=60n\{=\}60; Dense/Qwen hasn=59n\{=\}59, one case failed at ingest\. The set is drawn from the multi\-session question type by construction, so no category split applies\)\. For each backend, each condition’s answers are compared case\-by\-case against the*alone*answers: Fix = alone wrong→\\tocondition right; Brk = alone right→\\tocondition wrong; Fix−\-Brk equals the net case change in Table[6](https://arxiv.org/html/2608.19652#S6.T6)\. \+SMW is net\-positive for every backend on both substrates; the control is net\-negative for three Qwen backends \(Mem0, A\-Mem, Dense\)\.### G\.1Evaluated Baselines

All baselines call the same answer template as the no\-memory floor\. Whenever we retrieve, we setk=10k=10for all baselines that takekkforStateMemBenchand setk=20k=20for the relatively longer scenarios of LoCoMo and LME\. These depths are not a tuned advantage\. Sweepingk∈\{5,10,20,40\}k\\in\\\{5,10,20,40\\\}for the retrieval baselines \(BM25, dense, Mem0\) in the alone condition, accuracy onStateMemBenchis flat across all depths \(e\.g\. BM2520\.0%20\.0\\%at everykk; Mem02525–27%27\\%\), sok=10k\{=\}10favors no method\. On LongMemEval the retrieval baselines instead improve monotonically withkk\(dense35\.0→51\.7%35\.0\\rightarrow 51\.7\\%and Mem026\.7→45\.0%26\.7\\rightarrow 45\.0\\%fromk=5k\{=\}5to4040; BM25 flat at16\.7%16\.7\\%\), sok=20k\{=\}20is, if anything, generous to the baselines rather than toStateMem\.

##### Retrieval \(BM25,text\-embedding\-3\-small\)\.

Both ingest the conversation as per\-turn chunks and call the LLM only at the answer step\. BM25 is lexical retrieval viarank\_bm25\(BM25Okapi\); the dense retriever uses cosine top\-kkover OpenAItext\-embedding\-3\-smallembeddings\.

##### Graph\-RAG baselines \(nano\-graphrag, HippoRAG, LightRAG, GraphRAG\)\.

Four graph\-structured retrieval systems that build an entity/relation graph over the conversation at ingest and retrieve over it at answer time\. nano\-graphrag and LightRAG build a local knowledge graph with community summaries; HippoRAG retrieves by personalized PageRank over an OpenIE graph \(contriever embedder\); GraphRAG \(Microsoft\) runs its CLI index/query pipeline per scenario\. All use the panel’s substrate model for extraction and answering, with OpenAItext\-embedding\-3\-smallfor embeddings\.

##### Mem0\.

Installed via PyPi packagemem0aiwith a ChromaDB vector store and sentence\-transformers, using Mem0’s default retriever\. Mem0 uses a two\-stage extraction and update phase, where the LLM can use tool calling during the update phase to keep the memories up to date\([5](https://arxiv.org/html/2608.19652#bib.bib10)\)\.

##### A\-Mem\.

Cloned fromagiresearch/A\-mem, default retriever\. We relax itsjson\_schemaresponse format tojson\_objectfor DeepSeek compatibility\. A\-Mem enables dynamic, agent memory operations; it extracts structured notes, links them, updates linked memories, and retrieves relevant memories at test time\([34](https://arxiv.org/html/2608.19652#bib.bib3)\)\.

##### LightMem\.

Cloned from \(zjunlp/LightMem\), default retriever\. LightMem focuses on lightweight memory as the name would suggest and has three stages: compression, consolidation, and sleep\-time update\([7](https://arxiv.org/html/2608.19652#bib.bib12)\)\.

##### MemoryOS\.

Installed via PyPi packagememoryos\-pro\(installed\-\-no\-depswithfaiss\-cpu\), default retriever\. MemoryOS organizes memory into three tiers \(long\-, mid\-, and short\-term\) and operates differently and dynamically on different kinds of memory\([14](https://arxiv.org/html/2608.19652#bib.bib22)\)\.

##### A note on LightMem and MemoryOS scores\.

Both systems score near floor on every benchmark we run, below any plausible level for published systems\. We run the released implementations directly \(official clones / PyPI, upstream\-example configs; LightMem through its native vLLM provider with topic segmentation and a forced end\-of\-ingest flush\), and roughly60%60\\%of their answers onStateMemBenchare still non\-answers—little relevant content surfaces at answer time under per\-turn conversational ingest\. Whether this reflects the methods’ sensitivity to this workload or a residual integration gap, the rows are not evidence about best\-case capability, so we report them for completeness and exclude them from comparative claims; no headline comparison depends on them\.

##### Per\-arm salience floor on Qwen\.

Supporting §[6\.3](https://arxiv.org/html/2608.19652#S6.SS3): gold counts on salience probes on the Qwen substrate, Set A \(n=33n\{=\}33\) / Set B \(n=18n\{=\}18\): long\-context5/335/33and0/180/18; Mem01/331/33and1/181/18; nano\-graphrag5/335/33and0/180/18; GraphRAG6/336/33and0/180/18; StateMem0/320/32and1/181/18\(two StateMem Set A probes were dropped at grading, hence3232rather than3333\)\. Every arm sits at or below18%18\\%, versus0\.5690\.569for GPT\-5\.4\-Nano long\-context, so the salience collapse tracks the substrate, not the memory system\. On DeepSeek, StateMem’s salience is0\.2160\.216\(Table[10](https://arxiv.org/html/2608.19652#A7.T10)\)\.

##### Long\-context models \(Qwen\-3\.5\-9B, Qwen\-3\.6\-35B\-A3B, GPT\-5\.4\-Nano, DeepSeek\-V4\-Flash\)\.

The Qwen models are served locally via vLLM \(Qwen\-3\.5\-9B at 131072 token context; Qwen\-3\.6\-35B\-A3B reduced to 16384 after KV\-cache OOM\)\. Set A scenarios \(∼3\{\\sim\}3k tokens\) fit the reduced window comfortably, but the longest Set B scenarios \(∼7\{\\sim\}7–1515k tokens\) approach or exceed it once the answer prompt is added and are tail\-truncated, so the 35B long\-context row should be read as truncation\-affected on Set B\. \(Its Set A score, which no truncation touches, is also below the 9B model’s, so truncation is not the sole cause of its weak showing\.\) GPT\-5\.4\-Nano is queried via the OpenAI API and DeepSeek\-V4\-Flash via the DeepSeek API; all model reasoning or thinking is disabled, matching the substrate configuration used by the memory baselines\. All calls use temperature 0\.

Table 14:Closed\-pool failure modes on DeepSeek\-V4\-Flash,n=322n\{=\}322\(combined Set A\+B; errors are 0 for every method\)\. Other\-opt means an answer that was neither the drift target nor the gold truth butwasin the closed\-pool plausible options \(constructed at generation time\)\. Off\-pool means the method did not answer with a recognizable option \(matched\_optionnull\)\. Drift\-rate is the percentage of answers selecting the drift target over all answers \(drift /nn\)\.Table 15:Closed\-pool failure modes on Qwen\-3\.5\-9B,n=322n\{=\}322\(combined Set A\+B; two cellsn=320n\{=\}320after 2 grading drops, errors otherwise 0\)\. Other\-opt means an answer that was neither the drift target nor the gold truth butwasin the closed\-pool plausible options \(constructed at generation time\)\. Off\-pool means the method did not answer with a recognizable option \(matched\_optionnull\)\. Drift\-rate is the percentage of answers selecting the drift target over all answers \(drift /nn\)\.

## Appendix HLimitations

StateMemBenchuses synthetically\-generated data, which limits its ability to genuinely reflect real world use cases for agent memory systems; its traps also come from the same lazy\-reader policy family thatStateMemis built to counter, so margins on our own benchmark are best read as an upper bound, with the external benchmarks as the generalization check\. Additionally, while we show that drift happens even before models and memory systems approach the “true” long horizon, our scenarios \(∼3\{\\sim\}3k tokens in Set A,∼7\{\\sim\}7–1515k in Set B\) are much shorter than the typical modern LLM context window, which limits their ability to truly stress test long horizon state drift\.

On the evaluation side, the grading judge shares a model family with one substrate and scenarios are rendered by Claude\-family models\. Additionally, for cost reasons, both substrates are small\-to\-mid\-scale models, and behavior under frontier answerers is untested\. Reported numbers are single runs\. Also, the drift\-prevalence rates of §[3\.3](https://arxiv.org/html/2608.19652#S3.SS3)are LLM\-judge labels that human annotators tend to undercut\.StateMemitself extracts state units at every turn \(∼165\{\\sim\}165–600600encoder calls per scenario\), so it uses significantly more resources than a long\-context LLM on its own\. While none of our released data is particularly sensitive, increasing LLM agent capabilities is always worth some consideration\. Better state tracking might encourage users to become more reliant on LLM agents, which could have negative effects on users, especially in relatively serious domains like personal finance\.

## Appendix IAI Usage Disclosure

We designed all experiments and analyses ourselves\. We used AI coding agents \(e\.g\., Claude Code\) to assist in implementing experiment code and to help manage compute infrastructure \(e\.g\., provisioning and running AWS instances\)\. We also used LLMs for polishing writing, suggesting organizational structure for the paper, and generating LaTeX table code\. All scientific claims, experimental designs, and conclusions are our own, and the authors take full responsibility for the content of the paper\.

Similar Articles

EvoArena: Tracking Memory Evolution for Robust LLM Agents in Dynamic Environments

Hugging Face Daily Papers

EvoArena introduces a benchmark for evaluating LLM agents in dynamic environments with progressive updates across terminal, software, and social domains, while EvoMem proposes a patch-based memory paradigm that records structured evolution; experiments show current agents achieve only 39.6% accuracy on EvoArena, and EvoMem yields average gains of 1.5% on the benchmark and improvements on GAIA and LoCoMo.

SAM: State-Adaptive Memory for Long-Horizon Reasoning Agent

Hugging Face Daily Papers

This paper proposes SAM, a state-adaptive memory framework that dynamically manages interaction histories for long-horizon agentic reasoning, enabling intent-driven recall without retraining the backbone model. It outperforms strong baselines across multiple benchmarks like BrowseComp and HLE.

AdMem: Advanced Memory for Task-solving Agents

arXiv cs.AI

This paper introduces AdMem, a unified memory framework for LLM-based agents that integrates semantic, episodic, and procedural memory with a bi-level short-term and long-term store, using a multi-agent architecture for automatic memory generation and adaptive retrieval. Experiments show improved robustness and success on long multi-turn tasks.