
Write HTML. Render video. Built for agents.
OpenSkill is a framework for teaching an agent to build its own task skills and verification signals from open-world resources. It runs a three-stage loop: gather grounding, evolve skills in a sandbox, then evaluate the frozen skill against hidden tests.
Builders who want Claude Code or Codex to develop reusable task skills from scratch with grounded checks.
You can grow agent skills without prebuilt supervision and still evaluate them in a controlled final pass.
Retrieves task-relevant knowledge and verification anchors from docs, repos, papers, and the web.
Refines skills in a sandbox against self-built virtual tests without exposing hidden task answers.
Runs the frozen skill on the target agent and unlocks ground-truth tests only at the end.
Ships clean tasks in `tasks/` and evolved task versions with released skills and documents in `tasks-evolved/`.
Includes `libs/terminus_agent` for skill discovery, virtual verification, pytest parsing, and evaluation wrappers.
git clone https://github.com/OpenLAIR/OpenSkill.git cd OpenSkill uv sync --locked # pinned dependency tree, including the Harbor sandbox framework cp .env.example .env # then fill in your API keys
An agent that builds both its skills and its own verification signals from scratch β using only a task prompt and open-world resources, with no target-task supervision.
Self-evolving agents need to adapt after deployment β but existing methods assume a usable learning loop is already there: curated skills, successful trajectories, or verifier signals. Real open-world deployments may offer none of these, only a task prompt.
OpenSkill studies open-world self-evolution: an agent must build both its skills and its own verification signals from scratch, drawing on open-world resources but no target-task supervision. Target-task supervision is reserved strictly for final evaluation.
| π Scalable Skills are sourced from the open world, not bounded by a human's or model's prior knowledge. | π Grounded Knowledge and verification anchors come from real docs, repositories, and the web. | π Supervision-free No gold answers, rewards, or verifier outputs during learning β a leakage barrier keeps them out. |
Unlike human-curated, LLM-generated, or supervised self-evolution, OpenSkill acquires skills from the open world and verifies them with self-built virtual tasks β making it simultaneously scalable, grounded, and supervision-free. Prior paradigms each miss at least one of these properties.
Given only a task prompt, a base model, tool access, and open-world resources, OpenSkill bootstraps a learning loop from scratch in three stages.
| Stage | Name | What happens |
|---|---|---|
| 01 | Open-world knowledge acquisition | Retrieves task-relevant knowledge and independent verification anchors from docs, repos, papers, and the web β then drafts a structured skill plan. |
| 02 | Leakage-free skill evolution | Drafts skills and refines them in a sandbox against self-built virtual tests grounded in the anchors, fixing bugs and knowledge gaps over up to three rounds. |
| 03 | Zero-shot target evaluation | Deploys the frozen skill to the target agent. Ground-truth tests are unlocked only here, at final evaluation β never during construction. |
uvgit clone https://github.com/OpenLAIR/OpenSkill.git
cd OpenSkill
uv sync --locked # pinned dependency tree, including the Harbor sandbox framework
cp .env.example .env # then fill in your API keys
All dependency versions (including the Harbor evaluation framework and the google-genai SDK) are pinned in uv.lock to the exact versions the release was validated with.
OpenSkill/
βββ libs/
β βββ openskill/ # the OpenSkill pipeline
β β βββ pipeline.py # Stage 1β3 orchestrator
β β βββ run_pipeline.py # CLI: evolve skills from scratch
β β βββ run_eval.py # CLI: zero-shot evaluation of existing skills
β β βββ openskill_evolution.py # in-container skill-creator agent
β β βββ agent_planner.py # research-query synthesis
β β βββ skill_planner.py # multi-skill plan + references
β β βββ deep_research_client.py # deep-research retrieval
β β βββ targeted_dr.py # gap-vs-bug diagnosis & retrieval
β βββ terminus_agent/ # agent runtime: skill discovery, virtual verifier,
β # pytest parsing, evaluation-agent wrappers
βββ .claude/skills/skill-creator/ # meta-skill injected into the creator agent
βββ tasks/ # 84 SkillsBench tasks β no skills
βββ tasks-evolved/ # the same tasks + skills evolved by OpenSkill + retrieved docs
βββ pyproject.toml / uv.lock / LICENSE / .env.example
Two copies of the benchmark ship with the repo:
tasks/ β clean task definitions (instruction, environment, hidden tests). The input for evolving skills from scratch.tasks-evolved/ β identical tasks with the released evolved skills (environment/skills/evo-*) and the retrieved knowledge documents (environment/doc/) used in the paper. The input for reproducing the main results.Evaluate the released skills with a fresh target agent (Claude Code + Opus 4.6, the paper's main setting). Ground-truth tests run only in this stage:
uv run python -m libs.openskill.run_eval \
--tasks 3d-scan-calc \
--tasks-dir tasks-evolved \
--eval-agent claude-code \
--model anthropic/claude-opus-4-6 \
--eval-runs 5
--eval-runs 5 follows the paper protocol (n_eval = 5 independent zero-shot runs per task).--eval-agent selects the target harness: claude-code or codex.--tasks $(ls tasks-evolved).--timeout-multiplier 4 to scale the per-task Docker build and agent timeouts.Results are appended to results/eval_results.csv (per-task reward and test-level accuracy).
Run the full three-stage pipeline on a clean task β deep research, skill planning, verification-anchor retrieval, sandboxed evolution against the virtual verifier, then a 5-run evaluation of the newly evolved skills:
uv run python -m libs.openskill.run_pipeline \
--tasks 3d-scan-calc \
--eval-runs 5
The pipeline copies the task from tasks/ into an isolated workspace/, strips any pre-existing skills or documents, and never exposes the hidden test suite to the creator or the verifier. Evolved skills land in workspace/<task>/environment/skills/evo-*; the full evolution trace (interventions, virtual-test results, verifier sessions) is stored under jobs/<job-name>/.
[!NOTE] Skill evolution is stochastic. On tasks whose instructions under-specify conventions (units, interface variants, event definitions), a single evolution run can converge to a convention that differs from the hidden tests, so per-task rewards vary across runs. The skills in
tasks-evolved/are the validated versions used for the paper's numbers; use them for exact reproduction, and expect run-to-run variance when re-evolving from scratch.
On SkillsBench (11 domains) OpenSkill beats the strongest closed-world baseline by +8.9 / +8.8 points and lands within 1β3 points of the human upper bound β while honoring the no-supervision constraint.
| Metric | Value |
|---|---|
| Overall pass rate on Opus 4.6 | 43.6% Β (+8.9 over best baseline) |
| Overall pass rate on GPT 5.2 | 42.1% Β (+8.8 over best baseline) |
| GT test intents covered by self-built verifier | 88.9% |
| Domains best / tied-best on Opus 4.6 | 8 / 11 |
SkillsBench β overall average pass rate (%) Β (Human = reference upper bound, excluded from ranking)
| Target agent | No Skill | Self-Gen | CoT | Skill-Creator | AutoSkill | Memento | OpenSkill | Human |
|---|---|---|---|---|---|---|---|---|
| Opus 4.6 (Claude Code) | 25.5 | 23.9 | 23.9 | 34.7 | 24.7 | 30.1 | 43.6 | 44.5 |
| GPT 5.2 (Codex) | 25.0 | 32.2 | 33.3 | 29.2 | 11.2 | 15.6 | 42.1 | 44.8 |
Beyond SkillsBench, OpenSkill is also the best automated method on SocialMaze (82.7% / 70.7%) and ScienceWorld (90.0% / 85.3%) across both target agents.
|
RQ1 β Transferability Skills generated by Opus 4.6 transfer as-is to four weaker models, improving by +5.5 to +14.8 points over no-skill with no model-specific adaptation. |
RQ2 β Virtual verifier quality Without ever seeing ground-truth tests, the verifier reaches 80.5% recall against GT-positive outcomes, 60.7% overall agreement, and covers 88.9% of GT test intents. |
RQ3 β Component contribution. On SocialMaze, reward peaks at three refinement rounds; open-world query and the virtual verifier each improve over a parametric-only baseline and are largely complementary.
Β
tasks-evolved/)@misc{yan2026openskillopenworldselfevolutionllm,
title = {OpenSkill: Open-World Self-Evolution for LLM Agents},
author = {Zhiling Yan and Dingjie Song and Hanrong Zhang and Wei Liang and Yuxuan Zhang and Yutong Dai and Lifang He and Philip S. Yu and Ran Xu and Xiang Li and Lichao Sun},
year = {2026},
eprint = {2606.06741},
archivePrefix = {arXiv},
primaryClass = {cs.AI},
url = {https://arxiv.org/abs/2606.06741}
}
Zhiling Yan1,*, Dingjie Song1,*, Hanrong Zhang2, Wei Liang1, Yuxuan Zhang3,4, Yutong Dai5, Lifang He1, Philip S. Yu2, Ran Xu5, Xiang Li6, Lichao Sun1,β
1 Lehigh University Β Β·Β 2 University of Illinois Chicago Β Β·Β 3 University of British Columbia Β Β·Β 4 Vector Institute Β Β·Β 5 Salesforce AI Research Β Β·Β 6 Massachusetts General Hospital & Harvard Medical School
* Equal contribution Β Β β Corresponding author
Sign in to join the discussion.
No comments yet. Be the first to say what this is good for.

Write HTML. Render video. Built for agents.
Ultra-lightweight, open-source, self-hosted personal AI agent framework in Python with WebUI, tools, memory, MCP, multi-agent workflows, automation, and chat apps
SkillOpt is a text-space optimizer that trains reusable natural-language skills for frozen LLM agents through trajectory-driven edits, validation-gated updates, and deployable best_skill.md artifacts.

Omnigent is an open-source AI agent framework and meta-harness: orchestrate Claude Code, Codex, Cursor, Pi, and custom agents β swap harnesses without rewriting, enforce policies and sandboxing, and collaborate in real time from any device.
A theoretical reconstruction of the Claude Mythos architecture, built from first principles using the available research literature.
π·οΈ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!