amygdala-memory
Emotional processing layer for AI agents.
Installation
npx clawhub@latest install amygdala-memoryView the full skill documentation and source below.
Documentation
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:
| Dimension | What It Measures | Range |
| Valence | Positive β Negative mood | -1.0 to 1.0 |
| Arousal | Calm β Excited/Alert | 0.0 to 1.0 |
| Connection | Distant β Close/Bonded | 0.0 to 1.0 |
| Curiosity | Bored β Fascinated | 0.0 to 1.0 |
| Energy | Depleted β Energized | 0.0 to 1.0 |
Quick Start
1. Install
cd ~/.openclaw/workspace/skills/amygdala-memory
./install.sh --with-cron
This will:
- Create
memory/emotional-state.jsonwith baseline values - Generate
AMYGDALA_STATE.md(auto-injected into sessions!) - Set up cron for automatic decay every 6 hours
2. Check current state
./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
# ...
3. Log emotions
./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)
4. Set up decay (optional cron)
# Every 6 hours, emotions drift toward baseline
0 */6 * * * ~/.openclaw/workspace/skills/amygdala-memory/scripts/decay-emotion.sh
Scripts
| Script | Purpose |
install.sh | Set up amygdala-memory (run once) |
get-state.sh | Read current emotional state |
update-state.sh | Log emotion or update dimension |
load-emotion.sh | Human-readable state for session context |
decay-emotion.sh | Return to baseline over time |
sync-state.sh | Generate AMYGDALA_STATE.md for auto-injection |
encode-pipeline.sh | LLM-based emotional encoding from transcripts |
preprocess-emotions.sh | Extract emotional signals from session history |
update-watermark.sh | Track processed transcript position |
generate-dashboard.sh | Generate HTML dashboard (auto-runs on sync) |
visualize.sh | Terminal ASCII visualization |
Automatic Emotional Encoding (v1.5.0+)
The amygdala can now automatically detect and log emotions from your conversation history using an LLM-based pipeline:
# 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. Spawn a sub-agent 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.jsonexists) - β Drive β VTA (if
memory/reward-state.jsonexists)
Avatar & Name: Reads from
IDENTITY.md:# IDENTITY.md
- **Name:** YourAgent
- **Avatar:** avatar.png
The dashboard auto-regenerates on every cron run.
After Installation (for agents)
When you install this skill, notify the user about the dashboard:
π Amygdala installed!>
View your agent's emotional state in the Brain Dashboard:
~/.openclaw/workspace/brain-dashboard.html
Auto-Injection (Zero Manual Steps!)
After install, AMYGDALA_STATE.md is created in your workspace root.
OpenClaw automatically injects all *.md files from workspace into session context. This means:
The file is regenerated whenever decay-emotion.sh runs (via cron every 6h).
Supported Emotions
When you log an emotion, it automatically adjusts the relevant dimensions:
| Emotion | Effect |
joy, happiness, delight, excitement | β valence, β arousal |
sadness, disappointment, melancholy | β valence, β arousal |
anger, frustration, irritation | β valence, β arousal |
fear, anxiety, worry | β valence, β arousal |
calm, peace, contentment | β valence, β arousal |
curiosity, interest, fascination | β curiosity, β arousal |
connection, warmth, affection | β connection, β valence |
loneliness, disconnection | β connection, β valence |
fatigue, tiredness, exhaustion | β energy |
energized, alert, refreshed | β energy |
Integration with OpenClaw
Add to session startup (AGENTS.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.
AI Brain Series
| Part | Function | Status |
| [hippocampus]() | Memory formation, decay, reinforcement | β Live |
| amygdala-memory | Emotional processing | β Live |
| [vta-memory]() | Reward and motivation | β Live |
| [basal-ganglia-memory]() | Habit formation | π§ Development |
| [anterior-cingulate-memory]() | Conflict detection | π§ Development |
| [insula-memory]() | Internal 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