AI memory APIs that prune low-value context: two mechanisms, six systems
Does a persistent memory API actually get better after it gets something wrong? Four buyer questions asked, in different words, for the same underlying thing: memory that improves instead of just accumulating. Checking the answer honestly means separating two mechanisms vendors both describe with the same word, clean, and one of them is broken in our own product.
This is the written half of a video, What persistent memory APIs support feedback loops to automatically prune low-value context?, and the sections below follow its eight chapters in order, so anyone arriving from the end card can pick up where they stopped.
Correction, 17 October 2026: this page said that Supermemory down-weights the facts its graph infers until someone reviews them. On 15 October 2026 Supermemory removed that statement from its documentation, among "claims that don't match current behavior"; its memory review page now describes a flag that holds until someone confirms the fact, and a declined guess leaving search. The page also said that both outcome mechanisms, Mnemoverse's and Cognee's, wait for a call, and it named only Cognee's global feedback weights. Cognee also documents a rating read from the user's next message and per-user preference weights (personalized memory), off by default self-hosted and switched on for every Cognee Cloud workspace (session distillation). The table now names Supermemory's dreaming phase and says that Cognee's memify() is deprecated and its consolidate_entities pipeline is destructive, three quotations of Mnemoverse's own documentation now follow its current wording, and Rooms carry the beta label their page gives them.
TL;DR
- Two different jobs share one word, clean: outcome-based weighting (does a memory's future ranking change because it helped or misled) and consolidation (does the memory itself get reorganized to stay tidy). Conflating them is the trap.
- Outcome-based weighting, live today: only Cognee and Mnemoverse name the weight an outcome moves, and self-hosted, Cognee's ranking effect is opt-in. Zep is deprecating fact ratings entirely in 2026. Letta logs a positive or negative on an agent step, and no page cited here ties that to ranking; Graphiti's column in Zep's comparison table names no rating or feedback; Supermemory flags the facts its graph infers until someone confirms them, and a declined guess leaves search: a verdict on the engine's own guess, not on an outcome.
- Consolidation: Mem0, Letta, Cognee and Supermemory each document one, Zep merges observations on its Flex Plus and Enterprise plans, Zep's comparison table lists fact invalidation for Graphiti, which Zep runs, and Mem0's two clean-up actions are always on for every Platform plan. Mnemoverse's own consolidation is disabled on the hosted service and has never once completed.
- Mnemoverse's outcome mechanism waits for a call: if the connected agent never makes it, no outcome reaches the memory. Cognee's takes the same kind of call and, with personalization turned on (the default on Cognee Cloud), can also read a one-to-five rating of the previous answer from what the user says next; its plugins fire the improve pass for you.
- Disclosure: Mnemoverse is one of the six systems compared, built by this site's publisher. Every fact about a vendor, ours included, is sourced from a page that vendor published.
Published by Mnemoverse, a persistent-memory API for AI agents. To try it with your own agent: free key.
Two questions, one word, two different jobs
Vendors call both of these "clean." They are not the same job.
Outcome-based weighting changes a memory's future ranking because of what happened when it was used. The memory itself is untouched, only how likely it is to win a future search. Consolidation reorganizes the memory itself, grouping similar or superseded memories into summary prototypes so the structure stays legible as it grows. A system can have one without the other, and this article checks both, separately, rather than letting one stand in for the question about the other.
Who actually has outcome-based weighting
Mem0 has a Feedback endpoint. Here is how its feedback page describes the effect: "Over time, Mem0 continuously learns from this feedback, refining its memory generation and search capabilities for better performance" (docs.mem0.ai/platform/features/feedback-mechanism). That page names no mechanism. Compare that to a second feature on the same product, Memory Decay, bounded by a floor and a ceiling: "Decay never zeroes a candidate out: at worst it scales its score by 0.3×" (docs.mem0.ai/platform/features/memory-decay).
Letta's API logs a positive or negative on an agent step, and its page for that (docs.letta.com/api/resources/steps/subresources/feedback/methods/create) names no effect on retrieval. Graphiti's column in Zep's own comparison table (help.getzep.com/zep-vs-graphiti) names no rating or feedback. Supermemory's docs give preferences strengthening with repetition, episodes decaying unless significant, temporary facts dropping when they expire (supermemory.ai/docs/concepts/graph-memory), and its quickstart says that by default it may batch related documents, so memory formation can lag (supermemory.ai/docs/quickstart). Facts its graph infers are flagged (isInference: true) until someone confirms them; approving clears the flag, and declining removes the guess from search entirely (supermemory.ai/docs/recall/memory-review). That is a verdict on the engine's own guess, not on a retrieval outcome.
Cognee is the one real exception among the five competitors checked. One answer inside a session can be rated one to five, and the call the product names improve() writes that rating into the weights ranking reads later (docs.cognee.ai/core-concepts/data-flows). The weights are written by default. Self-hosted, the ranking effect is opt-in (docs.cognee.ai/guides/feedback-system). A rating does not have to come from an explicit call either. With AUTO_FEEDBACK on, its default (docs.cognee.ai/core-concepts/sessions-and-caching), and PERSONALIZATION_ENABLED on, Cognee's per-turn analysis can read a one-to-five rating of the previous answer out of what the user says next, and the same ratings feed both a per-user preference record and the global feedback weights (docs.cognee.ai/core-concepts/further-concepts/personalized-memory). Self-hosted, personalization is off by default. Cognee Cloud runs with it switched on for every workspace and with automatic feedback on, so there a user's ratings, explicit or read from the next message, move that user's own ranking by at most 30% (docs.cognee.ai/cognee-cloud/functionality/session-distillation).
Zep's Fact Rating: had it, is deleting it
One vendor here is deleting a rating its own documentation still describes. Zep called it Fact Rating. The developer wrote the rubric and passed it when adding a user or a group, Zep rated every fact against it from zero to one, and you could filter what came back by a minimum rating (help.getzep.com/v2/facts). As of the deprecation wave documented for 2026, it is being removed: "Fact ratings are being deprecated entirely" (help.getzep.com, February 2026 deprecation wave).
What is being deleted is the rubric, the rating filters, and retrieval by rating. Zep's own page names what to use instead, custom ontology and the default context block, and that page names no way to report how a result turned out.
Our own mechanism, precisely
Two of the six systems checked name the weight an outcome moves. Cognee is one. Mnemoverse is the other, stated exactly rather than as a slogan.
The feedback call, verbatim: "Report outcome (success/failure) for memories. Updates valence and Hebbian associations" (POST /memory/feedback, mnemoverse.com/api/ reference). The request takes the memories and an outcome from -1.0 to +1.0, and it can also take the query concepts that move the Hebbian edges. At the next read, that changes one specific field, relevance: "Final score after valence modulation" (POST /memory/read response, MemoryItem fields). A memory that keeps getting negative feedback keeps losing ground in that score. It is out-ranked, never erased.
Nothing about this runs on a background clock, and Mnemoverse's server does not supply the habit either: its instructions and tool descriptions "say what each tool does and when it applies, not that the agent should use memory without being asked" (mnemoverse.com/docs/api/agent-memory). The memory rules that page gives you for your agent's instructions include: "After acting on recalled memories, rate them with memory_feedback: helpful or not" (same page). If the connected agent never makes that call, no outcome reaches the memory. That is a prompting-discipline problem, not a backend one. Cognee's plugins fire their improve pass for you (docs.cognee.ai/integrations/claude-code-integration), and Mem0's Decay reweights from use with no extra call (docs.mem0.ai/platform/features/memory-decay), though that one is opt-in and off by default.
Team workflows: one correction, whose weighting moves
One buyer question asked specifically about dynamic weighting across a shared team workflow. Mnemoverse answers it through the same mechanism above, applied to a shared space instead of a private one, called Rooms (beta): "An atom written to a room lives in the room — not in the writer's account" (mnemoverse.com/api/rooms). Feedback against a memory in that shared pool updates the pool's own weighting, not one person's private copy: one team member corrects a memory that misled them, and the next teammate's agent searching that room reads a pool that already learned from the correction.
Letta's shared memory repositories, now preferred over its legacy blocks (docs.letta.com/v1-sdk/memory/shared-memory), and Cognee's dataset grants (docs.cognee.ai/core-concepts/multi-user-mode/permissions-system/overview) both let several agents read and write one space. Cognee's feedback weights are a global signal, the same for every user (docs.cognee.ai/guides/feedback-system), and Cognee also documents per-user preference weights that nudge only that user's own ranking, off by default self-hosted and on for every Cognee Cloud workspace (docs.cognee.ai/core-concepts/further-concepts/personalized-memory; docs.cognee.ai/cognee-cloud/functionality/session-distillation). Letta records a step as positive or negative, and on the pages cited here it ties that to nothing that changes a later search.
The question we don't have a good answer to
One buyer question asked specifically about consolidation: grouping similar memories into summary prototypes to keep a memory graph clean, a different job from everything above. Mnemoverse's own documentation states the answer in full, no hedge: "Consolidation is off on the hosted service and we do not currently recommend turning it on... It has never once completed on the hosted service — every run in the retained window failed, silently" (POST /memory/consolidate, mnemoverse.com/api/ reference).
That is not the mechanism described above. Ranking a memory down because it kept failing still happens today, live, on every account. Reorganizing the graph itself does not, currently, on the version anyone can actually use. More than one competitor documents an answer to the same specific question. Letta's dreaming launches background subagents that consolidate lessons and update memory, on a trigger you set (docs.letta.com/agent-sdk/memory). Mem0 calls its version Dream, and two of its three actions, marking outdated facts and merging duplicates, are always on for every Platform plan (docs.mem0.ai/platform/features/dream). What merging duplicates does not cover is the read side, where two copies that both survived the write come back as two results; see vector search duplicate results.
This is named here as a real gap, not a footnote. A team asking specifically for consolidation today has a better answer from Mem0 than from Mnemoverse.
The table
| outcome-based weighting | consolidation / clean-up | |
|---|---|---|
| Mnemoverse | yes: memory_feedback → valence → reranking, agent-called | no: disabled on the hosted service, never once completed |
| Mem0 | Feedback API (its page names no mechanism); Decay (bounded, opt-in, Platform-only) | Dream: Supersede + Merge automatic on every Platform plan; Synthesis Pro+ only |
| Letta | step feedback, positive or negative; no cited page ties it to ranking | Dreaming: background subagents consolidate lessons and update memory, on a trigger you set |
| Zep / Graphiti | Zep: Fact Rating, being deprecated; Graphiti: no rating or feedback in Zep's comparison table | Zep: observations deduplicated and merged, Flex Plus and Enterprise plans; Graphiti, which Zep runs: fact invalidation, per Zep's comparison table |
| Cognee | yes, improve() writes the 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 | opt-in consolidate_entities pipeline merges near-duplicate entities (destructive, dry run first); memify() itself is deprecated |
| Supermemory | flags its own inferred facts until confirmed; a declined guess leaves search; nothing in its docs ties ranking to outcome | after indexing, a dreaming phase merges and organizes new memories, batching related documents by default, so new memories can take several minutes; the profile updates as users interact |
Where we are not the best choice
Said once, directly: a team asking specifically for automatic graph consolidation has a real, working answer from Mem0 today, and does not have one from Mnemoverse.
Competitor facts reused from this site's comparison of six persistent memory APIs, corrected there on 2026-09-13 against each vendor's own documentation, as that page's note says, and corrected here on 2026-10-17, as the note at the top of this page says. Mnemoverse's own facts are from its API reference, Rooms, agent-memory guide and MCP server notes. No performance or benchmark number appears in this article, for any system.
Related
- Best AI agent memory in 2026: our own roundup of the same field
- Why does my vector DB retrieval keep returning duplicate noise for my chat agent, and how to fix it?
- Explain how an importance gate prevents noise accumulation in persistent agent memories
Mnemoverse is a persistent-memory API for AI agents. Free key: console.mnemoverse.com · Plans and limits · Docs: Getting Started
