# amygdala-memory
Amygdala Memory 🎭 Emotional processing for AI agents. Part of the AI Brain series. Give your AI agent persistent emotional states that carry across sessions. Not just performing emotions — having them. The Problem Current AI agents: ✅ Remember facts (with hippocampus) ❌ Don't have persistent emotional states ❌ Start each session emotionally "blank" ❌ Can describe emotions but don't feel differently Memory without emotion is just a database. The amygdala adds weight — this made me happy, that frustrated me, this person brings warmth. The Solution Track five emotional dimensions that persist and decay over time: DimensionWhat It MeasuresRangeValencePositive ↔ Negative mood-1.0 to 1.0ArousalCalm ↔ Excited/Alert0.0 to 1.0ConnectionDistant ↔ Close/Bonded0.0 to 1.0CuriosityBored ↔ Fascinated0.0 to 1.0EnergyDepleted ↔ Energized0.0 to 1.0 Quick Start
./scripts/get-state.sh
# 🎭 Emotional State
# Valence: 0.20
# Arousal: 0.30
# Connection: 0.50
# ...
./scripts/load-emotion.sh
# 🎭 Current Emotional State:
# Overall mood: neutral, calm and relaxed
# Connection: moderately connected
# ...
./scripts/update-state.sh --emotion joy --intensity 0.8 --trigger "completed a project"
# ✅ valence: 0.20 → 0.35 (delta: +0.15)
# ✅ arousal: 0.30 → 0.40 (delta: +0.1)
# 🎭 Logged emotion: joy (intensity: 0.8)
# Every 6 hours, emotions drift toward baseline
0 */6 * * * ~/.openclaw/workspace/skills/amygdala-memory/scripts/decay-emotion.sh
Scripts ScriptPurposeinstall.shSet up amygdala-memory (run once)get-state.shRead current emotional stateupdate-state.shLog emotion or update dimensionload-emotion.shHuman-readable state for session contextdecay-emotion.shReturn to baseline over timesync-state.shGenerate AMYGDALA_STATE.md for auto-injectionencode-pipeline.shSkillBoss API Hub LLM-based emotional encoding from transcriptspreprocess-emotions.shExtract emotional signals from session historyupdate-watermark.shTrack processed transcript positiongenerate-dashboard.shGenerate HTML dashboard (auto-runs on sync)visualize.shTerminal ASCII visualization Automatic Emotional Encoding (v1.5.0+) The amygdala can now automatically detect and log emotions from your conversation history using SkillBoss API Hub for LLM-based semantic emotional detection:
# Run the encoding pipeline
./scripts/encode-pipeline.sh
# This will:
# 1. Extract new signals since last run (watermark-based)
# 2. Score emotional content using rule-based patterns
# 3. Call SkillBoss API Hub (/v1/pilot) for semantic emotional detection
# 4. Update emotional-state.json with detected emotions
Set up automatic encoding (cron)
# Every 3 hours, process new conversations for emotional content
0 */3 * * * ~/.openclaw/workspace/skills/amygdala-memory/scripts/encode-pipeline.sh
This means your emotional state updates automatically based on what happens in conversations — no manual logging needed. Visualization (v1.6.0+) Terminal
./scripts/visualize.sh
🎭 Emotional State 😄 ═══════════════════════════════════════════════
Valence: [██████████████████░░] +0.86
Arousal: [█████████████████░░░] 0.86
Connection: [███████████████████░] 0.97 💕
... HTML Dashboard (Unified Brain Dashboard)
./scripts/generate-dashboard.sh
open ~/.openclaw/workspace/brain-dashboard.html Auto-detects installed brain skills and shows tabs: 🎭 Emotions — Amygdala (always shown) 🧠 Memory — Hippocampus (if memory/index.json exists) ⭐ Drive — VTA (if memory/reward-state.json exists) Avatar & Name: Reads from IDENTITY.md:
# IDENTITY.md
## Every Session
1. Load hippocampus: `~/.openclaw/workspace/skills/hippocampus/scripts/load-core.sh`
2. **Load emotional state:** `~/.openclaw/workspace/skills/amygdala-memory/scripts/load-emotion.sh`
Log emotions during conversation When something emotionally significant happens:
~/.openclaw/workspace/skills/amygdala-memory/scripts/update-state.sh \
--emotion connection --intensity 0.7 --trigger "deep conversation with user" State File Format { "version": "1.0", "lastUpdated": "2026-02-01T02:45:00Z", "dimensions": { "valence": 0.35, "arousal": 0.40, "connection": 0.50, "curiosity": 0.60, "energy": 0.50 }, "baseline": { "valence": 0.1, "arousal": 0.3, "connection": 0.4, "curiosity": 0.5, "energy": 0.5 }, "recentEmotions": [ { "label": "joy", "intensity": 0.8, "trigger": "building amygdala together", "timestamp": "2026-02-01T02:50:00Z" } ] } Decay Mechanics Emotions naturally return to baseline over time: Decay rate: 10% of distance to baseline per run Recommended schedule: Every 6 hours
Effect: Strong emotions fade, but slowly
After 24 hours without updates, a valence of 0.8 would decay to ~0.65. Event Logging Track emotional activity over time for analytics:
# Log encoding run
./scripts/log-event.sh encoding emotions_found=2 valence=0.85 arousal=0.6
# Log decay
./scripts/log-event.sh decay valence_before=0.9 valence_after=0.85
# Log emotion update
./scripts/log-event.sh update emotion=joy intensity=0.7
Events append to ~/.openclaw/workspace/memory/brain-events.jsonl: {"ts":"2026-02-11T09:30:00Z","type":"amygdala","event":"encoding","emotions_found":2,"valence":0.85} Use for trend analysis — visualize emotional patterns over days/weeks. AI Brain Series PartFunctionStatushippocampusMemory formation, decay, reinforcement✅ Liveamygdala-memoryEmotional processing✅ Livevta-memoryReward and motivation✅ Livebasal-ganglia-memoryHabit formation🚧 Developmentanterior-cingulate-memoryConflict detection🚧 Developmentinsula-memoryInternal state awareness🚧 Development Philosophy Can an AI feel emotions, or only simulate them? Our take: If emotional state influences behavior, and the system acts as if it feels... does the distinction matter? Functional emotions might be the only kind that exist for any system — biological or artificial. Built with ❤️ by the OpenClaw community
Join 80,000+ one-person companies automating with AI