Blog
What I changed in agent memory
I now keep an agent's working context separate from durable records and searchable history. I changed it after watching old material get pulled into sessions where it was technically related but no use for the task the agent was actually doing.

I now keep an agent's working context separate from durable records and searchable history. I changed it after watching old material get pulled into sessions where it was technically related but no use for the task the agent was actually doing. Being similar to the query isn't a good enough reason to put something in the prompt. An old conversation can mention the same project and describe an approach that got abandoned, and a long detailed result from last year can outrank a short decision made this week. When everything competes for the same space, retrieval can leave the agent less sure of what it's meant to be doing.
Working context is the small set of things needed to carry on with the current task: the objective, where things stand, constraints, relevant files and the next check. I use a handoff as the entry point. The agent gets the current task record and follows links when it needs more, instead of starting by searching every conversation that mentions the project. When the task finishes, a bit of it becomes an artefact or a lasting decision and the rest just stays in the session record. My rough test is whether a note would help someone take the next action today. If it only explains how the work unfolded, it goes in history.
Durable memory is for things the agent should rely on across tasks, like an approved preference, a current system fact or a decision that still applies. Each record needs to say what it's about, where it came from, when it became valid and how to correct it. Scope matters here. "Use Australian English for this publication" shouldn't quietly turn into a rule for every person and project. I also keep track of who said it, because a user's claim, a tool's observation and an agent's inference shouldn't all come back looking like plain facts. When a record is superseded, it points to the newer one and stays around for understanding past work.
History (transcripts, old handoffs, logs, finished task notes) stays searchable but doesn't go into the prompt automatically. I'd rather search return references and short excerpts with the date, project, record type, source and status, so an abandoned plan doesn't look like an approved decision, and the agent opens the source it actually needs. Access controls and deletion rules have to follow the original record into the index too. I like making the choice explicit in the tools, with separate calls such as get_current_task, get_durable_records and search_history, so you can see the intent in the activity log. And getting no memory back is a perfectly fine result if the task and the files are enough.
Promoting something to durable memory should have a higher bar than capturing history. Is it still true at the end of the task, what supports it, and who can correct or retire it? For sensitive records, a person should confirm the wording and scope. So what I changed in agent memory comes down to keeping the current handoff, the durable records and the searchable history apart, so that old material which only looks related stops crowding out the task the agent is actually doing. If you want to try it, take a task that's built up over several sessions, write one current handoff, pick out the few durable decisions that still apply and put everything else behind search, then run it from a fresh session and check that every memory item loaded before the first action is there for this task.
On X
Got a take on this?
Share it on X. I read the replies.