Meta-Harness Evolver
by @tylerdotai
End-to-end Meta-Harness evolution for Hoss (OpenClaw agent). Runs nightly at 3 AM via OpenClaw cron. Reads Hoss's current workspace configs (SOUL.md, IDENTIT...
clawhub install meta-harness-evolverπ About This Skill
name: meta-harness-evolver description: End-to-end Meta-Harness evolution for Hoss (OpenClaw agent). Runs nightly at 3 AM via OpenClaw cron. Reads Hoss's current workspace configs (SOUL.md, IDENTITY.md, AGENTS.md, TOOLS.md, MEMORY.md), proposes harness modifications via a coding-agent proposer, evaluates against a benchmark, logs results to ~/hoss-evolution/, and posts a summary to the #research Discord channel. Triggered: (1) automatically via cron at 3 AM CDT, (2) when Tyler says "run harness evolution", "evolve Hoss", or "run meta-harness".
Meta-Harness Evolver
What This Skill Does
Implements the Meta-Harness paper's outer-loop optimization for Hoss β your OpenClaw agent. Each night at 3 AM CDT, this skill:
1. Reads Hoss's current workspace configs + all prior evolution logs 2. Proposes a targeted harness modification via a coding-agent sub-agent 3. Evaluates the proposed harness against a benchmark of ~20 diverse task scenarios 4. Logs the candidate harness + scores + execution traces to the evolution filesystem 5. Posts a summary report to #research Discord channel
The Meta-Harness Loop
Proposer Agent ββ(filesystem access)βββΊ Hoss Workspace
β² β
β propose harness
β βΌ
β Evaluate on benchmark
β βΌ
log ββββ΄ββ store: code + scores + traces βββΊ ~/hoss-evolution/
Quick Start
Cron Schedule
openclaw cronSKILL=meta-harness-evolution TASK=run_evolution openclaw runManual Trigger
/openclaw run --skill meta-harness-evolver --task run_evolution
Directory Structure
~/hoss-evolution/
βββ best/ # Best harness found so far
β βββ current/
βββ candidates/ # All evaluated harnesses
β βββ candidate_N/ # One dir per candidate
β βββ harness/ # The proposed config files (SOUL.md, etc.)
β βββ eval_scores.json
β βββ traces/ # Execution traces
βββ benchmark/ # Evaluation tasks + scorer
β βββ scenarios/ # ~20 diverse task scenarios
βββ proposer/ # Proposer's workspace
β βββ logs/ # Proposer's own reasoning traces
βββ evolution_log.jsonl # Full run history
What Can Be Evolved
Hoss's "harness" = the configs that wrap the LLM brain:
| File | What It Controls |
|------|-----------------|
| SOUL.md | Core identity, personality, decision-making style |
| IDENTITY.md | Role, voice, tone, signature patterns |
| AGENTS.md | Sub-agent architecture, coordination protocol |
| TOOLS.md | Tool configurations, credentials, key hosts |
| MEMORY.md | Long-term memory structure, what to persist |
| HEARTBEAT.md | Active hours, check priorities, alert thresholds |
Constraints (do NOT modify):
The Evolution Algorithm
1. Seed: Start with Hoss's current configs as iteration 0 2. Propose: Sub-agent reads full history from ~/hoss-evolution/candidates/, identifies failure patterns, proposes 1-2 targeted edits 3. Validate: Lightweight import/syntax check before running full benchmark 4. Evaluate: Run proposed harness against all 20 benchmark scenarios, score each 5. Log: Store candidate harness + scores + proposer reasoning traces 6. Select: Pareto frontier over (performance, simplicity) β proposer decides which candidates to keep exploring from 7. Repeat: Next night's proposer can read ALL prior candidates to build on good ideas
Key Insight from the Paper
The skill text is the strongest lever β it steers the proposer. Iterating on the proposer's prompt/role description had more effect than changing iteration count or population size.The Benchmark
The benchmark lives at ~/hoss-evolution/benchmark/. See references/benchmark-design.md for how to design scenarios and references/harness-spec.md for the full harness spec.
Default benchmark has 20 scenarios across categories:
Each scenario has:
The Proposer Agent
The proposer is a coding-agent sub-agent (default: coder) that:
~/hoss-evolution/candidates/ via filesystem opsProposer Skill (passed to sub-agent)
The proposer's role is defined by the task prompt in scripts/propose_harness.py. Key constraints:
Workflow Steps
Step 1: Read Prior Candidates
# List all prior candidates
ls ~/hoss-evolution/candidates/Read best candidate
cat ~/hoss-evolution/best/current/eval_scores.jsonRead history log
tail -20 ~/hoss-evolution/evolution_log.jsonl
Step 2: Run Proposer
# The sub-agent proposer reads ~/hoss-evolution/ and proposes
This is triggered by openclaw run with this skill loaded
Step 3: Validate Before Benchmark
# Quick syntax check
bash ~/hoss-evolution/scripts/validate.sh
Step 4: Run Benchmark
# Evaluate candidate against all 20 scenarios
python3 ~/hoss-evolution/scripts/evaluate.py
Step 5: Log Results
# Scores + traces written to candidate dir automatically
Evolution log updated
Step 6: Post to Discord
# Posts summary to #research
python3 ~/hoss-evolution/scripts/post_to_research.py
Scoring
Final score = weighted average across scenarios:
Results are tracked as a Pareto frontier: for each candidate, log both score and "complexity" (size/diff of changes). Simpler harnesses that score equally get priority.
Resources
Notes
runtime=subagent, not ACP β it needs filesystem access to ~/hoss-evolution/openclaw cronπ‘ Examples
Cron Schedule
openclaw cronSKILL=meta-harness-evolution TASK=run_evolution openclaw runManual Trigger
/openclaw run --skill meta-harness-evolver --task run_evolution
π Tips & Best Practices
runtime=subagent, not ACP β it needs filesystem access to ~/hoss-evolution/openclaw cron