# SkillsBench — benchflow-ai/skillsbench + Aparna Dhinakaran cikk összekapcsolása

**Források:**
- GitHub repo: https://github.com/benchflow-ai/skillsbench (Apache 2.0)
- Dhinakaran cikk: https://x.com/aparnadhinak/status/2074569427346174039
- HF dataset: https://huggingface.co/datasets/benchflow/skillsbench
- Weboldal: https://www.skillsbench.ai
- Dátum: 2026-07-07 (cikk) / 2026-07-17 (feldolgozás)

## Mi a SkillsBench?

A Dhinakaran-cikk központi empirikus állítása az volt, hogy a **48%**-a a publikált skill-eknek az első verzióban **negatív eval delta-t** produkál — vagyis rontja a modell teljesítményét. A cikk ezt "wake-up call"-nak szánta, de nem adott egy konkrét, megismételhető mérési keretrendszert. A **benchflow-ai/skillsbench** pont ezt a hiányzó keretrendszert pótolja: "the first benchmark for evaluating how well AI agents use skills".

A benchmark:
- **101 task** jelenleg (87 runnable a `tasks/`, 14 a `tasks-extra/`-ban, a `tasks-extra` hitelesítés-igényes feladatokat tartalmazza)
- **Célzott modellek:** GPT-5.5, Claude Opus 4.8, Gemini 3.1 Pro, GLM 5.1, Kimi K2.6, **MiniMax M3** (a saját default modellünk)
- **SOTA performance cél:** <50% a 2+ skill kompozíciót igénylő feladatokon
- **8 kategória:** office-white-collar, software-engineering, science-research, stb.
- **gym-style benchmarking:** ugyanaz a feladat többször futtatva, with-skill vs. no-skill összehasonlítással

## Hogyan kapcsolódik a Dhinakaran-cikk 7 alapelvéhez?

A SkillsBench Task Quality Rubric és a "What Makes a Good Skill" szekció a Dhinakaran-cikk 7 alapelvének **implementálható, mérhető változata**:

| Dhinakaran alapelv | SkillsBench megfelelő |
|---|---|
| 1. **Behavior/operation matrix** | A task.md frontmatterben `task_type` + `modality` + `interface` + `skill_type` YAML listák (taxonomy.yaml validálja). A skill SKILL.md-jében a "Trigger conditions" implicit a `description` frontmatterben. |
| 2. **Zero decision space** | A task prompt **explicit szabálya**: "Do not mention skill names or tell the agent which skills to use." A skill kiválasztása az agent dolga, a feladat irreleváns a skill-választáshoz. |
| 3. **Eval-driven iteration** | Minden tasknak **kötelező** az oracle (`solve.sh`) reward 1.0 ellenőrzése ÉS **agent run with/without skills** összehasonlítás. A PR csak akkor nyitható meg, ha mindkét futás dokumentálva van. |
| 4. **Iteratively designed and rigorously tested** | A PR checklist 5 lépéses: `bench tasks check` + oracle pass + agent with-skills + agent no-skills + PR description with pass rates. A "Look at trajectories, not just pass/fail" explicit elvárás. |
| 5. **Measures context budget** | A skill SKILL.md `references/` és `scripts/` alkönyvtárakra bontása — a hosszú részletek elkülönítve, a SKILL.md tömör marad. Ez a kontextuális költség-becslés gyakorlati megfelelője. |
| 6. **Selectively loaded** | A `--skill-mode with-skill` és `--skill-mode no-skill` opciók a benchmark CLI-ben. A skill-ek NEM a Docker image-be vannak bake-elve, hanem runtime injektálódnak — ez a "selective load" alapja. |
| 7. **Tested across model families** | A célzott modell-lista 6 különböző családból: OpenAI, Anthropic, Google, ZhipuAI, Moonshot, MiniMax. Minden task minden modellen fut, és a delta a "skill impact" mérőszáma. |

A **Task Quality Rubric 5 szempontja** (Authenticity, Skill quality, Verification, Instructions, Environment) a Dhinakaran-cikk "engineering, not magic" üzenetének operacionalizálása. A **"What Makes a Good Skill"** szekció 5 szabálya (Explain non-obvious workflow knowledge, Reuse scripts and references, Stay focused, Avoid task-specific filenames, Avoid task-specific answers) a skill-írás gyakorlati kódexe.

A két forrás együtt tehát: a **cikk adja a filozófiát és a 48%-os adatot, a SkillsBench adja a mérési és iterációs eszköztárat**.

## A SkillsBench task csomag struktúrája

```
tasks/<task-id>/
  task.md            # YAML frontmatter + emberi prompt
  environment/
    Dockerfile       # sandbox, pinned dependencies
    <input fájlok>   # fagyasztott input adatok
    skills/
      <skill-name>/
        SKILL.md     # skill definíció
        references/  # hosszú részletek
        scripts/     # újrahasználható kód
  oracle/
    solve.sh         # ember által írt referencia megoldás
  verifier/
    test.sh          # bash wrapper
    test_outputs.py  # pytest, 4-10 fókuszált teszt
```

A **reward** egy skalár: 1.0 ha minden teszt átment, 0.0 ha bármelyik fail-elt. A `/logs/verifier/reward.txt`-be íródik.

## Mit tanulhat a Hermes ebből a két forrásból?

A Hermes saját skill-írási gyakorlatában a Dhinakaran-cikk és a SkillsBench együttesen **5 konkrét fejlesztési területet** azonosít:

### 1. A skill-ek jelenleg nem mérnek saját teljesítményt (Dhinakaran #3)

A mappa 30+ skillje jelenleg **manuális reflexió** alapján fejlődik, nincs eval-driven iteration. A javaslat:

- **Golden dataset** építése: 10-20 kanonikus felhasználói kérés, amelyekhez az "elvárt viselkedés" + "nem elvárt viselkedés" definíció tartozik (hasonló a `references/eval-golden-dataset.json`-hoz, de a **skill-ekre** nem a summary-kra)
- **Eval script** (`eval_skills.py` ⚠️ *(a tervezett eval-keretrendszer nem készült el; a szerepét a vette át)*): minden skill-t minden golden kérdéssel futtat, és rögzíti a delta-t baseline (no-skill) vs. with-skill között — pont a SkillsBench `--skill-mode` mintára
- **PR workflow**: a skill-ek módosítása után a `eval_skills.py` futtatása kötelező, és a delta-t a `changelog` bejegyzésben dokumentálni kell

### 2. A skill-ek 0%-a van multi-model tesztelve (Dhinakaran #7)

A `references/hermes-update-downgrade.md` rögzíti, hogy 8 modell van a konfigurációban (`gemma4:26b-mlx`, `qwen3.5:27b`, `glm-5.2:cloud`, `kimi-k2.7-code:cloud`, `minimax-m3:cloud`, `deepseek-v4-flash:cloud`, `deepseek-v4-pro:cloud`, `x/flux2-klein:4b`), de **egyetlen skill sincs** mindegyiken tesztelve. A javaslat:

- **Mini-benchmark**: 5-6 reprezentatív skill (`podcast-processing`, `hermes-agent-skill-authoring`, `requesting-code-review`, `simplify-code`, `intelligence-gathering`) futtatása mind a 8 modellen, a golden dataset-en
- **A delták dokumentálása** egy `SKILL_MODEL_COMPATIBILITY.md` ⚠️ *(a fájl azóta megszűnt; tartalma a mentésben megvan)* fájlban
- **Model-specifikus skill-verziók** opcionális bevezetése, ha egy skill csak bizonyos modelleken teljesít jól

### 3. A skill-ek "Zero decision space" elve hiányos (Dhinakaran #2)

A SKILL.md-k jellemzően "Use when X" triggerrel indulnak, de a "Don't use for: Y" counter-trigger **opcionális** és ritkán kitöltött. A javaslat:

- **Minden SKILL.md frontmatterben** kötelező a `do_not_use_for:` mező (a jelenlegi `description` mellé)
- A SkillsBench "Do not mention skill names" elvének inverz alkalmazása: a skill explicit megmondja, **mikor NEM** alkalmazható, hogy az LLM ne hozzon rossz döntést a "should I apply this?" kérdésben

### 4. A skill-ek kontextus-költsége nem mért (Dhinakaran #5)

A skilljei a `skill_view` loader-en keresztül töltődnek, de a tényleges token-költségük nem ismert. A javaslat:

- **Token-költség mérése**: minden SKILL.md-t a `wc -c` + 4 char/token közelítéssel megmérni, és a fájl elejére rakni egy `## Token cost: ~XXX tokens` sort
- A **nagy skill-ek** (pl. `podcast-processing` 68 KB → ~17K token) **különösen problémásak**: minden alkalommal betöltődnek, amikor a user podcastot küld, és a 17K token felemészti a kontextus-ablakot
- A **megoldás**: a SKILL.md tömör maradjon (max 5-10K token), a részletek `references/*.md` fájlokban legyenek, amiket a skill_view második hívással lehet betölteni (ezt a frissített 1.7.0 verziójú `podcast-processing` már megoldja)

### 5. A skill-írási konvenciók nincsenek egységesítve (SkillsBench "What Makes a Good Skill")

A `hermes-agent-skill-authoring` skill leírja a konvenciókat (frontmatter, méretlimit, peer-matched struktúra), de a 30+ skill közül sok **nem tartja be** a 8-15K-os peer-matched méretet. A javaslat:

- **CI lint**: script, ami minden SKILL.md-t ellenőriz: (a) méret < 100K, (b) description ≤ 1024 char, (c) frontmatter valid YAML, (d) `name`/`description`/`version`/`author`/`license`/`metadata.hermes.{tags, related_skills}` mezők megvannak
- **A lint futtatása** a skill-frissítés után, és a `references/eval-pitfalls.md`-hez hasonlóan a kimenet a changelog-ba kerül
- **Reference skill** a `hermes-agent-skill-authoring` 1.1.0 → 1.2.0 frissítése, ami a SkillsBench 5 szabályát beépíti a saját authoring-elvekbe

## Konkrét next step

A javasolt prioritási sorrend (a saját rendszer értéke és a fejlesztési költség alapján):

1. **Azonnal (1 session)**: A `SKILL_MODEL_COMPATIBILITY.md` ⚠️ *(a fájl azóta megszűnt; tartalma a mentésben megvan)* fájl létrehozása, az 5-6 reprezentatív skill gyors átnézésével (nem teljes eval, csak manuális "ez a skill melyik modelleken fut jól" reflexió). Ennek előkészítése: a mostani beszélgetés eredménye.
2. **Következő session (1-2 óra)**: A `eval_skills.py` ⚠️ *(a tervezett eval-keretrendszer nem készült el; a szerepét a vette át)* v1 — minimális eval-keretrendszer 5-10 golden question-nel, ami a skill-ek delta-ját méri.
3. **Skill-authoring frissítés (30 perc)**: A `hermes-agent-skill-authoring` 1.2.0-ás verziója, ami a SkillsBench 5 szabályát + a Dhinakaran-cikk 7 alapelvét beépíti a saját authoring-elvekbe.
4. **CI lint (30 perc)**: A script + hook a session-ökbe.

Az 1. lépés nem igényel kódolást, csak a mostani beszélgetés tanulságainak dokumentálását. Ha akarod, most megcsinálom, és a `SKILL_MODEL_COMPATIBILITY.md` ⚠️ *(a fájl azóta megszűnt; tartalma a mentésben megvan)* fájl mellé egy új `references/skill-authoring-best-practices.md` is kerül a Dhinakaran-cikk + SkillsBench alapján.

## Kulcsszavak

skill design, eval-driven iteration, behavior matrix, zero decision space, context budget, model-agnostic skill, multi-model testing, skill benchmark, SkillsBench, benchflow-ai, BenchFlow SDK, task.md package, with-skill vs no-skill, gym-style benchmarking, Hermes skill authoring, 48% negative eval delta, Aparna Dhinakaran, Arize AI, Apache 2.0.

## Forrás / Wiki raw

- **Forrás:** (a cikk önálló összefoglalója)
- **Skill authoring frissítés terv:** (1.2.0 upgrade a Dhinakaran + SkillsBench alapelvekkel)
