AI & LLMsDocumentedScanned

amygdala-memory

Emotional processing layer for AI agents.

Share:

Installation

npx clawhub@latest install amygdala-memory

View 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:

DimensionWhat It MeasuresRange
ValencePositive ↔ Negative mood-1.0 to 1.0
ArousalCalm ↔ Excited/Alert0.0 to 1.0
ConnectionDistant ↔ Close/Bonded0.0 to 1.0
CuriosityBored ↔ Fascinated0.0 to 1.0
EnergyDepleted ↔ Energized0.0 to 1.0

Quick Start

1. Install

cd ~/.openclaw/workspace/skills/amygdala-memory
./install.sh --with-cron

This will:

  • Create memory/emotional-state.json with 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

ScriptPurpose
install.shSet up amygdala-memory (run once)
get-state.shRead current emotional state
update-state.shLog emotion or update dimension
load-emotion.shHuman-readable state for session context
decay-emotion.shReturn to baseline over time
sync-state.shGenerate AMYGDALA_STATE.md for auto-injection
encode-pipeline.shLLM-based emotional encoding from transcripts
preprocess-emotions.shExtract emotional signals from session history
update-watermark.shTrack processed transcript position
generate-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 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.json exists)

  • ⭐ Drive β€” VTA (if 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.

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:

  • New session starts

  • AMYGDALA_STATE.md is auto-loaded (no manual step!)

  • You see your emotional state in context

  • Responses are influenced by your mood
  • 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:

    EmotionEffect
    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

    PartFunctionStatus
    [hippocampus]()Memory formation, decay, reinforcementβœ… Live
    amygdala-memoryEmotional 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