SkillOpt: A Deep-Learning-Style Optimizer for Agent Skills Sweeps All 52 Evaluation Cells
> Paper: SkillOpt: Executive Strategy for Self-Evolving Agent Skills > arXiv: 2605.23904 | Code: https://github.com/microsoft/SkillOpt > Team: Microsoft Research | Date: 2026-05
The Problem
Existing skill-acquisition methods for AI agents fall short:
- Hand-written skills: brittle, break when scenarios change
- Single-shot LLM generation: no feedback loop, quality capped by the initial prompt
- Loose self-revision loops: do not behave like deep-learning optimizers — no stable, reproducible improvement over the starting point
- Weaker models gain relatively more: GPT-5.4-nano goes 31.6 → 49.0 (+55%), indicating a knowledge-distillation effect from a strong optimizer to weak students.
- SkillOpt exceeds human-expert skills on structured tasks (spreadsheets, office documents) by wide margins; DocVQA is nearly tied.
- Single-shot LLM skills are highly unstable (e.g., SpreadsheetBench 43.2 vs human 72.9).
- TextGrad sometimes *hurts* (SpreadsheetBench 41.1, below the 41.8 no-skill baseline), attributed to unbounded rewriting.
- GEPA is the strongest baseline but trails in 50 of 52 cells, by roughly +2.5 to +5.8 points on average.
- Gains hold across harnesses: Codex +24.8, Claude Code +19.1 for GPT-5.5.
- Cross-model: skills transfer but are not optimal; re-optimization helps.
- Cross-harness: base skills carry over; harness-specific details need adjustment.
- Cross-task: math-optimized skills apply directly to related math tasks without further optimization.
- Paper: https://arxiv.org/abs/2605.23904
- Code: https://github.com/microsoft/SkillOpt
- Team: Microsoft Research, May 2026
SkillOpt's core claim: skills should be trained as external state of a parameter-frozen agent, with the same discipline that makes weight-space optimization reproducible.
The Text-Space Optimizer Analogy
| Deep Learning (weight space) | SkillOpt (text space) | |:---|:---| | Gradient direction | Trajectory reflection → edit direction | | Learning rate | Text edit budget | | Validation checks | Held-out selection gate | | Batch / scheduler | Mini-batch / scheduler |
Five-Stage Training Loop
1. Frozen agent executes a batch with the current skill document; trajectories and scores are collected. 2. Optimizer model produces structured edits (ADD/DEL/REP), in Patch mode (default) or full Rewrite mode. A protected slow-update field holds per-epoch meta updates that step-level edits cannot overwrite. 3. Edits are merged, ranked, and clipped by the edit budget (text learning rate). Default budget starts at 4 edits per step with cosine decay to 2. Removing the budget hurts performance (e.g., SearchQA 84.6 vs 86.5–87.0). 4. Held-out validation gate: a candidate is accepted only if its selection score is *strictly* greater than the current score (train:selection:test = 2:1:7; reported metrics come from a disjoint test set). Rejected edits are logged as negative feedback. 5. Slow updates and meta-skill integration: each epoch, the optimizer writes longitudinal guidance into the slow-update field and summarizes which edit patterns helped or failed.
Ablations: Every Component Matters
| Ablation | SearchQA | SpreadsheetBench | LiveMath | |:---|:---|:---|:---| | Full SkillOpt | 87.1 | 77.5 | 61.3 | | No edit budget | 84.6 | 75.7 | – | | No rejected-edit buffer | 85.5 (−1.6) | 72.9 (−4.6) | 58.9 (−2.4) | | No meta skill | 85.1 (−2.0) | 75.7 (−1.8) | 58.1 (−3.2) | | No slow update | – | 55.0 (−22.5) | – |
Slow updates are the single most critical component: removing them collapses SpreadsheetBench by 22.5 points.
Results: 52/52 Best-or-Tied
Setup: 6 benchmarks (SearchQA, SpreadsheetBench, OfficeQA, DocVQA, LiveMath, ALFWorld) × 7 target models (GPT-5.5, GPT-5.4, GPT-5.4-mini, GPT-5.4-nano, GPT-5.2, Qwen3.5-4B, Qwen3.6-35B-A3B) × 3 harnesses (Direct Chat, Codex, Claude Code) = 52 evaluation cells. SkillOpt is best or tied-best in every cell, against no-skill, human-expert, single-shot LLM skill, Trace2Skill, TextGrad, GEPA, and EvoSkill baselines.
GPT-5.5, Direct Chat:
| Benchmark | No skill | Human | SkillOpt | Gain | |:---|:---|:---|:---|:---| | SearchQA | 77.7 | 81.8 | 87.3 | +9.6 | | SpreadsheetBench | 41.8 | 72.9 | 80.7 | +38.9 | | OfficeQA | 33.1 | 66.9 | 72.1 | +39.0 | | DocVQA | 78.8 | 90.1 | 91.2 | +12.4 | | LiveMath | 37.6 | 38.4 | 66.9 | +29.3 | | ALFWorld | 83.6 | 91.8 | 95.5 | +11.9 |
Key findings:
Transferability
Limitations
1. Dependence on a strong optimizer model (default GPT-5.5). 2. Non-trivial offline training time; hyperparameters (budget, decay, buffer size) are benchmark-sensitive. 3. ADD/DEL/REP edit operations limit expressiveness for some changes. 4. Only agent/tool benchmarks tested; soft tasks (creative writing, open dialogue) unverified.
Significance
SkillOpt argues that hand-written skills are like hand-tuned weights, single-shot generation is random initialization, and optimizer-driven training is the real path — all with zero added inference cost, since the optimizer only runs offline. The paper frames text skills as trainable external state: the model is frozen hardware, the skill is evolving software. If it holds up, agent capability may hinge less on bigger models and more on better skill optimizers.