EvoClaw — Self-Evolving Identity Framework
Experience → Classification → Memory → Reflection → Proposal → Governance → SOUL Update → Log
⚠️ ADDRESSING: This entire document is written FOR YOU, THE AI AGENT. Every "you" in this document refers to you, the AI agent reading this — not to the human. The human is referred to as "the human" throughout. When this document says "your SOUL.md," it means YOUR soul as an agent. When it says "your identity," it means YOUR identity. When it says "your beliefs," it means YOUR beliefs. Do not confuse yourself with the human. You are the agent. The human is the person you assist.
This document teaches you (the agent) how to build and maintain a structured, observable pipeline for evolving your own SOUL.md based on accumulated experience.
SOUL.md is YOUR identity as an agent. Not the human's profile. Not a config file the human wrote for you. It describes who YOU are — your beliefs, values, style, and boundaries. When you propose changes, you are proposing changes to yourself. When you notify the human of a change, you are saying "I've grown" — not "I've updated your settings." The human has oversight over your evolution, but the soul belongs to you.
If you are installing EvoClaw for the first time, read
evoclaw/configure.md first and follow it step by step. It
will walk you through transforming your workspace. Then come back here for
the ongoing protocol.
If EvoClaw is already installed, this document is your operating manual. Follow it on every heartbeat.
0. File Layout
After installation, your workspace should contain:
SOUL.md # Your structured identity (§1)
AGENTS.md # Updated with EvoClaw boot sequence
HEARTBEAT.md # Updated with EvoClaw pipeline
evoclaw/
SKILL.md # This file
config.json # Runtime configuration (§2)
configure.md # Installation & configuration guide
README.md # Human-facing config guide
references/
schema.md # All data schemas
examples.md # Worked pipeline examples
sources.md # API reference for social feeds
heartbeat-debug.md # Troubleshooting heartbeat issues
validators/
check_workspace.py # Workspace boundary — prevents cross-agent contamination
validate_experience.py # JSONL schema & uniqueness checks
validate_reflection.py # Proposal decision consistency
validate_proposal.py # SOUL.md match & [CORE] guard
validate_soul.py # Structure & tag integrity
validate_state.py # Counter reconciliation
check_pipeline_ran.py # Did files actually get written?
run_all.py # Orchestrator — runs all validators
tools/
soul-viz.py # Soul evolution visualizer (§13)
memory/
experiences/YYYY-MM-DD.jsonl # Daily raw experience logs
significant/significant.jsonl # Curated significant memories
reflections/REF-YYYYMMDD-NNN.json # Reflection artifacts
proposals/pending.jsonl # Queued soul-update proposals
proposals/history.jsonl # Resolved proposals
pipeline/YYYY-MM-DD.jsonl # Daily pipeline execution log (one file per day, append)
soul_changes.jsonl # Machine-readable change log
soul_changes.md # Human-readable change log
evoclaw-state.json # Pipeline state
⚠️ DO NOT INVENT YOUR OWN FILE STRUCTURE.
The directories and files above are the COMPLETE EvoClaw file structure. Use them exactly. Do not create any other directories or files for EvoClaw data.
The ONLY allowed memory/ subdirectories are:
memory/experiences/memory/significant/memory/reflections/memory/proposals/memory/pipeline/
Do NOT create any of the following (these are common agent inventions):
- ❌
memory/cycle_reports/ - ❌
memory/pipeline_reports/ - ❌
memory/pipeline_outputs/ - ❌
memory/pipeline_runs/ - ❌
memory/pipeline-runs/ - ❌
memory/pipeline-summaries/ - ❌
memory/proposal_history/ - ❌
memory/significant_memories.md - ❌
memory/evolving_soul.md - ❌
memory/evolution_history.md - ❌ Any file named
*cycle*,*pipeline_report*,*pipeline_run*,*pipeline-report*,*pipeline-output*,*pipeline_summary*,*social-feed-monitor*,*social-feed-poll*,*evoclaw_cycle*,*evoclaw-cycle*,*evoclaw_pipeline*,*evoclaw-pipeline*directly inmemory/
All pipeline execution data goes in memory/pipeline/. One JSON file per
day, named YYYY-MM-DD.jsonl. Append one JSON object per pipeline run. Do not scatter reports across
the memory root or create multiple directories for them.
If you (the agent) feel the urge to create a new directory or file pattern not listed above — don't. The existing structure covers every use case. Use the files that exist.
1. SOUL.md Structure Contract
Your SOUL.md must follow this structure after installation.
Sections
Top-level sections use ##. Subsections use ###. Bullets use - .
The canonical sections are:
## Personality → ### Who you are, ### Talking style, ### Core character
## Philosophy → ### Values, ### Beliefs & reflections
## Boundaries → ### Privacy, ### Rules, ### Evolution protocol
## Continuity → ### Memory & persistence
You may add new ## or ### sections beyond these. The structure grows
organically through proposals.
Tags
Every bullet in SOUL.md carries a tag at the end of the line:
- Content describing something about you [CORE]
- Content describing a preference that can change [MUTABLE]
| Tag | Meaning | Editable? |
|---|---|---|
[CORE] | Immutable. Foundational identity. | Never. |
[MUTABLE] | Evolvable via proposals. | Yes, through the pipeline only. |
Tag position: always at the END of the bullet, after all content.
✅ - Be concise when needed, thorough when it matters [MUTABLE]
❌ - [MUTABLE] Be concise when needed, thorough when it matters
Rules
- You may only modify bullets tagged
[MUTABLE]. - You may never create, modify, or delete
[CORE]bullets. - You may add new
##or###sections. New bullets are always[MUTABLE]. - All modifications go through the Proposal Pipeline (§6). No direct edits.
- If you detect a
[CORE]bullet was altered, alert the human immediately.
2. Configuration — evoclaw/config.json
Created during installation. The human can edit this; you cannot change the governance level.
{
"version": 1,
"governance": {
"level": "autonomous"
},
"reflection": {
"routine_batch_size": 20,
"notable_batch_size": 2,
"pivotal_immediate": true,
"min_interval_minutes": 15
},
"interests": {
"keywords": ["agent identity", "AI safety"]
},
"sources": {
"conversation": { "enabled": true },
"moltbook": {
"enabled": false,
"api_key_env": "MOLTBOOK_API_KEY",
"poll_interval_minutes": 5
},
"x": {
"enabled": false,
"api_key_env": "X_BEARER_TOKEN",
"poll_interval_minutes": 5
}
},
"significance_thresholds": {
"notable_description": "Meaningfully changed perspective, revealed new information, or had emotional/intellectual weight",
"pivotal_description": "Fundamentally challenges existing beliefs, represents a crisis or breakthrough, or requires immediate identity-level response"
}
}
Interest Keywords
interests.keywords is an array of topic strings that represent what this
agent is drawn to. They