{% extends "base.html" %} {% block title %}Semantic Memory — Maxim Docs | Agentic Robotics Framework{% endblock %} {% block meta_description %}How Maxim builds lasting knowledge. The ATL semantic memory, MemoryLayer protocol, cross-layer spreading activation, and NAc-driven promotion.{% endblock %} {% block meta_keywords %}Maxim semantic memory, ATL anterior temporal lobe, cross-layer graph, semantic promoter, memory layer, knowledge graph, concept memory, NAc promotion, spreading activation{% endblock %} {% block meta_author %}Maxim Project{% endblock %} {% block og_site_name %}Maxim{% endblock %} {% block og_type %}article{% endblock %} {% block structured_data %} {% endblock %} {% block content %}
MAXIM
How Maxim Builds Lasting Knowledge from Experience
Episodic memory records what happened. Semantic memory captures what things mean. Humans don't remember the exact moment they learned that fire is hot — they just know it. That knowledge was distilled from many episodes into a concept. Maxim implements this same progression: repeated experiences get promoted from episodic memories into stable semantic concepts.
The brain separates memory into episodic (hippocampus — personal experiences), semantic (anterior temporal lobe — general knowledge), and procedural (cerebellum — motor skills). Damage to the ATL causes semantic dementia: patients can describe their wedding day (episodic) but can't explain what a "wedding" is (semantic). The two systems are anatomically distinct but deeply interconnected.
Maxim implements three memory layers, each handling a different kind of knowledge:
Episodic Memory
"What happened." Rich contextual records of observe→decide→act→evaluate cycles.
Semantic Memory
"What things mean." Concepts, facts, and relationships stripped of episodic context.
Mathematical Memory
"What the numbers say." Facts, formulas, methods, and learned statistical patterns.
All three layers implement the same abstract protocol, enabling the MemoryHub and CrossLayerGraph to work with any layer uniformly:
All three layers share a common base record type (MemoryRecord) with fields for ID, timestamps, access tracking, and long-term status. Each layer extends this with domain-specific fields.
| Layer | Record Type | Key Fields | Compressed Form |
|---|---|---|---|
| Hippocampus | EpisodicMemory | perception, context, decision, action, outcome, run_id | CompressedMemory |
| ATL | SemanticMemory | name, definition, category, properties, provenance, confidence | CompressedSemantic |
| Angular Gyrus | MathRecord | name, category, domain, verbal, code, confidence | CompressedMathRecord |
The anterior temporal lobe is the brain's "semantic hub" — where concepts are stored independently of the episodes that formed them. You know that dogs bark, have four legs, and are pets, without remembering the specific experiences that taught you this. The ATL integrates information from multiple sensory modalities into amodal concept representations.
Maxim's ATL stores SemanticMemory objects — concepts with names, definitions, properties, and typed relationships to other concepts. It mirrors the Hippocampus architecture (context indexing, associative graph, consolidation) but with slower decay and higher stability.
Every concept knows how it was formed, enabling the system to weight newer, less-verified concepts differently from well-established ones:
Extracted from repeated episodes via NAc reward signals. The most common path — "I've seen this pattern enough times to call it knowledge."
Proposed by the StatisticianAgent from confirmed operational patterns. "The data shows this is a real trend, not noise."
From RAG / document ingestion. Knowledge imported directly without episodic formation.
Multiple sources contributed. Both episodic observation and statistical confirmation.
Concepts in the brain aren't isolated labels — they're rich nodes linking back to the experiences that formed them. The concept "dog" connects to episodic memories of specific dogs, motor programs for petting, and statistical expectations about behavior. This multi-modal grounding is what gives concepts their meaning. Maxim's Concept class mirrors this: each concept maintains cross-layer references back to its source memories.
The Concept class extends SemanticMemory with a memory_refs dictionary that tracks which records in each memory layer are associated with this concept. This provides the backbone for concept extraction, grounding, pattern completion, and context building.
The memory_refs uses dict[str, None] (not set) as an ordered set. This guarantees true FIFO pruning when refs exceed MAX_REFS_PER_LAYER (200) — the oldest references are evicted first, preserving recency ordering without sorting overhead.
Concepts respect the same capacity management as other memory records:
The ConceptExtractor runs as an async background worker that continuously transforms raw episodic memories into concept references. When Hippocampus captures a new episode, the extractor queues it for processing on a dedicated thread — never blocking the agent's perception-decision-action loop.
Goal strings and tool names are split into meaningful tokens via normalize_tokens(). This handles underscores, camelCase, and common separators:
"navigate_to_kitchen"
→ ["navigate", "kitchen"]
"graspObject"
→ ["grasp", "object"]
Stop words ("to", "the", "a", "is", etc.) are filtered out. The extractor also handles compression callbacks — when an episode is compressed, its refs are migrated to the compressed record's ID.
In neuroscience, "grounding" is the process of connecting abstract symbols to sensory experience. The concept "heavy" isn't just a word — it's grounded in the felt experience of lifting heavy things. The parietal cortex (IPS/Angular Gyrus) provides this mathematical grounding: converting raw observations into statistical summaries that give concepts quantitative meaning.
The ConceptGrounder transforms raw episodic references into statistical summaries stored in the Angular Gyrus. When a concept accumulates enough episode references, the grounder extracts numerical properties (salience, novelty, success rate) and runs them through the IPS→AG pipeline to produce MathMemory records.
| Property | Source | AG Record | Example Verbal |
|---|---|---|---|
| Salience | perception.salience across episodes | MathMemory | "mug salience: mean=0.78, std=0.12" |
| Novelty | perception.novelty across episodes | MathMemory | "mug novelty: mean=0.35, std=0.21" |
| Success Rate | outcome.success across episodes | MathMemory | "mug success rate: 0.875 (7/8)" |
When two concepts frequently appear in the same episodes, the grounder strengthens the relationship between them via Jaccard similarity on their shared episode sets. If concepts A and B share 6 out of 10 episodes (J=0.6), the grounder creates or reinforces a RELATED_TO edge with weight proportional to co-occurrence.
Concepts in isolation aren't knowledge — knowledge is the relationships between concepts. The ATL uses a Semantics manager that wraps the DependencyGraph with typed, directional edges.
| Type | Symmetric? | Example |
|---|---|---|
| IS_A | No | "coffee_mug" IS_A "container" |
| HAS_PART | No | "robot_arm" HAS_PART "gripper" |
| CAUSES | No | "grasp_action" CAUSES "object_held" |
| TRENDS_WITH | Yes | "navigate_failures" TRENDS_WITH "goal_latency" |
| CORRELATES_WITH | Yes | Confirmed by AG cross-metric correlation |
| PHASE_LOCKED_TO | No | "success_rate" PHASE_LOCKED_TO "circadian" (metadata: phase, coupling) |
| PREDICTS | No | "morning_activity" PREDICTS "high_success" |
The RelationshipRegistry also supports runtime extension — agents can propose new relationship types during operation. The registry tracks whether each type is built-in or agent-proposed, and persists across sessions.
Each memory layer has its own internal associative graph. The CrossLayerGraph connects records across layers, enabling queries like "starting from this episode, what concepts and math patterns are related?"
The most powerful feature is cross-layer spreading activation. Starting from any record in any layer, activation spreads:
Starting from a Hippocampus episode where tool_navigate failed:
Memory consolidation during sleep transforms labile hippocampal traces into stable neocortical representations. The NAc (reward system) plays a gating role — rewarding experiences are preferentially consolidated. This is why emotionally significant events become lasting knowledge while mundane details fade.
The SemanticPromoter orchestrates the progression from episodic observations to stable semantic knowledge. It scans multiple PromotionSources for qualifying patterns, filters noise, and creates ATL concepts with full cross-layer traceability.
Any system that detects patterns can be a promotion source. It just needs one method:
NAc tracks event→outcome links via Rescorla-Wagner learning. When a causal link reaches sufficient confidence and observation count, it becomes a promotion candidate.
Example: "grasp + coffee_mug → success" observed 5 times with confidence 0.8 → promote to ATL concept "grasping coffee mugs is reliable" with DERIVED_FROM edges to source episodes.
Confirmed patterns from the IPS→AG escalation pipeline become candidates. No episodic IDs needed — the AG MathRecord provides the evidence.
Example: "tool_navigate declining (R²=0.73)" → promote to ATL concept with provenance=AGENT_INFERENCE and STATISTICALLY_CONFIRMS cross-layer edge to the AG PATTERN record.
Not every NAc pattern deserves permanent semantic status. The IPS provides a lightweight noise filter before the heavyweight promotion machinery runs:
Promotion is part of the mandatory consolidation cycle during MemoryHub.on_session_end():
The ConceptContextBuilder provides real-time concept context during the agent's perception-decision loop. When the agent sees objects, people, or pursues a goal, the builder finds matching ATL concepts and enriches them with relationship data and AG statistics — all within a configurable time budget.
AG grounding involves IPS statistical assessment, which can be expensive for concepts with many episodes. The builder enforces a time budget (default 50ms) and gracefully degrades:
Full context: relationships + AG stats + grounding results.
Relationships + cached AG records. No new grounding.
Name + category + episode count only. Still useful for basic context.
When you see a friend reach for their coffee mug, your brain automatically predicts they're about to drink — before they do it. This is pattern completion: partial cues activate stored patterns, filling in the expected outcome. The hippocampus and neocortex collaborate: concepts activate associated episodes, which activate predicted actions and outcomes. Maxim's PatternCompleter implements exactly this chain.
The PatternCompleter predicts likely outcomes for a partially-formed episode by traversing the concept graph. When a new episode is forming (has perception + context, but no decision/action/outcome yet), the completer chains: matching concepts → linked episodes → past outcomes.
Each prediction is a typed dataclass with full traceability back to the source episode and optional mathematical enrichment:
PatternCompleter is created by MemoryHub during multi-layer wiring and connected to MemoryAgent via set_pattern_completion_fn(completer.complete). During the FORMING stage of memory formation, MemoryAgent calls the completion function to get predictions before the agent commits to a decision.
From full EpisodicMemory records: uses decision.confidence, action.tool_name, outcome.success, and decision.intent for goal.
From CompressedMemory records: uses the compressed fields directly. Confidence defaults to 0.3 (less certain than full episodic recall).
The point of all this is to make the agent smarter. Knowledge flows into the LLM's reasoning context via two channels in StructuredContext:
Merged ATL concepts + AG patterns via cross-layer spreading activation. Broad, session-level knowledge.
Ranked by relevance, capped at 8 entries.
Live concept context from ConceptContextBuilder. Percept-specific: only concepts matching current objects/people/goal.
Includes relationships, AG stats, budget-bounded grounding.
Together, these channels give the LLM a unified "what do I know about what I'm seeing?" view: broad knowledge context for general reasoning, live concept context for what's currently perceived, and pattern predictions for what's likely to happen next.