Two coding-agent slash-commands that iteratively improve any language
agent from its own scored rollouts, with automatic git tag
rollback whenever the val split says the change hurt. Better and
faster agent self-evolution — no fine-tuning, no inference-time
overhead. /skillopt-loop outputs a shippable
skill.md; /harnessopt-loop also co-evolves
the agent harness (rollout, react-agent, code-gen, executor, adapter).
Each round runs a small training batch, hands the failed traces to a
coding agent, lets it patch the skill.md (and, in
/harnessopt-loop, the agent code), re-runs val, and either
keeps the edit or reverts. When it stops improving, grab the best
artifact and ship it — nothing to install at inference time.
/skillopt-loop and /harnessopt-loop.
Type it as a slash command in your coding agent, with the env folder
open as workspace root. Ships wired for VS Code Copilot Chat today;
Codex CLI, Claude Code, kimi-code, glm-code and deepseek-tui are on
the roadmap. The prompt lives at
<env>/.github/prompts/*.prompt.md — read it if you
want to tweak the loop policy.
Skill-only optimization. Ships across all six benchmarks — the loop only ever edits one file.
skill.mdrounds=3 batch=20Same loop, but the coding agent is also allowed to edit an allow-listed slice of the agent code. Pauses for user approval before each patch.
skill.md +rollout · react_agentcodegen_agent · executor · adapterA round is a self-contained atomic update — either it beats val or it gets reverted. History is git-tagged so you can always trace back.
Run run.sh on a batch-item slice of train. Each item's trace + score is dumped to .skillopt/samples/*.md. HarnessOpt uses the same rollout but also records per-step tool traces from the harness code path.
A coding agent reads the failed samples and proposes a bounded edit to skill.md. In /harnessopt-loop the exploration surface widens to an allow-listed slice of the agent code — rollout · react_agent · codegen_agent · executor · adapter — so the agent can co-evolve prompts and harness logic.
Re-run run.sh --split val. If the new score dips below the previous best minus a dead-band, roll back with git reset. Same gate for both loops — HarnessOpt just reverts more files at once.
Every attempt lands in workspace/.skillopt/history/ with its val score. HarnessOpt additionally snapshots the harness diff as a git tag, so you can hand-pick or replay any prior (skill, code) pair.
All numbers below are from Table 1 of the paper (identical evaluation
protocol as SkillOpt — 6 benchmarks, 5 model scales) and reproduce
from the shipped checkpoints via scripts/eval_only.py.
SkillOpt vs Ours
| Benchmark · Model | SkillOpt | Ours |
|---|---|---|
| SpreadsheetBench · GPT-5.4-nano · HarnessOpt | 76.20 (GPT-5.5) | 77.58 HarnessOpt |
| SpreadsheetBench · GPT-5.4-nano | 51.6 | 66.2 (+14.6) |
| SpreadsheetBench · GPT-5.5 | 76.2 | 79.7 (+3.5) |
| LiveMath · GPT-5.4-nano | 30.3 | 55.7 (+25.4) |
| LiveMath · GPT-5.5 | 64.8 | 73.6 (+8.8) |
| ALFWorld · GPT-5.4-nano | 71.8 | 81.3 (+9.5) |
| OfficeQA · GPT-5.5 | 72.2 | 76.2 (+4.0) |
| DocVQA · GPT-5.5 | 91.2 | 94.2 (+3.0) |
Numbers are absolute accuracy (%). Top row is the HarnessOpt headline: GPT-5.4-nano with an evolved harness beats GPT-5.5 running standard harness + full SkillOpt. Rows below are SkillOpt-Lite vs SkillOpt in matched settings; see paper Section 4 for the full 5-model × 6-benchmark grid.
The loop is small on purpose — but the surface it wraps is agent-shaped and IDE-shaped. Two obvious expansion axes:
A drop-in script that wraps the loop around any agent codebase. Bring your own rollout(item) → trace, score and a skill.md entry point.
Port the slash-commands beyond VS Code Copilot Chat. Same loop, packaged as a slash-command extension for each host: codex-cli, claude-code, kimi-code, glm-code, deepseek-tui.
Roll /harnessopt-loop out to the other five benchmarks — same allow-list pattern, different harness shapes.
Want to help land any of these? Open an issue on GitHub.
If SkillOpt-Lite or HarnessOpt is useful in your work, please cite the preprint. arXiv link coming soon.
@article{shen2026skilloptlite,
title = {SkillOpt-Lite: Better and Faster Agent Self-evolution with One Line of Vibe},
author = {Shen, Yifei and Li, Bo and Zhang, Xinjie},
year = {2026},
note = {arXiv link coming soon}
}