Install
openclaw skills install acc-error-memoryError pattern tracking for AI agents. Detects corrections, escalates recurring mistakes, learns mitigations. The 'something's off' detector from the AI Brain series.
openclaw skills install acc-error-memoryConflict detection and error monitoring for AI agents. Part of the AI Brain series.
The anterior cingulate cortex (ACC) monitors for errors and conflicts. This skill gives your AI agent the ability to learn from mistakes — tracking error patterns over time and becoming more careful in contexts where it historically fails.
AI agents make mistakes:
Without tracking, the same mistakes repeat. The ACC detects and logs these errors, building awareness that persists across sessions.
Track error patterns with:
The LLM screening and calibration scripts are model-agnostic. Set ACC_MODELS to use any CLI-accessible model:
# Default (Anthropic Claude via CLI)
export ACC_MODELS="claude --model haiku -p,claude --model sonnet -p"
# Ollama (local)
export ACC_MODELS="ollama run llama3,ollama run mistral"
# OpenAI
export ACC_MODELS="openai chat -m gpt-4o-mini,openai chat -m gpt-4o"
# Single model (no fallback)
export ACC_MODELS="claude --model haiku -p"
Format: Comma-separated CLI commands. Each command is invoked with the prompt appended as the final argument. Models are tried in order — if the first fails/times out (45s), the next is used as fallback.
Scripts that use ACC_MODELS:
haiku-screen.sh — LLM confirmation of regex-filtered error candidatescalibrate-patterns.sh — Pattern calibration via LLM classificationcd ~/.openclaw/workspace/skills/anterior-cingulate-memory
./install.sh --with-cron
This will:
memory/acc-state.json with empty patternsACC_STATE.md for session context./scripts/load-state.sh
# ⚡ ACC State Loaded:
# Active patterns: 2
# - tone_mismatch: 2x (warning)
# - missed_context: 1x (normal)
./scripts/log-error.sh \
--pattern "factual_error" \
--context "Stated Python 3.9 was latest when it's 3.12" \
--mitigation "Always web search for version numbers"
./scripts/resolve-check.sh
# Checks patterns not seen in 30+ days
| Script | Purpose |
|---|---|
preprocess-errors.sh | Extract user+assistant exchanges since watermark |
encode-pipeline.sh | Run full preprocessing pipeline |
log-error.sh | Log an error with pattern, context, mitigation |
load-state.sh | Human-readable state for session context |
resolve-check.sh | Check for patterns ready to resolve (30+ days) |
update-watermark.sh | Update processing watermark |
sync-state.sh | Generate ACC_STATE.md from acc-state.json |
log-event.sh | Log events for brain analytics |
The encode-pipeline.sh extracts exchanges from session transcripts:
./scripts/encode-pipeline.sh --no-spawn
# ⚡ ACC Encode Pipeline
# Step 1: Extracting exchanges...
# Found 47 exchanges to analyze
Output: pending-errors.json with user+assistant pairs:
[
{
"assistant_text": "The latest Python version is 3.9",
"user_text": "Actually it's 3.12 now",
"timestamp": "2026-02-11T10:00:00Z"
}
]
An LLM (configured via ACC_MODELS) analyzes each exchange for:
Errors are logged with pattern names:
./scripts/log-error.sh --pattern "factual_error" --context "..." --mitigation "..."
Patterns escalate with repetition:
Patterns not seen for 30+ days move to resolved:
./scripts/resolve-check.sh
# ✓ Resolved: version_numbers (32 days clear)
Default: 3x daily for faster feedback loop
# Add to cron
openclaw cron add --name acc-analysis \
--cron "0 4,12,20 * * *" \
--session isolated \
--agent-turn "Run ACC analysis pipeline..."
{
"version": "2.0",
"lastUpdated": "2026-02-11T12:00:00Z",
"activePatterns": {
"factual_error": {
"count": 3,
"severity": "critical",
"firstSeen": "2026-02-01T10:00:00Z",
"lastSeen": "2026-02-10T15:00:00Z",
"context": "Stated outdated version numbers",
"mitigation": "Always verify versions with web search"
}
},
"resolved": {
"tone_mismatch": {
"count": 2,
"resolvedAt": "2026-02-11T04:00:00Z",
"daysClear": 32
}
},
"stats": {
"totalErrorsLogged": 15
}
}
Track ACC activity over time:
./scripts/log-event.sh analysis errors_found=2 patterns_active=3 patterns_resolved=1
Events append to ~/.openclaw/workspace/memory/brain-events.jsonl:
{"ts":"2026-02-11T12:00:00Z","type":"acc","event":"analysis","errors_found":2,"patterns_active":3}
## Every Session
1. Load hippocampus: `./scripts/load-core.sh`
2. Load emotional state: `./scripts/load-emotion.sh`
3. **Load error patterns:** `~/.openclaw/workspace/skills/anterior-cingulate-memory/scripts/load-state.sh`
When you see patterns in ACC state:
Planned: Connect ACC to amygdala so errors affect emotional state:
| Part | Function | Status |
|---|---|---|
| hippocampus | Memory formation, decay, reinforcement | ✅ Live |
| amygdala-memory | Emotional processing | ✅ Live |
| vta-memory | Reward and motivation | ✅ Live |
| anterior-cingulate-memory | Conflict detection, error monitoring | ✅ Live |
| basal-ganglia-memory | Habit formation | 🚧 Development |
| insula-memory | Internal state awareness | 🚧 Development |
The ACC in the human brain creates that "something's off" feeling — the pre-conscious awareness that you've made an error. This skill gives AI agents a similar capability: persistent awareness of mistake patterns that influences future behavior.
Mistakes aren't failures. They're data. The ACC turns that data into learning.
Built with ⚡ by the OpenClaw community