TL;DR
- "Prune low-value context" covers two mechanisms: outcome-based weighting, which reranks a memory because it helped or misled, and consolidation, which changes the memory itself.
- Outcome-based weighting: of six systems checked, Cognee and Mnemoverse (the author's company) name the weight an outcome moves. Self-hosted, Cognee's ranking effect is opt-in, and with personalization on, the default on Cognee Cloud, it can also read a rating from what the user says next. In Mnemoverse the outcome arrives when the agent calls memory_feedback.
- Mem0's feedback page names no mechanism, and its Memory Decay reranks by use. Zep is deprecating fact ratings. Letta logs a positive or negative on an agent step, and no page cited here ties that to ranking. Supermemory's review verdict concerns facts its engine inferred, not how a recall turned out.
- Consolidation: Mem0, Letta, Supermemory and Cognee run it as memories are added or in the background, Cognee also has an explicit entity deduplication pipeline, and Zep merges observations on its Flex Plus and Enterprise plans. In Mnemoverse, consolidation exists in the engine but is switched off on the hosted service.
Outcome-based weighting changes a memory's future ranking because of what happened when it was used: it helped, or it misled. The stored memory stays as it was; only its chance of winning a later search moves.
Consolidation changes the memory itself: duplicates are folded together, outdated facts are marked as replaced, and related memories are distilled into higher-level ones.
Vendors use the same words, clean and forget, for both, and a system can have one without the other.
Who weights memory by outcome
Cognee documents the fullest loop of the six. One answer inside a session can be rated with a feedback_score from 1 to 5, and improve() "applies feedback weights so graph elements that helped produce well-rated answers become more influential in later retrieval" (data flows). The weights are written by default for session writes. Self-hosted, the ranking effect is not: feedback_influence defaults to 0.0, "so the learned feedback signal does not change ranking until you opt in" (feedback system).
A Cognee rating does not have to come from an explicit call. With AUTO_FEEDBACK on (the default, per sessions and caching; it needs caching) and personalization turned on, the per-turn analysis can read a 1 to 5 rating of the previous answer out of what the user says next. "Personalization is off by default." With it on, ratings nudge that user's own ranking, and "The same ratings also feed the global feedback weights, which move ranking for every user." Untouched preference weights decay, and "A weight that has decayed to within 0.01 of neutral is pruned." (personalized memory). That off default holds for a self-hosted install; Cognee Cloud runs with personalization switched on for every workspace and with automatic feedback on, and there a user's ratings move that user's own ranking by at most 30% (session distillation). Cognee's plugins for Claude Code and Codex run the improve pass themselves: "you never call improve() by hand" (Claude Code integration).
Mnemoverse documents the other named weight: "After a recalled memory helps or misleads, the agent calls memory_feedback; that outcome updates the memory's valence, so useful memories surface faster and consistently unhelpful ones rank lower; feedback changes the order of the next read, not the stored text." (API overview). The outcome arrives through that call, so an agent that never makes it sends none.
Mem0's Feedback endpoint page describes the effect this way: "Over time, Mem0 continuously learns from this feedback, refining its memory generation and search capabilities for better performance" (feedback mechanism). The page names no mechanism. Memory Decay reranks by use, not outcome: "every time a memory is returned in a search it gets a small reinforcement", and "Decay never zeroes a candidate out: at worst it scales its score by 0.3×" (memory decay). "Memory Decay is opt-in per project and off by default", and the open-source SDK does not support it (platform vs open source).
Letta's API takes feedback on an agent step, in a field described as "Whether this feedback is positive or negative" (modify feedback for step). No page cited here ties that feedback to what a later search returns.
Zep had a rating for the importance of facts and is removing it. With Fact Rating the developer wrote a rubric, Zep rated every fact against it from 0 to 1, and retrieval could filter by a minimum rating (v2 facts): importance by the developer's rubric, not by outcome. Now "Fact ratings are being deprecated entirely", in a wave that takes effect in February 2026; the page points to custom ontology and the default context block instead, and names no way to report how a result turned out (February 2026 deprecation wave). Graphiti's column in Zep's comparison table names no rating or feedback (Zep vs Graphiti).
Supermemory flags the facts its graph infers (isInference: true) until someone confirms them; approving clears the flag, and a declined guess is "Removed from search entirely" (memory review). That is a verdict on the engine's own guess, not on how a recall turned out. Its docs also offer explicit forgetting, including by meaning (forget and update), and nothing in them, read on 18 October 2026, ties ranking to a recall's outcome.
Who reorganizes the memory itself
Mem0 calls it Dream: "Two of them, Supersede and Merge, keep memory clean and run automatically for everyone." Both run as memories are added: superseded facts are still returned unless you ask for latest_only=true, and merged duplicates are hidden from reads by default. The third action, Synthesis, distills pattern memories "On a schedule, in the background": opt-in on Pro and above, every 7 days per user on Pro and daily on Enterprise. "Nothing Dream does is destructive." (Dream).
Letta: "Dreaming uses background subagents to review recent conversations, consolidate lessons, and update memory without interrupting active work." It runs after a set number of steps, on context compaction, or never (memory).
Supermemory says its learning model "Decides what and how to learn, what is important, when to forget", and memories form in a phase it calls dreaming: "This is when the content is passed through the memory model and merged, arranged and organized for the future." (how it works). By default related documents are batched, so a fresh namespace can show no memories for several minutes (quickstart). On its graph page, preferences strengthen with repetition and episodes decay unless significant, and automatic forgetting drops temporary facts after they expire, lets the newer fact win a contradiction and makes casual chatter less likely to become durable memory (graph memory).
Cognee consolidates in its improve() pass, which starts in the background by default for session writes (data flows): it distills session guidance into durable lessons, leaving out guidance rated harmful, and an opt-in conflict review marks facts as current, superseded or conflicting (improve). A separate pipeline, consolidate_entities, "detects those near-duplicates and collapses each group into a single canonical node"; the guide calls it destructive and says to run it with dry_run=True first (entity deduplication). The older memify operation is deprecated (memify).
Zep derives observations from its graph on Flex Plus and Enterprise: "Observations are deduplicated and merged", and when a newer observation supersedes an older one, the older one is retired (observations). For Graphiti, which Zep runs inside its managed service, Zep's comparison table lists "Entity and edge extraction, bi-temporal model, fact invalidation".
Mnemoverse: "consolidation exists in the engine but is switched off on the hosted service" (API overview). A team that needs consolidation running today will find it documented at each of the other five, not at Mnemoverse.
Six systems, two mechanisms
| System | Outcome-based weighting | Consolidation and clean-up |
|---|---|---|
| Cognee |
improve() writes rating weights by default; ranking effect opt-in self-hosted; per-user personalization, on for every Cognee Cloud workspace, can also read a rating from the user's next message |
improve() distills session lessons in the background; consolidate_entities merges near-duplicate entities when called (destructive); preference weights decay and are pruned |
| Letta | step feedback, positive or negative; no cited page ties it to ranking | dreaming: background subagents consolidate lessons and update memory, after a set number of steps or on compaction |
| Mem0 | Feedback API, its page names no mechanism; Memory Decay reranks by use, not outcome (opt-in, Platform only) | Dream: Supersede and Merge as memories are added, every Platform plan; Synthesis on a schedule, Pro and above |
| Mnemoverse | memory_feedback, called by the agent, changes the order of the next read | exists in the engine, switched off on the hosted service |
| Supermemory | review verdict on inferred facts, a declined one leaves search; not tied to outcome | dreaming after indexing, batched by default; forgetting by type, expiry and contradiction |
| Zep and Graphiti | Zep: Fact Rating, being deprecated; Graphiti: no rating or feedback in Zep's table | Zep: observations deduplicated and merged (Flex Plus, Enterprise); Graphiti: fact invalidation |
Each cell summarizes that vendor's own documentation, read on 18 October 2026; not a test.
In a team: whose ranking moves
Cognee's feedback weights are a global signal, "every user's ratings move the same weights for everyone", and its per-user personalization nudges only that user's own ranking (feedback system). Cognee grants read and write permissions per dataset (permissions), and Letta's shared memory repositories give several agents access to the same files (memory). In Mnemoverse, memory can be shared across separate accounts through a room (Beta), and feedback against a room's memory updates the room's own weighting for everyone who reads it, not a private copy.
Earlier articles on this account
The outcome side:
- The Feedback Dilemma: Your Agent's Memory Learns Most From a Signal It Almost Never Sends
- How can I prevent my AI coding assistant from repeating fixed mistakes across sessions?
- My AI tool recommendations don't get smarter based on whether their previous output worked
- How can I automatically rank past successful code suggestions for an autonomous bot?
- My custom AI bot keeps giving bad advice because it cannot retain feedback from past calls
The consolidation and write side:
- How do memory layers handle automatic consolidation and forgetting to prevent prompt context bloat?
- Explain how an importance gate prevents noise accumulation in persistent agent memories.
Each is current as of its own date, as is the eight-minute video on the same question, published on 3 September 2026: What persistent memory APIs support feedback loops to automatically prune low-value context?
Common questions
Which memory systems prune context without an explicit feedback call?
Mem0's Supersede and Merge run as memories are added, and its opt-in Memory Decay reranks by use; Letta's dreaming and Cognee's improve() pass run in the background; Supermemory forgets by type, expiry and contradiction; Zep merges and retires observations on Flex Plus and Enterprise; and Cognee, with personalization on (the default on Cognee Cloud), can read a rating from the user's next message.
Sources and method. Every page cited and every quotation was read on 2026-10-18 with two instruments (a browser-like request, and a reader service or the vendor's Markdown export), and a made-up address on each documentation host answered 404 as a control. The text describes that documentation as of that date. Every fact about a vendor, Mnemoverse included, comes from a page that vendor published. This is a reading of documentation, not a hands-on test of any product, and no performance number appears for any system.
Edward Izgorodin · Mnemoverse · 2026-10-18
Top comments (0)