Install
openclaw skills install brainmdNeuroplastic self-modifying runtime for AI agents. Creates a file-based 'brain' that learns from interactions: reflexes (fast-path responses), habits (learne...
openclaw skills install brainmdFile-based nervous system for AI agents. Behaviors that work get stronger. Behaviors that fail get weaker. Unused patterns decay. Mistakes leave scars.
brainmd gives your agent a persistent behavioral memory that survives session restarts. It's not a knowledge base — it's muscle memory. It tracks how the agent behaves, not what it knows.
Three layers complement each other:
| Layer | File | Purpose |
|---|---|---|
| brainmd | brain/weights/pathways.json | Behavioral reinforcement — what works, what doesn't |
| Long-term memory | MEMORY.md | Semantic facts — decisions, people, context |
| Daily log | memory/YYYY-MM-DD.md | Episodic notes — what happened today |
brainmd is the only layer that self-modifies. The others are written by the agent, not evolved by it.
clawhub install brainmd
Then initialize the brain in your workspace:
cd ~/.openclaw/workspace
./skills/brainmd/scripts/init-brain.sh brain/
This creates:
brain/
├── reflexes/ # Fast-path decision scripts
├── habits/
│ └── preferences.json
├── weights/
│ └── pathways.json # ← the core state file
├── cortex/
│ └── review.js # ← the self-review engine
└── mutations/ # Immutable audit log
Add a startup check so the agent reads its neural state at session start:
## 🧠 brainmd — Consult Your Brain
After reading memory files, check your neural state:
```bash
node ~/.openclaw/workspace/brain/cortex/review.js status
Before acting on anything non-trivial, scan for relevant pathways:
After notable outcomes, record them:
node brain/cortex/review.js record "pathway-name" true/false "what happened"
### Step 2 — HEARTBEAT.md
Wire the review cycle into your heartbeat so it runs automatically:
```markdown
## 🧠 brainmd Self-Check (every heartbeat)
```bash
node ~/.openclaw/workspace/brain/cortex/review.js review
node ~/.openclaw/workspace/brain/cortex/review.js status
On each heartbeat, ask yourself:
record <pathway> false "what happened"record <pathway> true "what worked"
### Step 3 — Seed Initial Pathways
Don't hypothesize — seed from real behavior. Run a few sessions first, then record what you observed:
```bash
node brain/cortex/review.js record "reflex:morning-briefing" true "Supplement reminders sent, user confirmed"
node brain/cortex/review.js record "habit:check-files-before-search" true "Read apartment-search.md before googling apartments"
node brain/cortex/review.js record "reflex:safe-file-deletion" false "Used xargs rm with bad grep, deleted workspace files"
Start with 5–10 pathways. Let the system grow from there.
node brain/cortex/review.js status
Output shows all pathways with visual weight bars, success rate, fire count, and last outcome. Use this to calibrate confidence before non-trivial actions.
# Something worked
node brain/cortex/review.js record "habit:remote-service-recovery" true "Fixed broken systemd service, used journalctl to diagnose"
# Something failed
node brain/cortex/review.js record "habit:bulk-subagent-spawning" false "Rate limited all 3 models by spawning 2 Opus agents simultaneously"
New pathways are auto-created at weight 0.30 (neurogenesis). Existing pathways update their stats.
node brain/cortex/review.js review
The cortex examines all pathways and applies reinforcement rules:
All changes are logged to mutations/ with timestamp and reason.
reflex:timing # Automatic, fast-path behaviors
habit:check-files # Learned patterns from repeated interaction
skill:osint-workflow # Acquired capabilities
instinct:safe-delete # Safety behaviors (start at high weight, floor at 0.8)
| Weight | Meaning | How to use |
|---|---|---|
| 0.8–1.0 | Proven, trusted | Act confidently, don't second-guess |
| 0.5–0.8 | Developing | Use but verify |
| 0.3–0.5 | Weak / new | Proceed carefully, double-check |
| < 0.3 | Failing / dying | Investigate before using; may need rethinking |
Edit thresholds in brain/cortex/review.js:
// Strengthen when success rate >= this
const STRENGTHEN_THRESHOLD = 0.8;
// Weaken when success rate < this
const WEAKEN_THRESHOLD = 0.5;
// Days of inactivity before decay starts
const DECAY_ONSET_DAYS = 7;
// Weight change per review cycle
const DECAY_RATE = 0.02;
const STRENGTHEN_DELTA = 0.05;
const WEAKEN_DELTA = 0.10;
instinct:* pathways should have a minimum weight floor so they can't be trained away:
{
"id": "instinct:safe-file-deletion",
"weight": 0.85,
"floor": 0.80,
"fires": 1,
"successes": 0
}
Add a floor field to pathways in pathways.json to protect them from decay.
{
"version": 42,
"pathways": {
"habit:check-files-before-search": {
"weight": 0.95,
"fires": 13,
"successes": 11,
"lastFired": "2026-03-25T18:00:00.000Z",
"lastOutcome": "Read AESTHETIC.md before recommending clothes. Saved a web search.",
"created": "2025-11-01T00:00:00.000Z"
}
}
}
Every self-modification writes a timestamped JSON file. Never delete these. They're how you trace why the agent's behavior changed over time.
{
"type": "strengthen",
"target": "habit:check-files-before-search",
"from": 0.90,
"to": 0.95,
"reason": "11/13 success rate",
"timestamp": "2026-03-26T07:00:00.000Z"
}
If you're using scripts/dream.js for memory consolidation, the two systems complement each other:
Neither replaces the other. Wire both into HEARTBEAT.md for full coverage.
init-brain.sh to create directory structurereview to verify reinforcement logic worksmutations/ after first review to confirm loggingfloor weights on any instinct:* pathways