Supermemory synthesis
Type: agentic-system-analyses/types/agentic-system-synthesis.md
Bounded synthesis
From application calls to retained content
Supermemory is a memory and context-supply system for model applications. Its public repository contains executable middleware, memory tools, an MCP server and shipped callers. The extraction and maintenance engine belongs to a separate non-public codebase. This analysis covers the complete public artifact at f81fad00e4bfc42610159cf6bd7bdb5fc4ca7cbe, with an applicability cutoff of 2026-10-19, but only a partial product loop. SRC-1 supplies implementation, doctrine/design and attributed operation claims; it supplies no observed run or causal experiment. Code-grounded findings below establish wiring, not exercised behavior or benefit. See the source register and RT-CLM-engine-boundary.
The ordinary shipped middleware path is application request → automatic memory selection → provider generation → conversation submission. In Vercel, code chooses profile, query or full mode, scopes requests by namespace, uses the latest user text for search, formats results and replaces its own marked system-context block. The provider owns generation. Persistence defaults on for eligible input and submits the converted conversation plus generated assistant text after successful generation. The returned answer does not await a committed save. A later invocation can retrieve server-derived content, but submission does not establish extraction completion or visibility. OpenAI's facade differs: it can submit supplied history during preparation, without automatically appending the current generated answer. See RT-RTE-vercel-call and RT-RTE-openai-call.
These are distinct admissions, not a universal transcript policy. Vercel omits system messages; Agent Framework storage defaults off and can include system text when enabled. LiveKit defaults to capturing eligible completed user/assistant turns, buffers by original session scope and requeues failed batches. These public paths establish automatic submission without individual human content approval; remote acceptance remains service-owned. See RT-RTE-python-context and MEM-RTE-livekit-session.
Filtering has narrower guarantees than semantic redaction. Vercel's includeToolCalls: false removes structured tool parts, while an earlier branch copies non-system string content. The external compatibility type's support for string-valued tool messages is unresolved: this is neither a universal exclusion guarantee nor a demonstrated supported bypass. Ordinary prose can describe tools. Image eligibility also does not establish image understanding: final serialization can replace image data URLs with [image]. See RT-RTE-vercel-call.
From documents to facts, profiles and later model input
The service distinguishes raw documents/chunks from extracted fact text, symbolic eligibility/relations and derived profiles. Documentation describes indexing followed by a second phase, “dreaming,” which constructs facts and relations. Dynamic processing groups related documents; instant processing isolates one document. A document marked done can have searchable chunks before its graph memories are ready. Profile aggregates need not map to one source fact. These are declared remote transformations, not inspected engine algorithms. See MEM-OBJ-document-content, MEM-OBJ-memory-facts, MEM-OBJ-memory-state, MEM-OBJ-profile-summary and MEM-RTE-engine-dreaming.
Later consumption has both requested and automatic forms. Tools explicitly return search results, profiles, documents or files. Middleware independently supplies selected memory before model generation, although its upstream API retrieval is itself a request. Vercel can reuse a wrapper-local LRU string for non-user continuations; this is not canonical durable memory or the OpenAI facade's transient prepared context. Namespace/mode and compound cache-key selection are inspectable. Remote semantic scoring is not decomposed into embedding, lexical or model-judgment selectors by these records. See MEM-RTE-mcp-read, RT-OBJ-memory-cache and EPI-OBJ-openai-context.
The actual model payload often carries less lineage than the service exposes. Default formatting emits strings and deduplicates normalized variants, prioritizing static over dynamic over search in full mode. A dated search variant can be suppressed by static text; query mode excludes the profile before deduplication. MCP search returns text, IDs, similarity and an optional document pointer, but not inferred status. Listing retains more flags, and a separate document read can recover bounded source text. That optional reload is not automatic grounding. Similarity, profile headings and repeated delivery establish no factual warrant. See EPI-RTE-memory-format, EPI-RTE-search-projection and MEM-RTE-mcp-read.
Retained prose has interpretive force through system context, Responses instructions, MCP user-role prompts, tool results or LiveKit assistant-role insertion. It is not a hard execution constraint. Context management replaces owned blocks or marked injections; it does not establish full-history compaction or global eviction. Vercel's five-second retrieval abort depends on external SDK cooperation. Retrieval fails open by default, with a configurable strict Vercel branch; save failures do not roll back returned answers. See RT-BAP-memory-context, RT-RTE-vercel-call and MEM-RTE-livekit-session.
An alternative bypasses ranked fact retrieval: Claude memory commands store namespace-scoped remote file documents and reload exact bodies or line ranges. The shipped example returns tool results to Claude once. Files can retain reasons if their author writes them, but useful rationale or repeated autonomous refinement is not demonstrated. Replacement uses update before add fallback; rename writes destination then deletes source without a local atomic rollback. See MEM-OBJ-claude-file, MEM-RTE-claude-file and MEM-BAP-file-reload. The separately documented SMFS interfaces remain outside this partial inventory, as the limitation below records.
Review, withdrawal and control boundaries
Documentation declares approve, decline and undo for inferred facts. Approval clears the inference flag while the item stays in search; decline forgets it; undo restores unreviewed state. This is not mandatory pre-search quarantine. Neither parent count nor the confirmation label establishes an evidence-consuming acceptance decision against a named factual criterion. A documented graph example infers a likely product assignment from occupation and discussion topics; it is ampliative conjecture because those premises also fit other assignments. Other extraction relations remain indeterminate. See MEM-RTE-inference-review, EPI-CLM-review-facts and EPI-RTE-graph-dreaming.
Withdrawal is layer-specific. Source deletion is documented as permanent and as forgetting derived memories; memory forgetting is soft deletion; review decline has undo. Semantic preview followed by fresh semantic application can drift, whereas exact-ID application binds the selected set. MCP's content handler immediately dispatches exact matches but returns approximate candidates for a subsequent call; that caller need not be human. None of these establishes eviction from already injected prompts, continuation caches or all aggregated descendants. See MEM-RTE-source-maintenance, MEM-RTE-semantic-forget and RT-RTE-mcp-forget.
Operational controls have different targets from truth checks. MCP authenticates requests, but cached API-key validation does not establish immediate revocation. Retained active space supplies a routing default, not universal namespace authorization; explicit namespaces can override it. File upload uses a short-lived capability consumed transactionally before forwarding. Single consumption depends on Durable Object semantics and does not guarantee exactly-once remote ingestion. See RT-RTE-upload-session, RT-BAP-space-selection and the runtime control account.
A representative delivered workflow
The shipped OpenAI playground supplies a concrete multi-step workflow: an HTTP request dispatches a model with memory tools; model-selected calls run through fixed executors; results return to the next model turn; a tool-free response becomes an HTTP assistant message. This refines RT-RTE-tool-loop, not an observed sequence of search then save. Calls within one response execute concurrently, so save and search are not an ordered transaction. The model owns revised proposals after recoverable tool errors. Missing required strings in valid JSON can reach another turn, but malformed or blank original JSON can abort during uncaught trace reparsing. Eight provider iterations and a 120-second outer deadline bound progression without rolling back remote mutations. Final output needs no answer-quality acceptance, and HTTP response construction does not prove browser receipt or user acceptance. See the workflow account.
For a scenario requiring remembered user context on later calls, the public artifact provides concrete capture, selection, insertion and exact-reload paths. It does not establish correct derivation or beneficial reliance. For a scenario requiring only accepted, auditable inferred facts, the declared review route is weaker: unreviewed content can already be searched, and default consumers omit consequential metadata. For immediate withdrawal, remote eligibility and local context reuse remain distinct. These assessments concern the named routes, not a product ranking.
What learning and improvement evidence supports
The strongest supported learning contribution is the declared session-to-durable-context chain: automatic conversation capture feeds fact/profile production, whose outputs can reach later answering models. Capture and delivery are wired; the intervening engine transformation remains claimed. This supports a claimed trace-fed update from session logs, not observed improved capacity, weight training or complete coverage of learning routes. See MEM-RTE-engine-dreaming, MEM-RTE-livekit-session and the profile verification.
Independently, the reports do not establish a formulated-theory route meeting theory-builder conditions 1–4. Exact files can hold localized prose and be edited, but no concrete theory instance, decision dependence on its content, content-directed criticism with blame assignment, or retained criticism shaping a next round is established. Criticism of a consumed theory improving future capacity is therefore unestablished, not disproved. Reflection is also unestablished: retained user facts do not establish a representation of the system's own organization with both causal directions. Computation performs selected capture, dispatch and formatting roles, but autonomous theory-building is not established by those roles. See MEM-RTE-claude-file, RT-RTE-tool-loop and the epistemic conclusion.
At this partial-loop boundary, exercised self-improvement is not established. Retained context can shape later input, but the records do not close an objective-specific chain from evidence determining an organizational update to subsequent operation causally depending on it. There is no intervention/comparison establishing benefit. Package publication supplies a separate version/build/compatibility gate, not demonstrated runtime self-revision. External MemoryBench answer judging supplies no captured runs or product memory-admission oracle. See RT-RTE-publish-tools, EPI-CLM-benchmark-judge and RT-BAP-memory-context.
The assessment would change with inspectable engine admission and maintenance rules; linked capture, derivation, review and later-consumption traces; evidence-bearing acceptance decisions; and objective-specific comparisons separating update effects from other changes. Stronger consumer guarantees would also require carrying inference/provenance distinctions into actual model payloads and demonstrating withdrawal across aggregates, caches and model windows. None follows from another successful save or an attributed benchmark result.
Limitations
| Limitation | Affected SRC IDs and record citations | Inspected boundary | Conclusion prevented | Evidence that would resolve it |
|---|---|---|---|---|
| Non-public engine and opaque provider state | SRC-1; RT-CLM-engine-boundary, MEM-RTE-engine-dreaming, RT-CMP-extraction-model, RT-CMP-local-embeddings | Public clients and declared engine/model contracts | End-to-end implemented extraction, physical storage, ranking, initialization, parameter-update or complete maintenance account | Frozen engine/provider evidence exposing those mechanisms and versions |
| No observed use or causal comparison | SRC-1; RT-RTE-vercel-call, RT-RTE-tool-loop, EPI-CLM-benchmark-judge | Source inspection; external benchmark described but not captured | Exercised dependence, reliability, performance, improved capacity or component-effect attribution | Linked execution artifacts and suitably controlled comparisons at the claimed horizon |
| Document indexing and memory readiness differ | SRC-1; MEM-RTE-engine-dreaming | Document/dreaming design contracts and public submission | Successful add or done proving finished graph/profile refresh |
Processing traces linking status to derivative availability |
| Partial adapter inventory and legacy version skew | SRC-1; MEM-CLM-adapter-variants, MEM-RTE-livekit-session, RT-RTE-python-context | Selected JS/Python implementations; other available adapters incompletely traced | Adapter-wide filtering, failure, persistence or deployed compatibility guarantees; complete memory-axis inventories | Remaining adapter traces and pinned deployed SDK/service compatibility evidence |
| Separate SMFS mount/Bash interfaces omitted from the inventory | SRC-1; report-verification limit, MEM-RTE-claude-file, MEM-OBJ-profile-summary | Verifier inspected documentation in apps/docs/smfs/overview.mdx, apps/docs/smfs/mount.mdx and apps/docs/smfs/bash-tool.mdx; declaring reports do not inventory it |
Complete filesystem-interface, extraction-admission and sync/cache-control comparisons. Documentation adds path-selected extraction, virtual read-only profile, cached reads, queued writes, optional polling, explicit Bash refresh and configurable memory paths; implementation and operation remain unestablished | Accepted records tracing these documented interfaces, their implementations, compatibility and actual consumers |
| Delivered text loses epistemic distinctions | SRC-1; EPI-RTE-memory-format, EPI-RTE-search-projection, MEM-RTE-mcp-read | Default format/search projections and optional document reload | Default complete provenance, preserved temporal scope, automatic grounding or warrant from similarity | Consumer-visible lineage and scope plus traced evidence-sensitive use; separate inspection of custom templates |
| Review contract does not establish factual acceptance | SRC-1; MEM-RTE-inference-review, EPI-CLM-review-facts, EPI-RTE-graph-dreaming | Review documentation/schema and one conjectural example | Mandatory human gate, pre-search quarantine, accepted ampliative knowledge or post-acceptance integration | Endpoint implementation and evidence-consuming decisions naming criterion, use and scope |
| Withdrawal propagation unresolved | SRC-1; MEM-RTE-source-maintenance, MEM-RTE-semantic-forget, RT-OBJ-memory-cache, MEM-OBJ-profile-summary | Document/forget/review contracts and local context reuse | Immediate global removal, refreshed aggregates/shared descendants or physical erasure from soft forgetting | Linked withdrawal-to-refresh/eviction traces across each retained and delivered form |
| Connector schedule and selection-removal ambiguity | SRC-1; MEM-RTE-connector-sync | Connector overview/resource-selection documentation | Uniform real-time/four-hour timing or complete removal after selection changes | Consistent provider-specific contracts and implementation/operation evidence |
| Admission and recovery guarantees are route-local | SRC-1; RT-RTE-upload-session, RT-RTE-mcp-forget, RT-RTE-vercel-call, RT-RTE-tool-loop, workflow account | Inspected middleware, MCP and playground branches; external auth/SDK/transaction contracts | Universal human approval, namespace isolation, semantic secret removal, demonstrated string-tool bypass, exactly-once ingestion, uniform recovery or mutation rollback | Supported input-type evidence, authorization/transaction contracts and failure traces spanning caller through service |
Source-read log: none. This synthesis uses only the supplied members; it adds no source evidence or target execution.