SkillOpt README

The project's README from github.com/microsoft/SkillOpt. As one markdown file: README.md.

SkillOpt: Executive Strategy for Self-Evolving Agent Skills

Train agent skills like you train neural networks — with epochs, (mini-)batchsize, learning rates, and validation gates — but without touching model weights.

Project Page Paper Project Video PyPI Python 3.10+ License: MIT

microsoft%2FSkillOpt | Trendshift microsoft%2FSkillOpt | Trendshift

📖 For installation, data preparation, training/eval commands, configuration, and framework internals, start with the versioned SkillOpt documentation. A concise rendered overview is available in the Documentation & Reproduction Guide, and longer-form engineering analysis appears on the Technical Blog. We also maintain a Changelog for released and unreleased changes.


News 🔥🔥🔥


Overview

Modern agent skills are usually hand-crafted, generated one-shot by a strong LLM, or evolved through loosely controlled self-revision — none of which behaves like a deep-learning optimizer for the skill itself, and none of which reliably improves over its starting point under feedback.

SkillOpt treats the skill document as the trainable state of a frozen agent, and trains it with the discipline that makes weight-space optimization reproducible. A separate optimizer model turns scored rollouts into bounded add / delete / replace edits on a single skill document; in the default paper-style path, a candidate edit is accepted only when it strictly improves a held-out validation score. A textual learning-rate budget, a rejected-edit buffer, and an epoch-wise slow / meta update make skill training stable while adding zero inference-time model calls at deployment.

The deployed artifact is a compact best_skill.md (typically 300–2,000 tokens) that runs against the unchanged target model. Across six benchmarks, seven target models, and three execution harnesses (direct chat, Codex CLI, Claude Code CLI), SkillOpt is best or tied-best on all 52 evaluated (model, benchmark, harness) cells and on GPT-5.5 lifts the average no-skill accuracy by +23.5 points in direct chat, +24.8 inside the Codex agentic loop, and +19.1 inside Claude Code. Optimized skill artifacts transfer across model scales, between Codex and Claude Code harnesses, and to nearby benchmarks without further optimization.

For the full method, ablations, and per-cell results see the paper; for a visual walkthrough of the loop see the project page; for deeper API / backend / benchmark docs see docs/.

🎬 Demo Video

https://github.com/user-attachments/assets/eb12d3bc-371c-467f-904d-91b61f339ed7

▶ Watch the full demo on YouTube


Extensibility & WebUI

Adding a new backend

A backend = a chat / exec target (e.g. openai_chat, claude_chat, qwen_chat, minimax_chat, copilot_chat, openai_compatible, codex_exec, claude_code_exec, cursor_exec, copilot_exec). If a provider implements the OpenAI Chat Completions protocol, try the built-in openai_compatible backend before adding code. See docs/guide/new-backend.md for the full contract. Chat backends add a skillopt/model/<name>_backend.py module; target-only exec backends use the shared harness in codex_harness.py. Both register through common.py, backend_config.py, and skillopt/model/__init__.py.

Adding a new benchmark

A benchmark = a skillopt/envs/<name>/ package with an adapter, a data loader, a scored rollout helper, a YAML config, and optionally an initial seed skill. See docs/guide/new-benchmark.md for the full contract; the simplest reference is skillopt/envs/searchqa/.

WebUI

Launch the monitoring dashboard (optional):

pip install -e ".[webui]"
python -m skillopt_webui.app
Flag Default Description
--port 7860 Server port
--host 0.0.0.0 Bind address
--share off Create a public Gradio share link

The default host listens on every network interface. Use --host 127.0.0.1 for local-only access.


Citation

@article{yang2026skillopt,
  title={Skillopt: Executive strategy for self-evolving agent skills},
  author={Yang, Yifan and Gong, Ziyang and Huang, Weiquan and Yang, Qihao and Zhou, Ziwei and Huang, Zisu and Li, Yan and Gao, Xuemei and Dai, Qi and Liu, Bei and others},
  journal={arXiv preprint arXiv:2605.23904},
  year={2026}
}

SkillOpt (microsoft/SkillOpt)

Searching Database…

18.6K ·GitHub
Что это такое?Оптимизатор текстового пространства, который обучает переиспользуемые навыки на естественном языке для «замороженных» LLM-агентов, не затрагивая веса модели. Обученный навык поставляется в виде компактного markdown-файла (обычно 300–2 000 токенов) и не добавляет ни одного дополнительного вызова модели во время инференса.
Это библиотека, которую я импортирую, или утилита командной строки?И то и другое: это Python-пакет на PyPI с CLI-утилитой skillopt (плюс вспомогательная утилита skillopt-sleep) и опциональной веб-панелью на Gradio. Расширять её можно, дописывая Python-модули для новых бэкендов или бенчмарков.
Как его запустить?Установите через pip install skillopt, настройте бэкенд и запустите цикл обучения (rollout → reflect → aggregate → select → update → evaluate). По желанию можно открыть веб-панель на порту 7860 и следить за запусками.
С какими LLM-провайдерами он умеет работать?Встроенные чат-бэкенды поддерживают OpenAI, Azure, Claude, Qwen и MiniMax, а любой провайдер с протоколом OpenAI Chat Completions подойдёт через бэкенд openaicompatible. Есть также exec-бэкенды для Codex CLI, Claude Code, Cursor и Copilot.
Есть ли в pip-пакете всё из release notes?Нет. Основная утилита использует консервативные настройки по умолчанию и выставляет флагами далеко не все параметры экспериментального стенда, а оболочки интеграции с кодинг-агентами (Claude Code, Codex, Copilot, Devin, OpenClaw) лежат в репозитории, а не в пакете на PyPI.
Он заработает на моей Windows или только на Linux?Это кроссплатформенный Python-пакет с явной поддержкой Windows — релиз v0.2.0 как раз добавил устойчивость на Windows наряду с Linux и macOS.
Как именно устроен цикл обучения?В каждом раунде агент выполняет задачи, а отдельная модель-оптимизатор превращает оценённые траектории в ограниченные правки документа-навыка: добавить, удалить или заменить фрагмент. По умолчанию правка принимается, только если она строго улучшает оценку на отложенной валидационной выборке, а «текстовый learning rate» и буфер отклонённых правок удерживают обучение стабильным.
Что такое SkillOpt-Sleep?Движок ночного офлайн-самообучения, поставляемый как утилита skillopt-sleep. Он просматривает прошлые сессии локальных кодинг-агентов вроде Claude Code, Codex и Copilot, переигрывает повторяющиеся задачи и закрепляет проверенные навыки за отложенным валидационным фильтром.
Насколько он реально улучшает агентов?На шести бенчмарках, семи целевых моделях и трёх стендах он оказался лучшим или делил первое место во всех 52 протестированных комбинациях. На GPT-5.5 он поднимает среднюю точность без навыка на +23,5 пункта в прямом чате, на +24,8 в агентном цикле Codex и на +19,1 в Claude Code, причём обученные навыки переносятся между масштабами моделей и стендами.
Можно ли подключить свой бэкенд или бенчмарк?Да. Бэкенд — это чат- или exec-цель, регистрируемая через несколько Python-модулей (см. docs/guide/new-backend.md), и если провайдер говорит на протоколе OpenAI Chat Completions, встроенный бэкенд openaicompatible, возможно, уже подойдёт. Бенчмарк — это пакет skillopt/envs с адаптером, загрузчиком данных и YAML-конфигом; самый простой образец — searchqa.
Creator
microsoft
Size
23.4 MB
Stars
18.6K
Age
5mo
Commits · 90 Days