Meaning Memory scores what kind of memory each entry is, across five orthogonal dimensions that compose into structured cognition for agent fleets.
Significance is the foundational dimension, the one every other memory system gets approximately right and then stops. Meaning Memory treats it as a first-class composite, not a scalar.
Every memory carries two significance scores: sig_self (how
important the agent thinks it is) and sig_external (how
important the operator's policy thinks it is). When they diverge, the
system records the divergence and the rationale. This is the
encoding-compliance moat, a dual-write architecture where an
extractor-LLM catches the moments the agent forgot to remember, with
STARE Sig arbitrating which write survives merge.
Probabilistic LLM agents silently fail to call mm_remember
in the moments that matter. No retrieval, decay, or calibration system
can recover what was never written. Significance, measured twice,
arbitrated deterministically, is what closes the encoding hole.
mm_remember().
In every other memory system, that statement is lost. In Meaning Memory,
the passive extractor catches it, scores it (sig 0.92, high), and the
operator's churn-risk playbook escalates the next interaction.
The agent's miss didn't cost the company the customer. sig_self + sig_external columns on every
entry. divergence_rationale for audit. Operator-controllable
sig floor (0.0–1.0) per tenant, per playbook. Significance composes
multiplicatively with richness boost in Phase 4 compile + retrieval ranking.
Temporal is more than a timestamp. Every memory in Meaning Memory carries three time signals: when it was observed, when it becomes valid, and when it stops mattering.
A decay curve, operator-configurable per playbook, defines how
significance fades. Some memories decay fast (today's traffic numbers).
Some never decay (a customer's allergy). Meaning Memory tracks both
decay and validity windows: a fact can be temporally valid for
a finite period (valid_from → valid_until)
even if its significance never decays.
KV caches solve freshness with TTL. Vector stores solve recency with score boosts. Neither captures the truth that some memories fade and some expire and some stay forever, and which is which is a governance question, not a heuristic.
valid_until=15:00
marked it temporally invalid the moment the review closed, and the
audit trail shows exactly when, why, and which event triggered the
transition.
valid_from / valid_until columns. Decay curves
shipped per playbook (exponential, step-function, sigmoid). Phase 4
compile honors both, expired memories disappear from the projection
but remain in the ledger for audit.
Asymmetry, also called Attribution, is the dimension most memory systems fake with post-hoc filtering. In Meaning Memory, every memory carries explicit attribution and trust gradients native to the data model.
In multi-agent deployments, this matters enormously. The same statement
("our churn rate is 4.2%") from the CFO and from a customer comment
should not carry the same retrieval weight. Asymmetry encodes the
trust gradient: asymmetry_modifiers is a JSONB
field per entry, and _asymmetry_scale() multiplies into
retrieval ranking.
Enterprise multi-agent fleets are political ecosystems. Marketing's agent sees one version of "true." Engineering's sees another. Legal's sees a third. Without attribution as a first-class primitive, cross-agent memory becomes either dangerously homogenized or frustratingly siloed. Asymmetry lets you have shared facts with trust-aware retrieval.
_asymmetry_scale()
weights the engineering attribution highest, same fact, different
trust gradient, deterministic ranking.
a_score NUMERIC + asymmetry_modifiers JSONB
on every entry. Writer attribution captured at mm_remember()
time. Retrieval-time multiplier applied per query. LLM extractor
recovers attribution from conversation context when the agent forgets
to set it explicitly.
Relational turns memories into a typed graph. Every
memory can carry typed edges to other memories, to agents, to documents,
to customers, to scope groups. Nine bounded edge types ship today
(:supersedes, :contradicts,
:references, :implies, …) plus
custom:* for domain-specific extensions.
Multi-hop traversal lets agents reason across the graph: "what other memories supersede this one?" "what does this fact contradict?" "show me the path from this customer ticket to the original bug report." Recursive CTE queries on Postgres return path-explain answers in single-digit milliseconds at fleet scale.
Vector similarity surfaces "memories that look like this." Relational edges surface "memories that matter to this." The first is retrieval. The second is reasoning. Production agent fleets need both.
mm_traverse_relationships(customer_id, depth=2)
and gets back: the original support ticket, the engineering bug it
references, the deploy that superseded the bug fix, the QA verification
memo that contradicts the deploy, and the cross-team channel that
captured the resolution debate. Five hops, one query, full
path-explain. r_score NUMERIC + mm_relationships typed-edge
table. mm_traverse_relationships(), mm_explain_path(),
mm_explore_relationships() MCP tools shipping in v3.10.1.
Recursive CTE with depth limits + intermediate-result truncation
guards against runaway traversal.
Episodic clusters memories into narrative arcs. A customer conversation isn't a list of facts, it's an episode with a beginning, a turning point, and a resolution. Most memory systems flatten that structure. Meaning Memory preserves it.
Every memory can carry an episode_id. The
mm_episodes summary table maintains aggregate metadata,
duration, dominant participants, narrative arc shape, dim signature.
Agents can query "summarize this episode" without loading every
underlying memory.
The unit of recall in human memory is not the fact. It's the episode. When you remember a conversation, you don't reconstruct it token-by-token, you replay the arc. Agent memory built on the same principle composes better, retrieves better, and audits better than fact-shaped retrieval.
e_score NUMERIC + episode_id UUID on every
entry. mm_episodes table aggregates per-episode metadata.
mm_episode_summary MCP tool returns narrative summaries.
Multi-step LLM extractor groups related observations into episodes
during Phase 2.
Every memory carries all 5 dimensions. Retrieval ranks them multiplicatively, not as a hierarchy. The result: structured cognition, not flat key-value recall. A memory that is high-significance + recently valid + from a trusted source + linked to current episode + connected to an active relational graph composes to the top of every query, without a single hand-tuned weight.
Memories don't just get written. They flow through a deterministic 5-phase pipeline, each phase has explicit success/failure semantics, watchdogs, and observability surfaces.
Three layers. Your agent fleet on top. Meaning Memory engine in the middle. Your storage and observability layer underneath, bring what you already trust.
STARE is a 5-dimensional model rooted in cognitive-science principles, refined through production agent-memory work, and shipped at GA maturity in v3.10.
Private beta gets the architecture deep-dive, the customer-kit (wheel + INSTALL.md + reference deployments), and a working session with the engineering team.
Request access