Sandbox
@cxcscmu/SkillLearnBench

Benchmark and CLI for agent skill generation

SkillLearnBench provides a benchmark for skill-generating agents on 20 tasks, with task instances, verifiers, and pre-generated skill sets. The main scripts generate skills and score them against the included tasks, so you can compare different continual learning methods side by side.

83 stars5 forksPythonUpdated 2mo ago
Who it's for

Builders who want to measure how well an agent learns reusable skills from real tasks.

What it delivers

You can generate skills, run them against benchmark tasks, and compare methods with the same evaluation setup.

What it does

20 task benchmark

Includes 20 real-world tasks across software, search, productivity, data, creative, and utility categories.

Four baseline methods

Provides one-shot, self-feedback, teacher-feedback, and skill-creator baselines for skill generation.

Skill evaluation runner

Uses `evaluate_skills.py` to load skills from a path and write evaluation reports per task and method.

Skill generation runner

Uses `generate_skills.py` to create skills for chosen tasks, methods, and models.

Task verifiers and instances

Stores each task's instance data and test logic under `tasks/`, so generated skills can be checked automatically.

Prebuilt skill sets

Ships committed skill trees under `skills/` for the benchmark methods and human-authored skills.

How to get it

  1. 1Run
    pip install anthropic openai rich tomli dataclaw json-repair   # tomli is only required on Python < 3.11
    dataclaw --help                                                # verify that the dataclaw CLI is on your PATH
    cp .env.example .env                                           # fill in your API keys (some tasks also require extra variables such as GH_TOKEN — see .env.example)

README

SkillLearnBench

SkillLearnBench

Homepage Paper Tasks Methods License

SkillLearnBench: A benchmark for continual learning methods that generate agent skills for real-world tasks.
20 skill-dependent tasks · 15 sub-domains · 100 verified instances

🔥Exciting news!🔥 Our paper has been accepted to COLM 2026! 🎉🎉

Installation

pip install anthropic openai rich tomli dataclaw json-repair   # tomli is only required on Python < 3.11
dataclaw --help                                                # verify that the dataclaw CLI is on your PATH
cp .env.example .env                                           # fill in your API keys (some tasks also require extra variables such as GH_TOKEN — see .env.example)

Docker is a hard requirement, since every agent trial runs inside a container. Install it from docs.docker.com/get-docker.

Quick Start of Evaluation

# Always dry-run first — preview what will run, no execution
python evaluate_skills.py court-form-filling github-repo-analytics --dry-run

# Evaluate with human-authored skills (default, `skills/human_authored`) on two tasks (court-form-filling, github-repo-analytics)
python evaluate_skills.py court-form-filling github-repo-analytics

# The committed `skills/<method>/` tree holds pre-generated skills for all baselines,
# e.g., compare method: one-shot (claude-sonnet-4-6) vs. human-authored vs. no-skill baseline.
# Warning: This command will evaluate these 3 methods across all 20 tasks in SkillLearnBench and requires some time to complete.
python evaluate_skills.py --skill-path skills/b1-one-shot-claude-sonnet-4-6 skills/human_authored none

When running evaluate_skills.py, the code will load the correspondent skills from skill-path, and evaluate them in the tasks of SkillLearnBench. Evaluation results are written to output/evaluation_reports/<method>/<task>/, a report.csv record the average results of each metrics.

⚠️ Keep --max-workers ≤ 50 to avoid API rate limits.

(1) Tasks

SkillLearnBench contains 20 tasks across 6 real-world categories, with 100 instances in total.

CategoryTaskInstances
Software Engineeringpython-scala-translation2
nlp-paper-reproduction3
dependency-vulnerability-check5
github-repo-analytics5
fix-security-bug3
Information Retrievalenterprise-information-search6
travel-planning5
Productivity Toolsschedule-planning5
offer-letter-generator6
court-form-filling6
Data & Analyticsearthquake-plate-calculation6
financial-analysis6
weighted-gdp-calculation6
dbscan-parameter-tuning5
stock-data-visualization5
Content & Creativeanthropic-poster-design5
chinese-poem-generator5
video-object-counting5
Utilities & Otherorganize-messy-files6
temperature-simulation5

(2) Evaluation Dimensions

DimensionMetricsWhat it measures
Task SuccessPass rateBinary verifier outcome per trial
Skill QualityFunctional coverage, executability, safetyHow well a skill describes the task and avoids unsafe instructions
Trajectory QualityKey-point recall, execution order, completenessWhether the solving agent's action trace matches the expected solution path

The solving agent is powered by Claude Sonnet 4.6, and the LLM-as-judge uses GPT-5-mini.

Baselines

We implement four continual learning methods based on skill generation.

IDNameDescription
b1One-ShotThe agent generates a skill set in a single pass.
b2Self-FeedbackThe agent first generates an initial skill set and uses it to attempt the task. After execution, it reviews the trajectory, identifies issues, and refines the skills. This cycle repeats K=2 times (i.e., K−1 rounds of feedback) without any external supervision.
b3Teacher-FeedbackAfter each failed attempt, the agent asks the teacher questions, and the teacher provides directional guidance without revealing the ground-truth skill. The agent then updates its skills and retries the task. The skill set is regenerated up to K=3 times, with up to K−1 QA rounds triggered by failed attempts. This setting simulates a domain expert helping the agent improve.
b4Skill CreatorClaude's official skill-creator. The agent follows a structured multi-stage process: analyzing the task intent, investigating edge cases and dependencies, writing a skill specification, and validating it with automated checks.

The agent can be powered by any LLM. In our codebase we provide results for Claude and Gemini (claude-haiku-4-5, claude-sonnet-4-6, and claude-opus-4-6; gemini-3.1-flash-lite-preview, gemini-3-flash-preview, and gemini-3.1-pro-preview).

Run a baseline to generate skills:

python generate_skills.py --tasks court-form-filling --methods b1-one-shot --models claude-sonnet-4-6

(1) Evaluate other LLMs with the existing four baselines

You can plug additional LLMs into the four baselines above. See BASELINES.md for more details.

(2) Evaluate other continual learning methods

To evaluate your own continual learning method, use the tasks folder, which provides the verifier (in each tests subfolder) and the instance data for every task. Feed the instance-1 information together WITHOUT its verifier into your method to generate skills. The generated skills should follow the same layout as any subfolder in skills. Then evaluate your method with python evaluate_skills.py --skill-path your_skill_path.

See CONTRIBUTING.md for the full set of options and instructions on adding new methods.

Citation

@article{zhong2026skilllearnbench,
  title={SkillLearnBench: Benchmarking Continual Learning Methods for Agent Skill Generation on Real-World Tasks},
  author={Zhong, Shanshan and Lu, Yi and Ning, Jingjie and Wan, Yibing and Feng, Lihan and Ao, Yuyi and Ribeiro, Leonardo F. R. and Dreyer, Markus and Ammirati, Sean and Xiong, Chenyan},
  journal={arXiv preprint arXiv:2604.20087},
  year={2026},
  url={https://arxiv.org/abs/2604.20087}
}

Files in the repo

Repository payload16 top-level entries
  • agents
  • baselines
  • core
  • eval_keypoints
  • evaluation
  • skills
  • tasks
  • .env.example
  • .gitignore
  • BASELINES.md
  • CONTRIBUTING.md
  • evaluate_skills.py
  • generate_skills.py
  • LICENSE
  • README.md
  • SkillLearnBench_logo.png

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More tools

JuliusBrussee/
caveman

🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman

105k
1 add
MemPalace/
mempalace

The best-benchmarked open-source AI memory system. And it's free.

59k
stablyai/
orca

Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

66k

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

132k

Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors

64k
headroomlabs-ai/
headroom

Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.

71k