NeuralMemory — Associative Memory for AI Agents
A biologically-inspired memory system that uses spreading activation instead of keyword/vector search. Memories form a neural graph where neurons connect via 20 typed synapses. Frequently co-accessed memories strengthen their connections (Hebbian learning). Stale memories decay naturally. Contradictions are auto-detected.
Why not just vector search? Vector search finds documents similar to your query. NeuralMemory finds conceptually related memories through graph traversal — even when there's no keyword or embedding overlap. "What decision did we make about auth?" activates time + entity + concept neurons simultaneously and finds the intersection.
Setup
1. Install NeuralMemory
pip install neural-memory
nmem init
This creates ~/.neuralmemory/ with a default brain and configures MCP automatically.
2. Configure MCP for OpenClaw
Add to your OpenClaw MCP configuration (~/.openclaw/mcp.json or project openclaw.json):
{
"mcpServers": {
"neural-memory": {
"command": "python3",
"args": ["-m", "neural_memory.mcp"],
"env": {
"NEURALMEMORY_BRAIN": "default"
}
}
}
}
3. Verify
nmem stats
You should see brain statistics (neurons, synapses, fibers).
Tools Reference
Core Memory Tools
| Tool |
Purpose |
When to Use |
nmem_remember |
Store a memory |
After decisions, errors, facts, insights, user preferences |
nmem_recall |
Query memories |
Before tasks, when user references past context, "do you remember..." |
nmem_context |
Get recent memories |
At session start, inject fresh context |
nmem_todo |
Quick TODO with 30-day expiry |
Task tracking |
Intelligence Tools
| Tool |
Purpose |
When to Use |
nmem_auto |
Auto-extract memories from text |
After important conversations — captures decisions, errors, TODOs automatically |
nmem_recall (depth=3) |
Deep associative recall |
Complex questions requiring cross-domain connections |
nmem_habits |
Workflow pattern suggestions |
When user repeats similar action sequences |
Management Tools
| Tool |
Purpose |
When to Use |
nmem_health |
Brain health diagnostics |
Periodic checkup, before sharing brain |
nmem_stats |
Brain statistics |
Quick overview of memory counts |
nmem_version |
Brain snapshots and rollback |
Before risky operations, version checkpoints |
nmem_transplant |
Transfer memories between brains |
Cross-project knowledge sharing |
Workflow
At Session Start
- Call
nmem_context to inject recent memories into your awareness
- If user mentions a specific topic, call
nmem_recall with that topic
During Conversation
- When a decision is made:
nmem_remember with type="decision"
- When an error occurs:
nmem_remember with type="error"
- When user states a preference:
nmem_remember with type="preference"
- When asked about past events:
nmem_recall with appropriate depth
At Session End
- Call
nmem_auto with action="process" on important conversation segments
- This auto-extracts facts, decisions, errors, and TODOs
Examples
Remember a decision
nmem_remember(
content="Use PostgreSQL for production, SQLite for development",
type="decision",
tags=["database", "infrastructure"],
priority=8
)
Recall with spreading activation
nmem_recall(
query="database configuration for production",
depth=1,
max_tokens=500
)
Returns memories found via graph traversal, not keyword matching. Related memories (e.g., "deploy uses Docker with pg_dump backups") surface even without shared keywords.
Trace causal chains
nmem_recall(
query="why did the deployment fail last week?",
depth=2
)
Follows CAUSED_BY and LEADS_TO synapses to trace cause-and-effect chains.
Auto-capture from conversation
nmem_auto(
action="process",
text="We decided to switch from REST to GraphQL because the frontend needs flexible queries. The migration will take 2 sprints. TODO: update API docs."
)
Automatically extracts: 1 decision, 1 fact, 1 TODO.
Key Features
- Zero LLM dependency — Pure algorithmic: regex, graph traversal, Hebbian learning
- Spreading activation — Associative recall through neural graph, not keyword/vector search
- 20 synapse types — Temporal (BEFORE/AFTER), causal (CAUSED_BY/LEADS_TO), semantic (IS_A/HAS_PROPERTY), emotional (FELT/EVOKES), conflict (CONTRADICTS)
- Memory lifecycle — Short-term → Working → Episodic → Semantic with Ebbinghaus decay
- Contradiction detection — Auto-detects conflicting memories, deprioritizes outdated ones
- Hebbian learning — "Neurons that fire together wire together" — memory improves with use
- Temporal reasoning — Causal chain traversal, event sequences, temporal range queries
- Brain versioning — Snapshot, rollback, diff brain state
- Brain transplant — Transfer filtered knowledge between brains
- Vietnamese + English — Full bilingual support for extraction and sentiment
Depth Levels
| Depth |
Name |
Speed |
Use Case |
| 0 |
Instant |
<10ms |
Quick facts, recent context |
| 1 |
Context |
~50ms |
Standard recall (default) |
| 2 |
Habit |
~200ms |
Pattern matching, workflow suggestions |
| 3 |
Deep |
~500ms |
Cross-domain associations, causal chains |
Notes
- Memories are stored locally in SQLite at
~/.neuralmemory/brains/<brain>.db
- No data is sent to external services (unless optional embedding provider is configured)
- Brain isolation: each brain is independent, no cross-contamination
nmem_remember returns fiber_id for reference tracking
- Priority scale: 0 (trivial) to 10 (critical), default 5
- Memory types: fact, decision, preference, todo, insight, context, instruction, error, workflow, reference
1---2name: neural-memory3description: Associative memory with spreading activation for persistent, intelligent recall. Use PROACTIVELY when: (1) You need to remember facts, decisions, errors, or context across sessions (2) User asks "do you remember..." or references past conversations (3) Starting a new task — inject relevant context from memory (4) After making decisions or encountering errors — store for future reference (5) User asks "why did X happen?" — trace causal chains through memory Zero LLM dependency. Neural graph with Hebbian learning, memory decay, contradiction detection, and temporal reasoning.4---56# NeuralMemory — Associative Memory for AI Agents78A biologically-inspired memory system that uses spreading activation instead of keyword/vector search. Memories form a neural graph where neurons connect via 20 typed synapses. Frequently co-accessed memories strengthen their connections (Hebbian learning). Stale memories decay naturally. Contradictions are auto-detected.910**Why not just vector search?** Vector search finds documents similar to your query. NeuralMemory finds *conceptually related* memories through graph traversal — even when there's no keyword or embedding overlap. "What decision did we make about auth?" activates time + entity + concept neurons simultaneously and finds the intersection.1112## Setup1314### 1. Install NeuralMemory1516```bash17pip install neural-memory18nmem init19```2021This creates `~/.neuralmemory/` with a default brain and configures MCP automatically.2223### 2. Configure MCP for OpenClaw2425Add to your OpenClaw MCP configuration (`~/.openclaw/mcp.json` or project `openclaw.json`):2627```json28{29 "mcpServers": {30 "neural-memory": {31 "command": "python3",32 "args": ["-m", "neural_memory.mcp"],33 "env": {34 "NEURALMEMORY_BRAIN": "default"35 }36 }37 }38}39```4041### 3. Verify4243```bash44nmem stats45```4647You should see brain statistics (neurons, synapses, fibers).4849## Tools Reference5051### Core Memory Tools5253| Tool | Purpose | When to Use |54|------|---------|-------------|55| `nmem_remember` | Store a memory | After decisions, errors, facts, insights, user preferences |56| `nmem_recall` | Query memories | Before tasks, when user references past context, "do you remember..." |57| `nmem_context` | Get recent memories | At session start, inject fresh context |58| `nmem_todo` | Quick TODO with 30-day expiry | Task tracking |5960### Intelligence Tools6162| Tool | Purpose | When to Use |63|------|---------|-------------|64| `nmem_auto` | Auto-extract memories from text | After important conversations — captures decisions, errors, TODOs automatically |65| `nmem_recall` (depth=3) | Deep associative recall | Complex questions requiring cross-domain connections |66| `nmem_habits` | Workflow pattern suggestions | When user repeats similar action sequences |6768### Management Tools6970| Tool | Purpose | When to Use |71|------|---------|-------------|72| `nmem_health` | Brain health diagnostics | Periodic checkup, before sharing brain |73| `nmem_stats` | Brain statistics | Quick overview of memory counts |74| `nmem_version` | Brain snapshots and rollback | Before risky operations, version checkpoints |75| `nmem_transplant` | Transfer memories between brains | Cross-project knowledge sharing |7677## Workflow7879### At Session Start801. Call `nmem_context` to inject recent memories into your awareness812. If user mentions a specific topic, call `nmem_recall` with that topic8283### During Conversation843. When a decision is made: `nmem_remember` with type="decision"854. When an error occurs: `nmem_remember` with type="error"865. When user states a preference: `nmem_remember` with type="preference"876. When asked about past events: `nmem_recall` with appropriate depth8889### At Session End907. Call `nmem_auto` with action="process" on important conversation segments918. This auto-extracts facts, decisions, errors, and TODOs9293## Examples9495### Remember a decision96```97nmem_remember(98 content="Use PostgreSQL for production, SQLite for development",99 type="decision",100 tags=["database", "infrastructure"],101 priority=8102)103```104105### Recall with spreading activation106```107nmem_recall(108 query="database configuration for production",109 depth=1,110 max_tokens=500111)112```113Returns memories found via graph traversal, not keyword matching. Related memories (e.g., "deploy uses Docker with pg_dump backups") surface even without shared keywords.114115### Trace causal chains116```117nmem_recall(118 query="why did the deployment fail last week?",119 depth=2120)121```122Follows CAUSED_BY and LEADS_TO synapses to trace cause-and-effect chains.123124### Auto-capture from conversation125```126nmem_auto(127 action="process",128 text="We decided to switch from REST to GraphQL because the frontend needs flexible queries. The migration will take 2 sprints. TODO: update API docs."129)130```131Automatically extracts: 1 decision, 1 fact, 1 TODO.132133## Key Features134135- **Zero LLM dependency** — Pure algorithmic: regex, graph traversal, Hebbian learning136- **Spreading activation** — Associative recall through neural graph, not keyword/vector search137- **20 synapse types** — Temporal (BEFORE/AFTER), causal (CAUSED_BY/LEADS_TO), semantic (IS_A/HAS_PROPERTY), emotional (FELT/EVOKES), conflict (CONTRADICTS)138- **Memory lifecycle** — Short-term → Working → Episodic → Semantic with Ebbinghaus decay139- **Contradiction detection** — Auto-detects conflicting memories, deprioritizes outdated ones140- **Hebbian learning** — "Neurons that fire together wire together" — memory improves with use141- **Temporal reasoning** — Causal chain traversal, event sequences, temporal range queries142- **Brain versioning** — Snapshot, rollback, diff brain state143- **Brain transplant** — Transfer filtered knowledge between brains144- **Vietnamese + English** — Full bilingual support for extraction and sentiment145146## Depth Levels147148| Depth | Name | Speed | Use Case |149|-------|------|-------|----------|150| 0 | Instant | <10ms | Quick facts, recent context |151| 1 | Context | ~50ms | Standard recall (default) |152| 2 | Habit | ~200ms | Pattern matching, workflow suggestions |153| 3 | Deep | ~500ms | Cross-domain associations, causal chains |154155## Notes156157- Memories are stored locally in SQLite at `~/.neuralmemory/brains/<brain>.db`158- No data is sent to external services (unless optional embedding provider is configured)159- Brain isolation: each brain is independent, no cross-contamination160- `nmem_remember` returns fiber_id for reference tracking161- Priority scale: 0 (trivial) to 10 (critical), default 5162- Memory types: fact, decision, preference, todo, insight, context, instruction, error, workflow, reference