What the 243 current agentic-system analyses show about agent memory mechanisms (November 2026)
Type: types/note.md · Tags: agent-memory
The current accepted analyses connect memory to more than reference retrieval. Retained information also selects work, ranks candidates, gates admission and feeds later updates. This snapshot compares those mechanisms at one frozen evidence boundary. It asks how information enters memory, reaches later work, is revised and changes through recorded activity—not which product is best.
Four contrasts organize the findings:
- Admission: 221 of 225 code-grounded sets wire at least one automatic admission mechanism. Explicit human content decisions are wired in 63; another 55 support manual admission only through claims or affordances. Starting a workflow is not approval of each resulting memory item.
- Read-back: both requested retrieval and unsolicited context supply are extensively wired. Inferred relevance is not required for context supply: availability, chronology and identifiers also select what reaches a model. Selection must be distinguished from delivery and actual reliance.
- Curation: revision, compression and forgetting have many recorded
implementations. Creating a claim absent from the inputs—
synthesizein this comparison—has only 12 strong system witnesses. Calling a model or naming an operation “synthesis” does not establish semantic novelty. - Trace-fed updates: the same
trace_learning: "yes"classification includes access counters, retained mistake-prevention rules and trained weights. These change different material and reach different consumers. The shared classification is not an ordering of capability or benefit.
These are existence counts, not prevalence estimates. They count systems with a supported mechanism even when the rest of the inventory remains unresolved. They do not establish how often the mechanism runs or works.
Evidence boundary
- Mode and selection: current snapshot, all 243 accepted sets under
kb/agentic-system-analyses/retained/, with no review filter. The successful builder supplies current membership and source-identity selection. Legacy reviews, archives, local runs, transfer advice and upstream sources supply no findings here. - Inputs commit:
bf2da04db03fb4cb60be52d1bb04e638a79eda79. It holds the retained members, contracts, reader and synthesis instruction. Relevant input paths were clean and unchanged from that commit before writing. Output paths are not evidence inputs. - Matrix identity: the successful
scripts/build_systems_matrix.pybuild, without a review filter, recorded SHA-25619da70a6ca54b9c659dd9d1bf734e5f46885325d48f58b40685eccea083ce0bc. Its row identities, including manifest hashes, are the provenance used here. The public memory matrix and table are separately maintained outputs, not additional evidence. - Population and revision: 225 code-grounded and 18 doc-grounded sets.
All 243 profiles use
comparison_version2. Revision 2 measures human content-admission decisions, not generic caller identity; no revision-1 write-agency values are pooled with it. - Boundary kinds: code-grounded sets comprise 193 whole-system, 27 complete-artifact/partial-loop and 5 subsystem-only boundaries. The doc-grounded split is 4, 12 and 2. Whole-system inclusion does not imply exhaustive inspection of every path.
- Source cutoffs: 2026-10-11 through 2026-11-09. Individual cutoffs and reviewed source revisions remain in the query ledger; this is not a simultaneous observation of deployed products.
- Lens: the ten axes of the memory profile contract. Units retain their scope, coverage, evidence basis and canonical records.
- Verification: local checking of selected retained members, profile units, canonical records and reconciliations. Selected directories were validated before reading members; the matrix builder validates population membership. Quantitative claims use the retained query output. No independent reviewer was commissioned.
How to read the evidence
A strong witness has basis wired, observed or causally supported in a
code-grounded profile. wired means inspected code connects a mechanism, not
that it ran successfully. Each system counts once per value, regardless of
how many stores or routes support it. Both known and partial axes can
support a positive witness. Weak-only means that a value is present only
at claimed or afforded basis in that system; it is not added to the strong
count.
Missing values and unresolved units are not negatives. An absent assessment
needs bounded evidence. inapplicable, uninspected and not-determinable
are different limitations, not observed absence. A strong witness for one
unit does not upgrade a weaker unit with the same value.
Complete-value distributions remain withheld
Answering “what share is pull-only?” requires known axis coverage and strong
evidence for every positive unit finding, not just the strongest witness
for each union value. Few code-grounded sets qualify:
| Axis | Eligible sets (of 225) |
|---|---|
| Storage substrate | 36 |
| Representational form | 20 |
| Read-back signal | 17 |
| Read-back direction | 11 |
| Behavioral authority | 6 |
| Write agency | 2 |
| Curation operations | 1 |
| Trace learning | 1 |
| Lineage; trace source | 0 |
These assessed subsets do not stand in for the whole population. This snapshot therefore gives no complete-value distribution or whole-population percentage for any axis. Even a set with only files among its strong storage findings need not be a files-only system: weak or unresolved alternatives remain.
Wiring dominates; the observation exception is narrow
The 225 code-grounded profiles contain 9,379 wired, 849 claimed, 820
afforded and 2 observed findings. The 18 doc-grounded profiles separately
contain 43 wired, 567 claimed and 22 afforded findings. Neither tier has a
causally supported finding.
Both observed findings concern llm-wiki-newsroom's experiment artifacts: natural-language judgments and symbolic score/manifest fields at a later analysis consumer. The experiment-ledger object and judge-measurement route retain sampled labels and scores, not an independently authenticated production memory run. The reference labels are model judgments; hidden scorer/questions and missing originals limit replication and attribution. The observations do not establish deployed memory activation, improved answers or a reviewer-family effect.
Strong existence counts by axis
Every count below has denominator 225 code-grounded sets, revision 2. Counts overlap across values. Weak-only columns show selected frequent gaps; the ledger retains every value and every excluded run.
| Axis | Axis assessment | Strong existence counts | Selected weak-only counts |
|---|---|---|---|
| Storage substrate | partial 168, known 56, not-determinable 1 | files 204, in-memory 107, sqlite 77, vector 60, repo 45, graph 34, rdbms 34, service-object 16, kv 14, model-weights 7 | repo 16, files 5, service-object 4 |
| Representational form | partial 195, known 30 | symbolic 221, natural-language 209, parametric 100 | natural-language 14, parametric 3, symbolic 3 |
| Lineage | partial 224, known 1 | other-compiled 212, imported 200, trace-extracted 176, authored 131 | authored 48, trace-extracted 23 |
| Behavioral authority | partial 209, known 15, not-determinable 1 | routing 211, knowledge 204, enforcement 190, ranking 183, validation 175, learning 151, instruction 116 | instruction 45, learning 31 |
| Write agency | partial 222, known 3 | automatic 221, manual 63 | manual 55, automatic 4 |
| Curation operations | partial 223, known 2 | evolve 184, consolidate 153, decay 134, invalidate 113, dedup 79, promote 59, synthesize 12 | consolidate 42, evolve 31, dedup 24 |
| Read-back direction | partial 196, known 29 | pull 216, push 179 | pull 9, push 7 |
| Read-back signal | partial 166, not-determinable 21, known 19, uninspected 10, inapplicable 9 | coarse 171, identifier 131, inferred-lexical 44, inferred-embedding 36, inferred-judgment 25 | coarse 5, identifier 3, inferred-judgment 2 |
| Trace learning | partial 187, not-determinable 36, known 1, uninspected 1 | yes 160; local unit no in 6, system-union no in 1 | yes 26 |
| Trace source | partial 176, not-determinable 47, inapplicable 1, uninspected 1 | session-logs 107, tool-traces 97, event-streams 46, trajectories 25 | session-logs 24, tool-traces 16 |
Storage is not representation. Files have strong witnesses in 204 sets; 123 wire at least one database-type substrate (sqlite, rdbms, vector, graph or kv). A set can occur in both counts. In 36 sets files are the only strongly reported substrate, not necessarily the only substrate. Text, fixed-rule metadata and dense numerical representations can coexist within one store.
Authority is consumer-relative. Retained material supplies reference knowledge, but it also routes, ranks, validates and enforces. Those values do not imply that retained prose itself has veto power: symbolic state consumed by code and advice interpreted by a model are different paths. Instruction has 116 strong witnesses and 45 weak-only witnesses, illustrating the gap between requested standing guidance and a traced consumer.
Admission: human decisions, model proposals and software gates differ
Manual admission appears at some basis in 118 of 225 code-grounded sets. It
has a strong witness in 63 and only weak support in 55. These are positive
memberships, not a count of systems lacking human control. Of 1,250
write-agency units, 302 are not-determinable and 124 uninspected; a generic
API caller often leaves the content decision unresolved.
CQ separates instructed approval from handler enforcement. Its shipped
skill makes user approval a precondition of interactive propose. The
approval claim
classifies this as policy with afforded implementation. The
proposal route
checks structure and credentials, not approval; headless guidance permits
model judgment under separate conditions. This does not establish a universal
human gate, nor does a generic direct call establish automatic authorship.
cass_memory_system wires a real but scoped human decision. The trauma-admission route asks whether to add a displayed candidate batch to a permanent safety blocklist. That batch decision supports manual admission. Generic add/import callers remain unresolved, while other reflection and curation writes can be automatic. The human branch does not certify every future memory write.
pi-self-learning shows why invocation and admission must be separated.
Automatic task-end reflection and /learning-now use the same
proposal/parse/write route.
A model receives selected branch activity and proposes mistakes/fixes;
software accepts nonempty parsed lists and writes journals and derived rules.
Manual invocation does not make each generated item manually admitted.
Structural admission can reject malformed output without detecting a
plausible false lesson. No prevention benefit is observed.
Read-back: unsolicited supply need not infer relevance
Pull has strong witnesses in 216 of 225 sets; push in 179. Here pull fulfills a consumer's request for retained material. Push selects and supplies retained material without that request. Delivery by code alone does not make a requested result push.
Among the 179 strong push sets, 71 also have a strong inferred selector (lexical, embedding or model judgment). The other 108 have strong coarse/identifier signals but no strong inferred finding. Partial coverage and weak alternatives prevent calling those 108 exclusively coarse systems. Only 4 sets establish a complete, strongly evidenced pull-only direction inventory. A relevance-ranked pull result is not evidence of relevance-based push.
Three routes expose distinct selection and consumption boundaries:
- Hindsight: a
UserPromptSubmithook derives a recall query from the prompt, filters scores and emits formatted retained text asadditionalContext(RT-RTE-claude-hooks). The profile records embedding and cross-encoder-judgment selection for this route, while keeping unresolved retrieval arms and other integrations separate. Emitted context is not evidence of host reliance or complete transcript delivery. - A-MEM: new-note ingestion supplies up to five embedding-selected retained neighbors to its own evolution model, which can revise links, tags and contexts (RT-RTE-neighbor-evolution). This push consumer maintains memory; it is not an answering agent. Partial mutation and uncertain snapshot refresh prevent a universal synchronized-read guarantee.
- pi-self-learning: the next-agent-start hook selects available core and optional dated files, plus recent process notes. Selection follows flags, chronology, counts and prefix caps, not the user's query (RT-RTE-context-injection). Long-term memory is named by path rather than automatically bundled. Later sections can disappear under character caps; process notes have a separate cap boundary. “Strict” consultation requests are not enforced reads.
These examples distinguish the selector, selected retained part, actual recipient and surviving payload. Storage availability does not guarantee that all reasons or conditions reach the next consumer. The focused read-back comparison examines that question in more detail.
Curation: changing retained content does not certify new knowledge
Revision (evolve) has strong witnesses in 184 of 225 sets; consolidation in
153, decay in 134 and invalidation in 113. There are 147 sets with three to
seven strong operation values. These memberships describe recorded
transformations, not exhaustive maintenance inventories.
The 12 strong synthesize witnesses are Agent-R, cass_memory_system, deja-vu,
DocMason, eal-bench, Engraph, Kompl, LACP, Sparks, Swamp, VLM-wiki and Zikkaron.
Another 8 sets support that value only weakly. Under the contract, synthesis
creates a claim absent from its inputs; extraction, compression, index
rebuilding and requested model behavior do not alone establish it.
In cass_memory_system, harmful feedback crossing a threshold can turn an
eligible positive playbook rule into a new avoidance rule and deprecate the
original. The curator-inversion record
gives the code deduction Use cache → AVOID: cache. Marked harmful 3 times.
This is policy synthesis, not accepted causal knowledge that avoiding cache
works. Synthesis need not involve model inference.
Conversely, Signet's aggregate recall requests model-authored notes and can save eligible output by default without a maintenance pass (MEM-RTE-aggregate-recall). It links evidence, deduplicates or refreshes a note and attempts embedding; prior aggregate notes are excluded from aggregate searches to limit recursive reuse. But its save guard checks evidence eligibility and output surface form, not proposition-level entailment. Retention can survive embedding failure, and an unsaved result can still be returned. The profile supports deduplication and evolution without inferring semantic novelty from the “synthesis” prompt. Recall here can write memory; neither saving nor source linkage confers a truth warrant.
Revision and withdrawal also have consumer-specific horizons. Changing a current row does not by itself retract already delivered context or external copies. The focused correction comparison separates those propagation mechanisms; no population frequency follows from the examples selected here.
Trace learning: one classification, different durable changes
Trace learning in this profile means automatic trace-fed writes producing
durable behavior-shaping artifacts or learned parameters. It does not require
new knowledge or observed improvement. There are 160 strong "yes" witnesses
among 225 code-grounded sets, plus 26 weak-only witnesses. Session logs,
tool traces, events and trajectories supply different update inputs; their
strong memberships are 107, 97, 46 and 25 respectively. These values can overlap
and do not inventory every source in a partial boundary.
Four strong "yes" sets also wire model-weight storage: AgentFly,
Amazon Science's SAGE, Self-Training-LLM and SkillRL. This co-occurrence does not classify every
learning route in those systems as weight training. The retained records are
needed to distinguish what changes:
- REM changes selection metadata. Retrieval asynchronously increments a
durable count that can add a capped bonus to later rankings
(MEM-OBJ-retrieval-count).
This is use-fed feedback, not a checked outcome or model training.
Its proposed semantic write-back is a different route: the shipped Go
router lacks the accepting endpoints
(RT-ABS-writeback-routes).
A local learning
"no"for that branch coexists with a system"yes"from the counter and other wired paths. Updates can fail silently; no ranking improvement is observed. - pi-self-learning changes retained advice. Selected session activity becomes mistakes/fixes, journals and scored rules for later context. Its structural gate does not evaluate whether the lesson prevents recurrence. This route is distinct from REM's fixed numerical ranking feedback and from provider parameter training.
- SkillRL changes instructions and parameters on separate routes. Validation failures can produce new skills admitted to a training bank after structural checks. The proposer receives bounded failure excerpts and titles, not full bank principles. Separately, reward-driven policy updates change actor parameters. Bank persistence/resume and numerical checkpoint recovery are not one coupled guarantee. Neither route establishes better later actions here.
- A-MEM prevents an invalid inference from automatic revision. Neighbor
evolution is automatic, but the original input is not established as an
activity trace. Its trace-learning axis remains
not-determinable. A bounded absence establishes that shipped paths do not update usage/history fields; it does not rule out caller-supplied experiences or all trace-fed writes.
Local negatives and a bounded system negative
Six sets retain a strong local unit "no": EchoWiki, ModularRSI, Phantom, REM,
secure-llm-wiki and team-ai-workflows. Only team-ai-workflows has a known
whole scoped learning inventory supporting the system-union "no".
Its absence record
covers all shipped corpus acquisition, lookup and access-maintenance paths:
search reads files and prints results; synchronization changes access links;
no automatic query/answer/feedback-to-retained-content route is shipped.
Manual experience-derived authoring, external host/provider updates and
adopter additions remain outside that negative.
The other five local negatives do not become system-wide absence. A "yes"
elsewhere or unresolved included coverage prevents that inference. Likewise,
the 36 not-determinable and one uninspected code-grounded learning axes are
not negative observations.
The broad "yes" category cannot answer whether counters, summaries, rules or
weight updates produce greater benefit. Selected records support the
contrasts above. Population counts by those finer mechanisms would require a
systematic classification with unresolved cases retained, not classification
by missing prose mentions.
Doc-grounded tier: designs remain distinct from implementation
The 18 doc-grounded sets are AgeMem, aide2, arsumbris,
claude-code-dynamic-workflows, context-constitution, From Agent Memory to
Portable Skills, incremental-self-improvement, interview-doc-agent,
IsaacCLupus_mnemosyn_spec, llm-context-base, llm-project-wiki, nimbalyst-wiki,
pm-llm-wiki, Prove2Me_workspace, recall (parcha-skills), sig-releases,
trajectory-informed-memory-generation and wikiskill. Thirteen carry claimed
trace-learning "yes" findings, none a strong "yes". They do not enter the
225-set implementation counts.
A doc-grounded boundary can contain narrow code-inspected or executable
configuration findings: the tier is the account's overall evidence boundary,
not a basis assigned uniformly to every finding. The ledger retains all 43
wired labels in this tier without promoting the documented systems to
code-grounded or assuming successful execution.
Two designs illustrate what the tier can contribute without that promotion:
- AgeMem describes conversation-to-store updates, replacement summaries consumed by later invocations and GRPO policy updates. The canonical store-maintenance, summary and policy-update records support these as claimed design from the captured paper, not inspected executor behavior. Summary fidelity, checkpoint lineage and production loading remain unresolved. A shared trajectory score does not identify the contribution of each memory action.
- Nimbalyst Wiki prescribes capturing decisions, rejected alternatives and reasons from sessions into subject pages, then reading a few full pages because reasoning surrounds the marks (RT-RTE-session-capture, RT-RTE-wiki-recall). Ordinary additions are agent-admitted without per-edit approval; destructive changes have separately scoped approval rules. CLI, host and service implementations are external to the frozen plugin. This supports a claimed trace-fed path and whole-page recall policy, not verified persistence, compliance or prevention of decision reversals.
Example provenance
Member links above name supporting sections and canonical IDs. The following
identities come from the frozen matrix's manifest fields.
Full source identities, reviewed revisions, member paths and hashes also
remain in the ledger. Hashes identify ARTIFACT.yaml, not an upstream source
commit. Each example uses the accepted member at the inputs commit.
| Example | Run ID | Manifest SHA-256 |
|---|---|---|
| A-MEM | AAS-2026-10-16-a-mem-sys-eff95cd80440-01 |
16fad56f4a88e833d4c0f5ffa129af99bca8a0383acbd6799d2dc99b28cd2f28 |
| cass_memory_system | AAS-2026-10-13-cass-memory-system-30c18219cf68-01 |
2dcdb811124058cacf2dcde3b50b127dc826f2a8e603fb06ef92531b910c4729 |
| CQ | AAS-2026-10-14-cq-8fb3dc41c334-01 |
8d2fcd66aa8707273424c810f716e9203b9f7c90be7296a5b1a10666c7d415aa |
| Hindsight | AAS-2026-10-14-hindsight-34c2ca821edf-01 |
3e9e67f75bff2a28a6ffc32ceb894615058008641f960da1e24bc9d70fb38579 |
| llm-wiki-newsroom | AAS-2026-11-08-llm-wiki-newsroom-ea04687a5ff6-01 |
f16203ad8057cd9261819ac693dfc60e5eadd949f04f1afb80834032daf05bf0 |
| pi-self-learning | AAS-2026-10-15-pi-self-learning-1a318610d4b1-01 |
903a6b625bf0d805a25d222dec241e857cf9bf8d0fe8677b009ff5e1832e0984 |
| REM | AAS-2026-10-14-rem-a81fdc774400-01 |
0e45470aeb4b227b6deb7877ab75e9cc4db0199c9c6cf5aa590506243d3a3dee |
| Signet | AAS-2026-10-14-signetai-64f703d83203-01 |
4eb6367fe3884963d0c083b7c276bef866a089d4bcc8a1f0680bf1d7401bece9 |
| SkillRL | AAS-2026-10-14-skillrl-0dba0e1c895e-01 |
9771fa25ae76ce88c6efdfc88fb4e126b1abe0bd3fac23ae510761d4acb361f4 |
| team-ai-workflows | AAS-2026-11-09-team-ai-workflows-c00fb85f7ed1-01 |
3bbf81f1b11585b33fbc615ee2c7dcc994fee3f77782075805ecba7cd11b7c40 |
| AgeMem | AAS-2026-10-12-2601-01885v1-32274e5bddc1-01 |
ec5ef488e3864432af6583e3410daeba596badd0839a85b58c257f4f7322306e |
| Nimbalyst Wiki | AAS-2026-11-08-nimbalyst-wiki-d9ff54186a76-01 |
0d48a874284207505fa604f5447fc3c1798179c57f4b9a10110f08cf90562a4f |
Withheld conclusions and evidence gaps
- Prevalence, exclusivity and rankings: incomplete inventories prevent population shares or claims such as “only pull,” “no human control” or “files only” from missing positive witnesses. Named mechanisms establish examples, not prevalence of unstructured properties.
- Activation and benefit: wiring, delivery, model instructions, retained scores and experiment artifacts do not by themselves establish successful deployed use or improved task outcomes. No profile finding is causally supported.
- Semantic novelty and warrant: generated prose can compress, derive or invent. Without proposition-level input/output evidence, a model call does not settle which. Structural admission and provenance are not truth tests.
- Consumer completeness: truncation, optional context paths, separate stores and residual copies limit universal fidelity and withdrawal claims. No cross-system correction-coverage rate is inferred.
- Retained-set limits: partial units, opaque dependencies and verification limits remain operative. CQ and cass_memory_system retain coarse-part declaration issues outside the selected admission/inversion mechanisms; pi-self-learning retains a registration-count disagreement, not a disputed reflection route. Those issues are not repaired or silently generalized away here.
- Source-byte verification: selected validation logs include notices that some pinned source checkouts are unavailable for quotation checking. This synthesis checks committed accepted records, not upstream source bytes; it makes no fresh quotation-authentication claim or population-wide count of those notices.
- Change over time: this is one current snapshot. Counts do not establish growth, adoption trends or improvement relative to an older population. Historical outputs remain separate and are not pooled.
- Commonplace advice: design recommendations and transfer judgments are outside this public comparison.
Query ledger
Executable queries and dated outputs are retained in
scripts/memory_landscape_queries/. refresh.py uses the existing unit decoder
and strong-basis helper. Its outputs-2026-11-09/snapshot.json records revision
and tier strata, field names, tests, basis filters, numerator, denominator,
included runs and exclusions. Every assessment category is retained separately.
evidence.py extracts selected committed record sections and profile units
for semantic checking; it acquires no upstream evidence.
| Query family | Membership or coverage test | Published use |
|---|---|---|
| Population | revision/tier split; boundary-kind and cutoff census | Evidence boundary |
| Axis existence | any strong unit witness for value; each system once | Ten-axis table |
| Weak-only | value present, no strong unit witness | Ten-axis table and admission contrast |
| Complete eligibility | known axis; every positive unit finding strong | Withheld distributions |
| Basis census | every finding, separately by tier | Wiring/observation boundary |
| Manual admission | manual at any basis versus strong | 118 / 63 / 55 of 225 |
| Push selection | strong push with any strong inferred signal; separately no strong inferred signal | 71 / 108 of 179 push sets |
| Complete pull-only | known direction, strong set exactly pull, every finding strong | 4 of 225 |
| Storage | strong files set exactly {files}; any strong database-type substrate |
36 reported strong-only files; 123 with database witness |
| Curation | any strong synthesize; three to seven strong operation values | 12; 147 of 225 |
| Trace learning | strong yes/units; local no retained apart from system unions; strong yes plus model-weights | 160 yes; 6 local no; 1 system no; 4 weight co-occurrences |
The query results come from the frozen matrix; smoke checks cover ledger
structure and membership consistency. Historical outputs-2026-10-22/ remain
separate; this snapshot makes no numerical change claim against them.