Let your AI agents build things while you sleep.
Revolution uses a coordinator agent to drive an autonomous review β execute β audit loop. Define a goal, break it into subtasks, and the system iterates through them β spawning specialized sub-agents for each role, with dual quality gates (pre-execution review + post-execution audit).
Your coordinator agent (on a heartbeat timer)
β
Finds a task needing work
β
βββββββββββββββββββββββββββββββββββββββββββββββ
β Phase 1: Spawn Reviewer β
β - Audits the plan β
β - Generates detailed instructions β
β - Decides: approve / revise β
βββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββ
β Phase 2: Spawn Executor β
β - Implements one subtask β
β - Runs verification tests β
β - Outputs results β
βββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββ
β Phase 3: Spawn Auditor β
β - Verifies instructions were followed β
β - Checks acceptance criteria β
β - Decides: pass / fail (retry) β
βββββββββββββββββββββββββββββββββββββββββββββββ
β
All subtasks done β completed β auto-packaged β
Why 3 sub-agent roles?
- Reviewer ensures the plan is sound (before work)
- Executor does the actual work (follows instructions)
- Auditor verifies the result matches the plan (after work)
Use strong models for Reviewer and Auditor (judgment roles). Use cost-effective models for Executor (labor role).
- OpenClaw with heartbeat or cron support
- At least 1 configured agent (the coordinator)
- A model that supports
sessions_spawnfor sub-agents
clawhub install auto-evolutionOr clone:
git clone https://github.com/cjboy007/revolution-skill.git
cp -r revolution-skill ~/.openclaw/workspace/skills/auto-evolutioncd ~/.openclaw/workspace
mkdir -p evolution/tasks evolution/archivecp skills/auto-evolution/references/task-example.json evolution/tasks/task-001.json
# Edit with your goal and subtasksOption A: Heartbeat (add to your agent's HEARTBEAT.md)
## Evolution Loop
1. Run `node skills/auto-evolution/scripts/heartbeat-coordinator.js`
2. Parse output:
- phase=review β spawn Reviewer sub-agent β apply-review
- phase=execute β spawn Executor sub-agent β apply-exec
- phase=audit β spawn Auditor sub-agent β apply-audit
3. Done for this tickOption B: Cron
openclaw cron add --agent <your-agent> \
--name "evolution-coordinator" --every 5m \
--session isolated --timeout-seconds 300 \
--message "Evolution heartbeat: scan and process tasks."Tasks auto-progress through the loop. Check status:
node skills/auto-evolution/scripts/monitor.jsβββββββββββββββββββ
β Coordinator β β Your agent, on a timer
β (any model) β
ββββββββββ¬βββββββββ
β spawns
ββββββ΄βββββ¬βββββββββββ
βΌ βΌ βΌ
ββββββββββ ββββββββββ ββββββββββ
βReviewerβ βExecutorβ βAuditor β β Sub-agents, spawned on demand
β(strong)β β(cheap) β β(strong)β
ββββββββββ ββββββββββ ββββββββββ
Roles are filled by sub-agents, not specific agents. You configure which model to use when spawning. The system doesn't care about agent names.
pending β reviewed β executing β pending (next subtask)
β completed (all done)
β packaged β
- One subtask per heartbeat tick
- Monitor auto-resets stuck tasks (>10 min)
- Failed audit triggers retry (up to
max_iterations)
auto-evolution/ β This skill
βββ SKILL.md
βββ README.md
βββ config/
β βββ task-schema.json
βββ scripts/
β βββ heartbeat-coordinator.js (the loop driver)
β βββ monitor.js (stuck detection)
β βββ pack-skill.js (auto-packaging)
βββ references/
βββ task-example.json
evolution/ β Runtime data (your workspace)
βββ tasks/
β βββ task-001.json
βββ archive/
βββ test-results/
| Variable | Default | Description |
|---|---|---|
OPENCLAW_WORKSPACE |
~/.openclaw/agents/main/workspace |
Workspace root |
EVOLUTION_TASKS_DIR |
{workspace}/evolution/tasks |
Active tasks |
EVOLUTION_SKILLS_DIR |
{workspace}/skills |
Output skills |
EVOLUTION_ARCHIVE_DIR |
{workspace}/evolution/archive |
Completed tasks |
- 4-role architecture β Coordinator drives, 3 sub-agents specialize
- Dual quality gates β Review before, audit after β never skip either
- Model-agnostic β swap any model for any role
- One subtask per tick β predictable, reviewable, won't timeout
- Self-healing β monitor detects and fixes stuck states
- Cost-efficient β strong models only where judgment matters
MIT
Built with OpenClaw πΎ