Engramai
by @shing19
Neuroscience-grounded memory for AI agents. Add, recall, and manage memories with ACT-R activation, Hebbian learning, and cognitive consolidation.
clawhub install engramaiπ About This Skill
name: engramai description: Neuroscience-grounded memory for AI agents. Add, recall, and manage memories with ACT-R activation, Hebbian learning, and cognitive consolidation. homepage: https://github.com/tonitangpotato/neuromemory-ai metadata: {"clawdbot":{"emoji":"π§ ","requires":{"bins":["python3"],"packages":{"pip":["engramai"]}}}}
engramai π§
Cognitive memory system implementing ACT-R activation, Memory Chain consolidation, Ebbinghaus forgetting, and Hebbian learning.
Installation
pip install engramai
Quick Start
from engram import Memorymem = Memory("./agent.db")
mem.add("User prefers concise answers", type="relational", importance=0.8)
results = mem.recall("user preferences", limit=5)
mem.consolidate() # Daily maintenance
CLI Usage
# Add a memory
neuromem add "User prefers dark mode" --type preference --importance 0.8Recall memories
neuromem recall "user preferences"View statistics
neuromem statsRun consolidation (like sleep)
neuromem consolidatePrune weak memories
neuromem forget --threshold 0.01List memories
neuromem list --limit 20Show Hebbian links
neuromem hebbian "dark mode"
AI Agent Integration (Important!)
For AI agents to use engram correctly, follow these patterns:
When to Call What
| Trigger | Action | Example |
|---------|--------|---------|
| Learn user preference | store(type="relational") | "User prefers concise answers" |
| Learn important fact | store(type="factual") | "Project uses Python 3.12" |
| Learn how to do something | store(type="procedural") | "Deploy requires running tests first" |
| Question about history | recall() first, then answer | "What did I say about X?" |
| User satisfied | reward("positive feedback") | Strengthens recent memories |
| User unsatisfied | reward("negative feedback") | Suppresses recent memories |
| Daily maintenance | consolidate() + forget() | Run via cron or heartbeat |
What to Store
β Store:
β Don't store:
Importance Guide
| Level | Use For | |-------|---------| | 0.9-1.0 | Critical info (API keys location, absolute preferences) | | 0.7-0.8 | Important (code style, project structure) | | 0.5-0.6 | Normal (general facts, experiences) | | 0.3-0.4 | Low priority (casual chat, temp notes) |
Hybrid Mode (Recommended)
Use engram alongside file-based memory:
Heartbeat Maintenance
Add to your heartbeat or cron:
## Memory Maintenance (Daily)
[ ] engram.consolidate
[ ] engram.forget --threshold 0.01
Memory Types
factual β Facts and knowledgeepisodic β Events and experiences relational β Relationships and preferencesemotional β Emotional momentsprocedural β How-to knowledgeopinion β Beliefs and opinionsMCP Server
For Claude/Cursor/Clawdbot integration:
python -m engram.mcp_server --db ./agent.db
MCP Config (Clawdbot):
mcp:
servers:
engram:
command: python3
args: ["-m", "engram.mcp_server"]
env:
ENGRAM_DB_PATH: ~/.clawdbot/agents/main/memory.db
Tools: engram.store, engram.recall, engram.consolidate, engram.forget, engram.reward, engram.stats, engram.export
Key Features
| Feature | Description | |---------|-------------| | ACT-R Activation | Retrieval ranked by recency Γ frequency Γ context | | Memory Chain | Dual-system consolidation (working β core) | | Ebbinghaus Forgetting | Natural decay with spaced repetition | | Hebbian Learning | "Neurons that fire together wire together" | | Confidence Scoring | Metacognitive monitoring | | Reward Learning | User feedback shapes memory | | Zero Dependencies | Pure Python stdlib + SQLite |
Links
π‘ Examples
from engram import Memorymem = Memory("./agent.db")
mem.add("User prefers concise answers", type="relational", importance=0.8)
results = mem.recall("user preferences", limit=5)
mem.consolidate() # Daily maintenance