Features · The STARE Framework

Five dimensions of meaning.

Meaning Memory scores what kind of memory each entry is, across five orthogonal dimensions that compose into structured cognition for agent fleets.

SSignificance
TTemporal
AAsymmetry
RRelational
EEpisodic
Visual placeholder · 5D STARE radar
Minimalist 5-axis radar chart. MOMA aesthetic, black lines on white, gold accent fill (#c9a961). Labels: Significance, Temporal, Asymmetry, Relational, Episodic. Each axis 0.0–1.0. Two overlaid memory examples (high-sig narrative vs. low-sig observation). To be generated via Gemini / Nano Banana.
S
Significance
How important is this memory? And to whom?

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.

Why it matters

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.

Scenario
A customer-service agent is told "I'm thinking about cancelling, this is my third call about the same issue." The agent answers helpfully but never calls 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.
How Meaning Memory implements it

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.

T
Temporal
When did this happen? When does it become stale?

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_fromvalid_until) even if its significance never decays.

Why it matters

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.

Scenario
A developer agent learns at 9am: "The deploy is paused, security review in progress." At 3pm, the security review closes. In a TTL cache, the memory expired hours ago. In Meaning Memory, 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.
How Meaning Memory implements it

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.

A
Asymmetry
Who said this? Whose perspective? Whose trust?

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.

Why it matters

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.

Scenario
Three agents in the same scope group store the memory "the bug is in payments." One is the QA bot. One is a customer-service summary. One is the engineering on-call escalation. The retrieval-time _asymmetry_scale() weights the engineering attribution highest, same fact, different trust gradient, deterministic ranking.
How Meaning Memory implements it

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.

R
Relational
What does this memory connect to?

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.

Why it matters

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.

Scenario
A customer escalation comes in. The agent calls 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.
How Meaning Memory implements it

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.

E
Episodic
Is this part of a narrative arc?

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.

Why it matters

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.

Scenario
A multi-day support escalation involves 14 separate agent interactions. With episodic clustering, the on-call SRE asks for "the summary of episode 7a3f" and gets a 4-paragraph narrative, chronologically ordered, with the turning point highlighted, the participating agents attributed, and the eventual resolution linked. Without episodic clustering, that summary is 14 disconnected facts in a vector search blob.
How Meaning Memory implements it

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.

STARE dimensions compose multiplicatively.

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.

Visual placeholder · STARE composition flow
Diagram: memory entry → 5 parallel scoring lanes (S/T/A/R/E) → multiplicative composition → final retrieval score. Annotated with example values. MOMA aesthetic, line art, gold accent on critical flow paths. To be generated via Gemini / Nano Banana.

The 5-Phase Pipeline

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.

PHASE 0
Drain
Pending entries validated and moved to ready; failed entries quarantined with audit trail.
PHASE 1
Dedup
Embedding-based supersede detection. Identical-meaning entries merged with provenance preserved.
PHASE 2
Extract
LLM-driven STARE scoring. All 5 dimensions populated. Extractor catches what the agent forgot.
PHASE 3
Synthesize
Merge, supersede, contradict, link. Hash-chain audit event emitted for every state change.
PHASE 4
Compile
Deterministic MEMORY.md projection from PG canonical. Byte-identical on replay. Manifest-anchored.
Visual placeholder · pipeline flow diagram
Horizontal 5-stage flow with watchdog + sentinel + manifest emit callouts per phase. MOMA aesthetic. Annotated with retry semantics and SLO targets per stage. To be generated via Gemini / Nano Banana.

Architecture at a glance

Three layers. Your agent fleet on top. Meaning Memory engine in the middle. Your storage and observability layer underneath, bring what you already trust.

┌─────────────────────────────────────────────────────┐ │ Your AI Agent Fleet │ │ (Any framework · MCP · REST · Python SDK) │ └─────────────────────┬───────────────────────────────┘ │ ┌─────────────────────▼───────────────────────────────┐ │ Meaning Memory Engine │ │ ┌───────────────────────────────────────────────┐ │ │ │ STARE 5D primitives │ │ │ │ 5-phase deterministic pipeline │ │ │ │ Audit hash-chain · Run manifests │ │ │ │ Playbooks · Decay curves · Sig floor │ │ │ └───────────────────────────────────────────────┘ │ └────┬────────────────┬──────────────────┬────────────┘ │ Adapters │ Backend │ OTEL ┌────▼────────┐ ┌────▼──────────┐ ┌───▼──────────┐ │ Your │ │ PostgresBackend│ │ Your OTEL │ │ existing │ │ FileBackend │ │ exporter │ │ memory │ │ (pgvector + │ │ of choice │ │ layer │ │ GIN-indexed) │ │ │ └─────────────┘ └────────────────┘ └──────────────┘
Visual placeholder · architecture stack
Replace ASCII with proper line-art diagram. 3-layer stack, color-coded by tier. MOMA aesthetic. Show data flow arrows + adapter points. To be generated via Gemini / Nano Banana.

Grounded in cognitive-science principles.

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.

Want the deep technical brief?

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