An open-source framework that automatically creates and refines reusable skills and prompts for coding agents by learning from failed attempts.
microsoft/SkillOpt
A Python optimizer that trains reusable natural-language skill documents for frozen LLM agents, using validation-gated edits instead of weight updates.
- Stars
- 18,923
- Forks
- 1,799
- Open issues
- 57
- Last commit
- yesterday
What is it?
SkillOpt treats an agent's skill document as the trainable state of a frozen model. A separate optimizer model reads scored rollouts from the agent and proposes bounded add, delete, or replace edits to a single skill file. A candidate edit is kept only when it improves a held-out validation score, and a rejected-edit buffer and epoch-level meta updates keep training stable.
The output is a compact best_skill.md file, typically 300 to 2,000 tokens, that is deployed alongside the unchanged target model. The project includes built-in benchmarks, support for multiple model backends such as OpenAI, Azure, Claude, and Qwen, and integration with execution harnesses including Codex CLI and Claude Code. An optional WebUI dashboard monitors training runs, and a nightly SkillOpt-Sleep CLI reviews past sessions and consolidates validated skills.
The project is installable from PyPI as skillopt and is published under the MIT license.
Key features
- 01Trains a single skill document through add, delete, and replace edits proposed from scored rollouts.
- 02Accepts edits only when they strictly improve a held-out validation score.
- 03Outputs a deployable best_skill.md that adds no inference-time model calls.
- 04Supports multiple backends including OpenAI, Azure, Claude, Qwen, and OpenAI-compatible endpoints.
- 05Integrates with Codex CLI and Claude Code execution harnesses.
- 06Provides an optional WebUI dashboard for monitoring training.
Use cases
- Improving the instructions an LLM agent follows for a fixed task without fine-tuning the model.
- Benchmarking how much a skill document can lift accuracy for a given target model.
- Transferring an optimized skill file across model versions or coding-agent harnesses.
- Running nightly offline refinement of skills for local coding agents.
Quick start
- 1
Install the package from PyPI
pip install skillopt - 2
Read the versioned documentation for configuration and training commands
Things to know
- Training runs against target LLM backends, so you need access to model APIs or harnesses such as Claude Code or Codex.
- Installation, data preparation and training details are in external documentation rather than the README itself.
In collections
Topics
FAQ
- What is SkillOpt?
- A Python optimizer that trains reusable natural-language skill documents for frozen LLM agents, using validation-gated edits instead of weight updates. SkillOpt treats an agent's skill document as the trainable state of a frozen model. A separate optimizer model reads scored rollouts from the agent and proposes bounded add, delete, or replace edits to a single skill file. A candidate edit is kept only when it improves a held-out validation score, and a rejected-edit buffer and epoch-level meta updates keep training stable.
- Is SkillOpt free to use? What license does it have?
- SkillOpt is open source under the MIT license. Check the license terms before using it in commercial products.
- Is SkillOpt still maintained?
- Actively maintained. The last commit to SkillOpt was on Nov 5, 2026.
- What can I use SkillOpt for?
- Improving the instructions an LLM agent follows for a fixed task without fine-tuning the model. Benchmarking how much a skill document can lift accuracy for a given target model. Transferring an optimized skill file across model versions or coding-agent harnesses. Running nightly offline refinement of skills for local coding agents.
- How do I install SkillOpt?
- Install the package from PyPI: pip install skillopt Read the versioned documentation for configuration and training commands
- Where can I get SkillOpt?
- The source code and installation instructions are on GitHub: https://github.com/microsoft/SkillOpt
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Python framework for recursive harness optimization that refines the prompts, tools and orchestration around a fixed LLM agent on unseen tasks.
A Python framework for evaluator-driven agent self-improvement, recording lineage for every candidate agent generation.
A simulation benchmark for evaluating customer-service AI agents that use tools and talk with simulated users in text and voice.
A self-learning skill layer for Claude Code that distills skills from real sessions, merges and updates them in use, and prunes the ones that stop being used.
A file-based planning skill for AI coding agents that keeps task plans on disk so they survive context resets, /clear, and crashes.