Memory Is a Job, Not a Dump
The five verbs your agents shouldn't be doing — curate, reconcile, consolidate, brief, provision — and how Memanto performs each one as a companion memory agent running alongside your fleet.
The most common memory system in production AI today is a markdown file the agent appends to.
We're not going to be smug about that. The pattern won for honest reasons — readable, versionable, zero infrastructure — and for one agent with a small working set, it's genuinely fine. But the pattern has a name, and the name is a diagnosis: it's a dump. A dump in the landfill sense — a place where things go so they can stop being thought about — and a dump in the engineering sense: the hardest open question in agentic systems, what should this system know going forward?, answered with >> memory.md.
The file has one behavior: it grows. Nothing merges the duplicates. Nothing expires the fact that changed in March. Nothing notices that your support agent’s notes and your ops agent’s notes have quietly disagreed for eleven weeks — until a customer notices for you.
And the deeper error isn't even the file. It's the org chart. The same agent doing the work is also managing its own memory: deciding mid-task what's worth keeping, paying for every one of those decisions in tokens and attention taken from its actual job, grading its own homework with the bias of the moment. Multiply by a fleet and you have N diaries, zero reconciliation, and no component anywhere whose job is what the fleet knows.
That's the argument we make everywhere. Here on our own blog, we can do what the other editions of this piece can't: show you, function by function, what it looks like when the job is actually staffed.
Because that is the entire design brief of Memanto. It is not a smarter file, and it is not a plugin you wire into each agent’s loop. It is a companion memory agent — a specialist that runs alongside your working agents, whatever framework they use, and takes over the whole job of managing their memories. The job has five verbs. Let’s walk them.
1. Curate — keep vs. noise is a decision, not a reflex
In the dump pattern, curation is one prompt line ("save anything important") executed by a busy agent mid-task. In Memanto, curation is a dedicated loop with explicit criteria, running on its own budget: your working agents hand over raw interaction material and get back to work; Memanto decides — against your fleet’s curation policy, not against the mood of the moment — what enters the estate and what is noise.
Nothing enters as an undifferentiated blob. Every memory that survives curation lands as one of 13 semantic types — fact, decision, error, instruction, preference, event, and the rest — with a confidence score and provenance attached. That typing is not bookkeeping; it's what makes retrieval surgical later, because you can ask for the category that answers an intent instead of everything that vaguely matches.
bash# What curation produces: typed, scored, sourced — never a raw transcript
memanto remember "Acme requires idempotency keys on every payment write" --type fact --confidence 0.95
memanto remember "When the reconciler times out, re-pull the ledger before diffing — the root pull goes stale, not the diff logic" --type error --confidence 0.9 --provenance explicit_statementTwo properties matter here. First, the decision costs your working agents zero tokens: the curation loop is Memanto’s job, on Memanto’s clock. Second, the loop runs on your model — Memanto’s management operations call your endpoint or API key, and if even that boundary is too loose, the entire stack runs on your own hardware with memanto config backend on-prem, embeddings and inference included.
2. Reconcile — contradictions get an owner
This is the verb no file, no vector store, and no framework memory feature performs — and it's the one that produces the worst production incidents, because a contradiction doesn't fail loudly. It waits.
Memanto treats the fleet’s knowledge as one memory estate, not per-agent diaries — so when new material conflicts with what the estate already holds, that’s a detectable event, not a coincidence nobody owns. Every memory carries provenance and scope, which means a conflict comes with the context needed to resolve it. Simplified, a memory in the estate looks like this:
yamlclaim: "Acme production workload runs in europe-west2"
scope: shared/acme-account
source: ops-agent, migration ticket #4112
recorded: 2026-04-14
supersedes: mem_8812 # "Acme runs in us-east1"
status: activeNote the supersedes field. That's reconciliation as a first-class operation: the March fact isn't deleted into ambiguity or left to compete at retrieval time — it's superseded, with a record of what replaced it, when, and on whose authority.
And it is a scheduled job, not a hope. Memanto distills each day and flags clashes between new and historical memories; conflicts it can resolve by policy it resolves, and the ones needing a human get surfaced for an explicit decision — keep old, keep new, merge, or replace — so provenance is never silently destroyed:
bashmemanto daily-summary # distill the day, generate a contradiction report
memanto conflicts # resolve each clash explicitly, one at a time
memanto schedule enable # automate detection so contradictions surface instead of piling upAsk the question we keep asking in this series — what does your fleet believe today? — and for the first time, there’s a component whose job is that the answer exists.
3. Consolidate — an estate that stays the size of the truth
Four near-duplicate notes about the same deployment quirk aren't four memories; they're one memory and three taxes — on storage, on retrieval quality, and on every context window they get dumped into. Memanto's consolidation continuously merges redundancy, applies lifecycle and decay policy, and retires what's expired, so the estate stays compact and believable.
Deletion here is a feature with a paper trail, not an act of vandalism against an append-only log: memories are classified, expirable, and removable on purpose — which happens to be the exact sentence your next security review is looking for. And because supersession is recorded rather than overwritten, the estate answers point-in-time questions too:
bashmemanto recall "which region does Acme run in" --as-of 2026-03-01 # what we believed then
memanto recall "which region does Acme run in" # what we believe nowA dump cannot answer the first query at all. It only ever had one tense.
4. Brief — the right context, not all of it
The dump pattern's retrieval strategy is read_text(): the whole file, every task, forever. That's not memory — that's rent. Context is paid for by the token on every call, and stuffing it measurably degrades the work it was rented for.
Briefing is Memanto's answer, and it's the verb your agents feel immediately: before a task, an agent asks for its brief and receives exactly the slice of the estate that task needs — scoped to that agent's permissions, current as of the estate's latest reconciliation, and nothing else. Your agents stop reading their diaries cover to cover before every job.
bash# Typed recall when the agent knows what it wants
memanto recall "known failures for nightly reconciliation" --type error
# Grounded synthesis when it wants the briefing, not the raw items
memanto answer "Before this run: what is the fastest known path to reconcile the ledger, and what mistakes should I avoid?"The token math from separating this loop alone typically pays for the pattern; run it on your own bill.
5. Provision — day one shouldn’t be year zero
The quiet cost of per-agent memory: every new agent starts ignorant. In the dump pattern, "onboarding" is copy-pasting someone else’s file and inheriting its contradictions. With a managed estate, provisioning is a first-class operation — a new agent joins the fleet and receives the knowledge it should start with, scoped to its role, from an estate that’s already been curated, reconciled, and consolidated.
Because an agent namespace is just a name, provisioning also crosses tools. A CrewAI pipeline that ran overnight, a Claude Code session, and a production ops agent can all be pointed at the same estate — the research one wrote becomes the context another plans from:
bashmemanto agent create support-agent-02 # joins the fleet, inherits its scoped knowledge
memanto connect # point any IDE or framework agent at the same estate“The fleet’s learning compounds instead of fragmenting. That is the entire difference between N diaries and one estate.
The estate is yours — verifiably
One more thing the dump pattern gets right that we refuse to lose: your markdown file was at least yours. So is your estate. Memanto is MIT-licensed and free — no seat count, no term, no conversion clause — and the estate lives in the Open Knowledge Format, with a shipped exit:
bashmemanto memory export --okf ./memory-bundle # the estate converts out as readily as in
memanto migrate <agent> --okf ./memory-bundleWe say this in every edition of the playbook and mean it doubly here: judge every vendor in this category, including us, by how they treat your leaving. Lossless round trips are the implementation of that promise, and they shipped.
And because a memory system should be measured, not vibed about: Memanto currently scores 89.8% on LongMemEval and 87.1% on LoCoMo — long-horizon memory benchmarks anyone can run, with our method and numbers written up in the paper and reproducible suites in examples/benchmarks/. If you’re evaluating anything in this space, ours included, ask for the number and the paper. Refuse faith-based memory.
Who shouldn't use this
If you run a single agent with a small working set and no compliance surface: keep your markdown file. Honestly. A memory agent for one low-stakes agent is a records department for a lemonade stand. The line is the fleet — several agents, shared knowledge, contradictions that can reach a user or an auditor. That’s when the dump stops being pragmatic and starts being the most expensive thing in your stack, and it’s the scale Memanto was built for: 1,700 GitHub stars and 16K downloads in, mostly from teams who arrived the same way — one confident wrong answer too late.
Staff the job today
Memanto runs alongside the agents you already have — no framework change, no rewrite:
- Grab it:
pip install memanto— MIT, free, permanently (github.com/moorcheh-ai/memanto) - Point it at your fleet and your model key — the management loop runs on your model, in your environment (or entirely on your hardware with
memanto config backend on-prem) - Run the first reconciliation —
memanto daily-summary && memanto conflicts, and count what your dump has been hiding
Every fleet already has a memory manager. Until you choose one, the role belongs to a file and a hope.
“Memory is a job, not a dump. Staff it. Your agents focus. Memanto remembers.