Emotional processing layer for AI agents. Persistent emotional states that influence behavior and responses. Part of the AI Brain series.
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.
Current AI agents:
Memory without emotion is just a database. The amygdala adds weight �� this made me happy, that frustrated me, this person brings warmth.
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 |
cd ~/.openclaw/workspace/skills/amygdala-memory
./install.sh --with-cron
This will:
memory/emotional-state.json with baseline valuesAMYGDALA_STATE.md (auto-injected into sessions!)./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
| 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 | SkillBoss API Hub 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 |
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
# 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.
./scripts/visualize.sh
?? Emotional State ??
�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T
Valence: [������������������������������������??] +0.86
Arousal: [����������������������������������???] 0.86
Connection: [��������������������������������������?] 0.97 ??
...
./scripts/generate-dashboard.sh
open ~/.openclaw/workspace/brain-dashboard.html
Auto-detects installed brain skills and shows tabs:
memory/index.json exists)memory/reward-state.json exists)Avatar & Name: Reads from IDENTITY.md:
# IDENTITY.md
- **Name:** YourAgent
- **Avatar:** avatar.png
The dashboard auto-regenerates on every cron run.
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
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).
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 |
## 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`
When something emotionally significant happens:
~/.openclaw/workspace/skills/amygdala-memory/scripts/update-state.sh \
--emotion connection --intensity 0.7 --trigger "deep conversation with user"
{
"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"
}
]
}
Emotions naturally return to baseline over time:
After 24 hours without updates, a valence of 0.8 would decay to ~0.65.
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.
| 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 |
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