Docs / Field guide / How to stop agent handovers becoming recency-biased

How to stop agent handovers becoming recency-biased

When an agent's session ends or its context is compacted, something has to tell the next session what is going on. Most handovers are a summary of the conversation, and a summary of a conversation is biased towards its end: the last hour of work is vivid, a decision made on day one is a single line, and a constraint nobody mentioned since is gone.

After a few handovers in a row, the effect compounds. Each summary is a summary of a summary, weighted towards whatever happened last. It is like a game of telephone in which every player only remembers the final sentence.

The symptoms#

  • An agent reopens a question that was settled days ago.
  • A rule that applied to one folder stops being followed after a compaction.
  • Work in progress is described in detail; work that is blocked, or waiting on someone, quietly disappears.
  • The handover gets longer over time, because nothing ever falls out of it on purpose.

The cure: build the handover from records, not from the transcript#

The fix is structural. Instead of asking a model to summarise what it remembers, rebuild the handover each time from records that are written when things happen:

Instead ofKeep
"we discussed using SQLite"a decision record: what was decided, for which paths, when
"I think the tests were flaky"an observation record with a date to check it again
"still working on the login form"the open item, its stated goal, and the last step it reached
"remember to ask about pricing"an open question with a recommendation, a default and a deadline

Then generate the handover from those records, in a fixed order, within a fixed token budget. Because the source is the records rather than the last few hours of chat, a decision from day one and a decision from five minutes ago carry the same weight. And because it is generated, a fresh session and a session that was just compacted receive exactly the same text.

Three rules that keep it small#

  • Records are written by commands, not by hand. A record nobody had to remember to write is a record that exists.
  • Observations expire. Each one carries a re-check date, so stale facts get re-examined instead of repeated.
  • The budget is a ceiling, not a target. If the handover outgrows its budget, that is a signal to close or supersede records, not to raise the cap.

Where ADE fits#

Atlas ADE's handover is generated this way: ade handover --role builder prints open cards and their state, questions waiting on a person, decisions, dated observations and recent landings, within a fixed token budget. Claude Code receives it automatically at the start of every session and again after compaction. See How it flies.