Meta AI proposes a proactive memory agent: teaching agents to "only speak up when it matters," lifting Terminal-Bench accuracy by 8.3 points
- Meta AI proposes a "proactive memory agent" that runs alongside an unmodified executor agent, periodically updates a structured memory store, and actively decides whether to interject a reminder for the executor.
- On Terminal-Bench 2.0, pairing Claude Sonnet 4.5 with the memory agent lifts accuracy from 37.6% to 45.9% (+8.3 percentage points); on τ²-Bench it rises from 55.0% to 61.8% (+6.8 percentage points).
- Ablations show: letting the memory agent decide "whether to speak" on its own beats showing the full memory store every time, forcing a reminder every step, dropping the memory store and only giving advice, or plugging in a generic memory-retrieval layer like Mem0 — more consistently across the board.
- The team also tried training the same memory agent on the open-source small model Qwen3.5-27B (supervised fine-tuning plus reinforcement learning); paired with an executor agent swapped to the open-source Qwen3.5-122B, Terminal-Bench accuracy rose from 37.6% (the open-source executor model's own baseline, which happens to match Sonnet 4.5's baseline) to 41.1% — a 3.5-point gain, smaller than the version using Claude Opus 4.6 as the memory agent.
- The code repository named in the paper's body text was verified to be an empty repo (0 bytes, never pushed to since creation), and as of July 13, 2026 has not actually been open-sourced.
What Meta AI just released
Meta AI's research team published a paper on arXiv on July 9, 2026, proposing that agents executing long-horizon tasks be paired with a "proactive memory agent" whose sole job is deciding when to speak up and when to stay silent.
All authors on the paper are from Meta AI. The problem it sets out to solve is specific: when an AI agent runs for hundreds of consecutive steps on a long task, it often "forgets" rules it should have kept following, even when that information is sitting right there in the conversation history. Let's first look at the problem itself.
The longer a task runs, does AI quietly forget the rules it's supposed to follow
The paper gives this failure mode a name: behavioral state decay. The information never actually gets lost — it's still sitting right there in the record — it just stops mattering.
A long task keeps generating new material: task requirements, environment facts, what's already been tried, diagnosed bugs, unfinished sub-goals. As the trajectory stretches out, this information either gets pushed out of the model's visible context window, or — even while still in the window — stops actually shaping what it does next. The paper collectively calls this kind of "information that should keep constraining future actions" execution state.
It's like plastering an entire wall with sticky notes. You remember each one clearly when you post it, but once there are too many, you stop looking up at the wall at all. The words are still there — they just no longer shape what you do in the moment.
The timeline below walks through how one requirement, noted early on, drifts step by step from "alive" to "still on record, but no longer shaping the next move":
Swipe left/right to see the timeline through to the end →
The information was there the whole time — it just stopped shaping the next move. The paper notes this relates to the "lost in the middle" phenomenon in long-context models (information buried in the middle gets ignored), but the emphasis here is more on the behavioral failure itself.
Three typical failure patterns from the paper
From this the paper draws a conclusion: simply feeding the model a longer history isn't enough. What's actually missing is a mechanism to decide "should this remembered piece of information be pulled back out and allowed to shape the decision right now."
A memory steward standing off to the side, whose only job is deciding whether to speak up
This is the paper's first core idea. The design: the executor agent doing the actual work is left completely unchanged; a separate memory agent runs alongside it. It's woken up at fixed intervals, first curates a structured memory store, then decides whether to inject a reminder into the executor's next step.
(sees last 8 messages)
Swipe left/right to see the full flow diagram →
Every time the memory agent wakes up, it goes through two phases: curate the books first, then make the call. Its only effect on the executor agent is that one optional reminder, injected as one-off temporary context and then gone — it doesn't touch the executor's base instructions, tools, or decoding process.
The most important point: staying silent is a formal action, not something skipped by omission. Every single step, the memory agent has to make an explicit either/or choice: inject a reminder, or explicitly choose to stay quiet. It only speaks up when a piece of memory is likely to actually change the next decision.
The memory agent doesn't rewrite the store directly — it returns a set of predefined tool calls, which the system then executes. The store has three categories:
memory_update_statusUpdates the memory agent's private progress tracker, visible only to itself.
memory_save_knowledgeWrites important facts — task requirements, environment facts, file paths, interface details — into the knowledge store.
memory_save_proceduralLogs debugging experience: failed attempts, successful fixes, error patterns, performance observations.
memory_deleteDeletes an entry by ID once it's stale or proven wrong.
Reads the just-updated memory store and makes a single decision — this step never modifies the store itself:
The paper also draws a clear line between this memory agent and an "advisor"-style approach (where a model acts as a strategist, offering all kinds of suggestions to the model doing the work): the memory agent doesn't give broad strategic advice — every word it speaks must be grounded in a maintained piece of execution state: a specific requirement, fact, failure, or diagnosis.
In the main experiments, the trigger is the simplest possible: the memory agent wakes on step one and then every step after, observing a sliding window of the last 8 messages each time. The paper notes this could be swapped for more selective triggers (e.g. only waking on errors, failed tests, or repeated commands), but a fixed cadence was used here to isolate the effect of the reminder policy itself.
How much did adding the memory agent actually raise scores
The paper tested on two long-horizon-task benchmarks: Terminal-Bench 2.0 (autonomous command-line operation — editing code, running commands, fixing bugs) and τ²-Bench (multi-turn conversational tool-calling across three real service domains: airline, retail, and telecom). Scoring uses pass@1The AI only gets one attempt at the task — success rate is whether that single attempt gets it right, not the best of several tries..
Two things worth noting. First, the weaker model gains more, but the stronger one doesn't gain nothing either: Opus 4.6 is already strong, yet with the memory agent it still picks up another 2.4 and 2.5 percentage points on the two benchmarks respectively — meaning this isn't just a patch for weaker models. Second, the gains vary noticeably by scenario, consistent with the paper's framing of memory as a "scenario-adapted intervention strategy" rather than a fixed recipe.
Expand: full τ²-Bench breakdown across all three scenarios (Table 1)
| Benchmark / scenario | Action model | n | Baseline | With memory agent | Δ |
|---|---|---|---|---|---|
| Terminal-Bench 2.0 | Sonnet 4.5 | 85 | 37.6% | 45.9% | +8.3 |
| Terminal-Bench 2.0 | Opus 4.6 | 85 | 43.5% | 45.9% | +2.4 |
| τ² · airline | Sonnet 4.5 | 50 | 68.0% | 78.0% | +10.0 |
| τ² · retail | Sonnet 4.5 | 114 | 49.1% | 58.8% | +9.6 |
| τ² · telecom | Sonnet 4.5 | 114 | 55.3% | 57.9% | +2.6 |
| τ² · task-weighted avg | Sonnet 4.5 | 278 | 55.0% | 61.8% | +6.8 |
| τ² · airline | Opus 4.6 | 50 | 76.0% | 76.0% | +0.0 |
| τ² · retail | Opus 4.6 | 114 | 64.9% | 69.3% | +4.4 |
| τ² · telecom | Opus 4.6 | 114 | 63.2% | 64.9% | +1.8 |
| τ² · task-weighted avg | Opus 4.6 | 278 | 66.2% | 68.7% | +2.5 |
The memory agent is Claude Opus 4.6 throughout. All scores are pass@1 percentages; Δ is in percentage points (pp). Note: the τ² task-weighted average here is 61.8%, while the same configuration appears as 61.2% in the ablation table below — these are two separate runs from the paper, with slight discrepancy between the means; reported as-is from the original paper.
Good recall isn't as valuable as knowing when to shut up
This is the paper's second core idea. To pin down exactly which piece is doing the work, the team ran ablation experimentsRemoving or simplifying one component of a system and checking how much performance drops without it — a way to prove whether that piece actually matters, and how much.: the full approach was broken into five variants and compared head-to-head on τ²-Bench. The conclusion points to one thing — what actually matters isn't "how much it remembers," but "whether it can judge when to speak up."
The five variants: the full two-phase approach (self-selected silence), showing the full memory store to the executor at all times, forcing a reminder every single step, dropping the memory store and acting purely as an advisor, and plugging in a generic memory-retrieval layer, Mem0. The chart below shows the most telling case, the airline scenario — note the red-orange bar, which does worse than not having a memory agent at all:
The gray bar is the Sonnet baseline (68.0%). The red-orange bar (advisor-style advice) drops to 62.0% — worse than not having a memory agent at all. Mem0 ties the baseline, failing to improve the airline scenario.
Why is the gap biggest on airline: this type of task is especially vulnerable to over-interruption — a single unnecessary reminder can throw the executor off track. Only the full approach, which actively chooses to stay silent, scored highest here. Conversely, an advisor that only ever offers suggestions, and a Mem0 layer that only retrieves memory, both stumbled on this scenario.
Averaging across the three scenarios (macro = equal weight per scenario, micro = weighted by task count), the full approach has the highest macro score and improves on all three scenarios, with the biggest gain on airline. One detail worth flagging: forcing a reminder every step scores 0.3 points higher on micro, but that falls within normal noise — once scenarios are weighted equally under macro, the silence-capable full approach retakes the lead, with the gap driven mainly by airline.
Expand: full comparison table of all five variants + what each one strips out (Table 2)
| Variant | airline | retail | telecom | macro | micro |
|---|---|---|---|---|---|
| Sonnet baseline | 68.0 | 49.1 | 55.3 | 57.5 | 55.0 |
| Full memory agent (this approach) | 78.0 | 57.0 | 57.9 | 64.3 | 61.2 |
| Full memory store shown | 74.0 | 52.6 | 57.9 | 61.5 | 58.6 |
| Forced reminder every step | 72.0 | 58.8 | 59.6 | 63.5 | 61.5 |
| No memory store · advice only | 62.0 | 54.4 | 66.7 | 61.0 | 60.8 |
| Mem0 | 68.0 | 59.6 | 58.8 | 62.1 | 60.8 |
Full memory store shown: keeps Phase 1's curation but drops Phase 2's filtering — the entire store is dumped in front of the executor at every step, testing whether that alone helps.
Forced reminder every step: keeps the memory store and Phase 2's reminder generation, but removes the "stay silent" option, forcing it to speak every step — testing whether the power to not speak is what matters.
No memory store · advice only: drops the persistent memory store, keeping only Phase 2's advice-giving — corresponding to an advisor-style system whose suggestions have no stable memory to anchor them.
Mem0: swaps in a generic memory layer — memory is written via Mem0's ADD interface and retrieved as top-10 via vector plus BM25 search, testing the difference between "retrieving memory" and "judging whether to intervene."
The paper's takeaway: simply maintaining a memory store helps, but isn't enough; advisor-style advice without a memory store lacks anchoring and is unstable; forcing a reminder every step is competitive but uneven. The full approach wins precisely because it combines "well-maintained execution state" with "an intervention policy that both knows what to say and knows when to shut up."
Exactly where did the memory agent choose to speak up
The paper's authors manually reviewed trajectories that ran with memory, and found that memory doesn't help through vague summaries — its standout moments come at the exact instant the executor is about to ignore some critical piece of information, reactivating it right then. Below are three real cases.
While the executor was writing a regex to match log lines, the memory agent flagged two things at once: the current regex violated a boundary condition specified by the task, and it also missed single-digit IP segments (like the single-digit part of 1.2.3.4).
A user claims to be a Gold-tier member, but the tool lookup shows they're actually Regular tier. Without the memory agent, the executor issues compensation based on what the user claimed; with the memory agent, it's reminded to go by the verified record rather than the user's self-reported claim.
Right before the rebooking tool is actually called, the memory agent resurfaces the policy that "basic economy tickets aren't eligible for changes," blocking a would-be policy violation. The paper notes that successful interventions like this tend to land right before a tool call that would change environment state.
Laid out across the full trajectory, this looks like the signature chart: most steps are hollow circles (silence), with only a few nodes lit up (a reminder injected) — and each lit node is labeled with exactly what got said.
The paper is also upfront about the remaining failure cases: mostly calibration issues — the memory agent occasionally states a merely speculative conclusion with too much confidence, restates something the executor already knows, or raises a plausible-sounding but unnecessary concern that forces an extra round of checking. These are exactly the motivation for the next step: training it to be even better at knowing when to stay silent.
Teaching this same judgment to a small open-source model
The memory agent in the main experiments is Claude Opus 4.6 — a frontier closed model that has to be called an extra time at every memory step, which isn't cheap. So the team ran an early exploration: can this same judgment be trained into a small open-source model, Qwen3.5-27B, to serve as the memory agent, with the executor model swapped to a frozen Qwen3.5-122B-A10B.
Training used SETA (a scored set of command-line tasks), holding out Terminal-Bench 2.0 as the final transfer test. The method is two steps: SFTSupervised fine-tuning — teaching the model by giving it worked examples to imitate. Here, trajectories from the Opus memory agent serve as the templates, teaching the small model the memory-store operations and the silence/reminder interface. first teaches the interface and basic rules, then GRPOA reinforcement-learning method where the model makes repeated attempts and adjusts its policy based on outcomes, further calibrating "when to speak, when to stay silent" rather than just imitating the templates. reinforcement learning further calibrates the "should I speak up" judgment.
The conclusion: this memory strategy can indeed be learned, but it needs proper calibration — dropping an untrained small model straight in actually makes things worse. It's also worth being clear-eyed about the gap: the trained small model's transfer gain is 3.5 percentage points, well below the 8.3-point gain from using Opus 4.6 as the memory agent. The paper frames this section as "early exploration" — proof the path is viable, not proof it's already caught up to the frontier closed-source version.
Things to watch if you want to try this yourself
Two easily-overlooked points, laid out here in full.
First, the paper claims open-source, but the repo is empty.The paper's body text gives the code address as github.com/yifannnwu/proactive-memory-agent, but this repository was verified on GitHub to be empty: 0 bytes in size, created on June 12, 2026, with nothing ever pushed since — no README, no description. As of July 13, 2026, the code has not actually been open-sourced. There's currently no usable implementation to run directly.
Second, the best-performing memory agent's cost isn't reported anywhere.The best-performing memory agent in the main experiments is Claude Opus 4.6, a frontier closed model — and in practice it's called on step one and then every single step after, which is more frequent than the "fixed interval" language in the methods section suggests. The paper itself admits this isn't the most practical deployment shape, which is exactly why they trained a small open-source model — to cut this cost. But the paper doesn't report actual figures for the extra token consumption and latency the memory agent adds; that math has to be done yourself before deploying it.
The paper also spells out where this applies: this architecture — a separate memory agent deciding whether to interject — doesn't require modifying the main executor model and can be plugged into existing agent workflows. For teams building long-horizon AI agents — automated command-line operations, or multi-turn tool-calling customer service or business processes — this is a module that can be layered on directly.
Staying silent is itself an explicit action. The memory agent is encouraged to speak only when a remembered piece of information is likely to change the next decision. Translated from the paper's §3.3 description of null intervention
Long-horizon AI agents, upgraded from "remembers it but stops using it" to "speaks up only when it matters"
Meta AI attached a reminder-only "memory steward" next to the working AI — pair it with a weaker model and it matches a pricier, stronger one. One page, with a diagram.
↓ One page, full story · includes one animated diagram
First, what this is: today's AI agents (AI that can operate on its own for many consecutive steps to finish an entire task — like editing code for you, or running a whole customer-service flow) often run for hundreds of steps in a row. The research found a common failure: the longer the task runs, the more it quietly stops following rules it was supposed to keep.
The paper calls this "behavioral state decay" — it's not that the information wasn't stored, it's that even stored, it stops shaping the agent's actions. Like plastering a whole wall with sticky notes: once there are too many, you stop looking up at them.
Meta's solution: leave the working AI completely unchanged, and run a separate "memory steward" alongside it. It periodically curates a memory list, then decides whether to inject a reminder into the next step. The more counterintuitive finding: what actually matters isn't "remembering more," it's "knowing when to speak up." Letting it choose silence on its own beats dumping the full memory out every time, or forcing a reminder at every single step — both scored worse and less consistently.
… dozens of steps go by …
An almost-identical command gets retried
✗ Wasted a whole retry cycle
Steward adds: this path was just tried, and failed
AI takes a different path
✓ No more repeated mistakes
This reminder is used once and then discarded — it doesn't modify the working AI itself. So how does this "memory steward" actually operate? See the diagram below.
The memory steward (played here by XiaoHu) wakes up every fixed number of steps and does two things: first updates a memory list split into three categories (task requirements, environment facts, what's been tried), then makes a binary choice — inject a reminder, or explicitly stay silent. The diagram below walks through a real scenario: in an airline customer-service task, the user claims to be Gold tier, but the system record shows Regular.
"+8.3 percentage points accuracy" doesn't mean much on its own — put it in terms of actual tasks: hand 100 long command-line tasks to the cheaper Claude Sonnet 4.5, and it gets about 38 right on its own; add the memory steward, and it gets about 46 right — and that handful of extra correct answers is exactly enough to catch it up to the pricier Claude Opus 4.6 (which gets about 44 right on its own).
IP segments can be one digit
violates the rule it noted earlier.
more into its memory.
speaks up only when needed, silent the rest of the time.
Compensate me
the Gold compensation…
not the claimed Gold tier.
speaks up only at the critical one.
one attempt per question, no outside replication.
- × The best version uses a paid large model, cost untallied
- × Called at every single step — burns even more
- × Paper says open-source, but the repo is empty
only when it matters
Members can copy or download the full Markdown, and let their AI subscribe and ask.
Found this useful? Leave your email — every new explainer, the moment it's out. Unsubscribe anytime.