Agent Skills ja SKILL.md: asteittainen paljastaminen mitattuna
Viisi skill-kansiota: 128 374 tokenia ohjeita vie vain 253 tokenia contextia. Lyhennä kuvauksia, ja agent ei löydä niitä.
Tällä sivulla
Otetaan projekti, jossa on asennettuna viisi julkaistua skill-kansiota. Tässä on niiden hinta.
ls .claude/skills/next-best-practices next-cache-components vercel-composition-patterns
vercel-react-best-practices vercel-react-native-skillsskill level 1 level 2 level 3 files
next-best-practices 40 966 19,374 19
next-cache-components 28 2,334 0 0
vercel-composition-patterns 59 533 10,667 13
vercel-react-best-practices 68 1,670 53,670 75
vercel-react-native-skills 58 950 37,957 41
------ ------- --------
total 253 6,453 121,668Satakaksikymmentäkahdeksan tuhatta tokenia ohjeita, esimerkkejä ja sääntöjä — enemmän kuin mahtuu 128 000-tokenin context window -ikkunaan — ja kaikkien viiden saatavilla pitämisen pysyvä hinta on 253 tokenia, kaksi kymmenesosaa prosentista. Mikään muu tässä kurssissa ei ole tämän muotoinen. Tool-määritelmästä maksetaan jokaisessa pyynnössä riippumatta siitä, käytetäänkö sitä, ja luku 26 mittasi yhden MCP serverin hinnaksi 1 619 tokenia ennen kuin se tekee yhtään mitään: kolmekymmentäkaksi kertaa yllä olevan taulukon keskimääräinen tason 1 rivi.
Tämä luku käsittelee mekanismia, joka tuottaa tuon suhteen, kahta tapaa joilla se rikkoutuu, ja kysymystä, johon mekanismi pakottaa ja johon lähes kukaan ei vastaa: kun sinulla on jokin tieto, mihin neljästä paikasta se kuuluu.
Miksi tässä luvussa ei ole ohjelmointikieltä
Linkki osioon: Miksi tässä luvussa ei ole ohjelmointikieltäLuku 14 asetti säännön kurssin jälkimmäiselle puoliskolle — yhteydet, uudelleenyritykset ja peruutus ovat TypeScriptiä — ja määritteli viisi poikkeusta. Tämä on yksi niistä, eikä syy ole mieltymys.
Skill on Markdown-tiedosto. Ei tiedosto, joka konfiguroi ohjelman, eikä tiedosto, jonka ohjelma kääntää: dokumentti, jonka malli lukee, samalla tavalla kuin se lukee kirjoittamasi viestin. Ohjelmointikielen antaminen tälle luvulle tarkoittaisi, ettei formaattia ole ymmärretty, ja juuri se väärinkäsitys on yleisin skill-kansioista. Kaikki alla on Markdownia ja YAMLia sekä yksi pieni shell-skripti, jonka tarkoitus on nimenomaan näyttää, minne koodi kuuluu skillin sisällä ja minne ei.
Lasku, jonka se ratkaisee, ja se on luvun 16 aritmetiikkaa
Linkki osioon: Lasku, jonka se ratkaisee, ja se on luvun 16 aritmetiikkaaTässä on todellinen ohje: miten yksi yritys kirjoittaa julkaisutiedotteensa. Se on menettely, ei mieltymys — siinä on järjestetty askeljoukko, taksonomia, ääni, malli ja skripti, joka kerää raaka-aineen.
Laita se kaikki system promptiin, kuten useimmat tiimit tekevät, ja luvun 16 aritmetiikka ottaa vallan. System prompt on etuliite, ja etuliitteestä maksetaan jokaisessa kutsussa. Mitattuna o200k_base-työkalulla tätä lukua varten kirjoitetusta kansiosta:
whole thing pasted into the system prompt 1,716 x 40 = 68,640 input tokens $0.1373
as a skill, activated once on turn 12 46 x 40
+ 324 (SKILL.md body)
+ 665 (two reference files read)
= 2,829 input tokens $0.0057
as a skill, never activated at all 46 x 40 = 1,840 input tokens $0.0037Kaksikymmentäneljä kertaa halvempi, kun sitä käytetään, kolmekymmentäseitsemän kertaa halvempi, kun sitä ei käytetä. Hinnat ovat luvusta 16: $2,00 miljoonalta input-tokenilta.
Nyt rehellinen vastaväite, koska luku, joka ohittaisi sen, olisi mainontaa. Prompt caching sulkee rahallisen kuilun enimmäkseen. System prompt on vakaa ja se on ensimmäisenä, mikä tekee siitä parhaan mahdollisen cache-ehdokkaan; hinnalla $0,20 miljoonalta cachetulta input-tokenilta samat 68 640 tokenia maksavat $0,0168 eivätkä $0,1373. Yhä kolme kertaa skillin verran, mutta ei enää eri suuruusluokkaa.
Raha ei koskaan ollut vahvin argumentti. Tämä on:
Caching tekee pysyvästä etuliitteestä halvemman. Se ei tee siitä pienempää.
Vuorolla 40 system-prompt-versiossa on yhä 1 716 tokenia julkaisutiedotepolitiikkaa ikkunassa keskustelussa, joka koskee aivan muuta, kilpailemassa siitä, mitä luku 24 kutsui mallin attention-budjetiksi. Skill-versiossa niitä on 46. Cachea väärä asia, ja olet ostanut alennuksen häiriötekijästä.
Kaavana kirjoitettuna, kun on vuorojen määrä, metadata, body, koko nippu ja tosiasiassa luettujen niputettujen tiedostojen joukko:
Koko tämä luku on ero sen välillä, kerrotaanko toinen termi luvulla vai luvulla yksi tai nolla.
Mikä skill oikeasti on
Linkki osioon: Mikä skill oikeasti onSkill on hakemisto. Spesifikaatio on tarpeeksi lyhyt esitettäväksi kokonaan:
release-notes/
├── SKILL.md # required: YAML frontmatter + Markdown instructions
├── scripts/ # optional: executable code
├── references/ # optional: documentation read on demand
├── assets/ # optional: templates, schemas, examples
└── ... # anything else you likeSKILL.md täytyy alkaa YAML-frontmatterilla, ja täsmälleen kaksi kenttää vaaditaan: name ja description.1 Neljä muuta ovat valinnaisia, eikä muita ole määritelty:
| Kenttä | Pakollinen | Rajoite |
|---|---|---|
name | kyllä | 1–64 merkkiä, pieniä kirjaimia, numeroita ja yhdysmerkkejä; ei alussa, lopussa tai kahta peräkkäistä yhdysmerkkiä; täytyy vastata hakemiston nimeä |
description | kyllä | 1–1024 merkkiä, ei tyhjä; kertoo mitä skill tekee ja milloin sitä käytetään |
license | ei | lisenssin nimi tai niputetun lisenssitiedoston nimi |
compatibility | ei | enintään 500 merkkiä: tarkoitettu tuote, vaaditut paketit, verkkoyhteys |
metadata | ei | vapaa kartta string-avaimista string-arvoihin omaa toolingia varten |
allowed-tools | ei | välilyönnein erotettu lista ennalta hyväksytyistä tools; merkitty kokeelliseksi |
Tässä on julkaisutiedote-skill kokonaisuudessaan, alle kolmenkymmenen rivin bodylla:
---
name: release-notes
description: Write the release notes for a tagged version in this company's house style. Use when preparing a release, drafting a changelog entry, or when someone asks for the notes for a version number or a tag.
allowed-tools: Bash(git log:*) Bash(git tag:*) Read
---
# Release notes
## Procedure
1. Run `scripts/collect.sh <previous-tag> <new-tag>`. It prints one line per merged
pull request: number, title, author and the labels.
2. Drop every line whose labels contain `internal`, `ci` or `chore`.
3. Put each surviving line into exactly one of the four categories in
[references/categories.md](references/categories.md). A change that seems to fit two
belongs in the higher one; the order in that file is the order of precedence.
4. Rewrite each line as a sentence in the voice defined in
[references/voice.md](references/voice.md). The pull request title is a note to
the team; the release note is a note to a stranger.
5. Check the result against [references/examples.md](references/examples.md).
## The one rule that is not negotiable
Every note says what a person can now do, or what stopped happening to them. If a
sentence can only be understood by someone who has read the diff, it is not finished.Lue, mitä tuo body on. Se ei ole politiikka — se on sisällysluettelo ja toimintajärjestys. Politiikka elää kolmessa tiedostossa, jotka se nimeää mutta joita se ei sisällytä. Ja ensimmäinen askel antaa työn skriptille, koska skriptin koodi ei koskaan päädy context window -ikkunaan: vain sen output päätyy.2
Kolme tasoa ja mitä kukin maksaa
Linkki osioon: Kolme tasoa ja mitä kukin maksaaLatausmallilla on nimi ja kolme vaihetta. Spesifikaatio esittää ne token-budjetin kanssa:1
- Metadata, noin 100 tokenia:
namejadescription, ladattu käynnistyksessä jokaiselle asennetulle skillille. - Ohjeet, suositus alle 5 000 tokenia:
SKILL.md-body, ladattu kun skill aktivoidaan. - Resurssit, tarpeen mukaan: niputetut tiedostot, ladattu vain kun jokin vaatii niitä.
Referenssidokumentaatio lisää samaan taulukkoon neljännen sarakkeen — milloin ladataan, token-hinta, sisältö — ja tärkeä rivi on kolmas: ei mitään ennen käyttöä.3 Siellä on myös lause, joka tiivistää koko luvun:
Files don't consume context until accessed, so Skills can include comprehensive API documentation, large datasets, or extensive examples. There's no context penalty for bundled content that isn't used.3
Tämän luvun alussa oleva mitattu taulukko on tuo väite tarkistettuna viidellä skillillä, joita kukaan ei kirjoittanut tätä artikkelia varten. Kahta riviä kannattaa lukea rinnakkain.
next-best-practices sisältää 966-tokenin bodyn, joka linkittää 19 tiedostoon, joissa on 19 374 tokenia. Pyydä sitä korjaamaan hydration error, ja agent lukee bodyn sekä hydration-error.md: 1 409 tokenia 20 340:stä, neljäntoista kertoimen, eikä muita kahdeksaatoista tiedostoa koskaan avata.
next-cache-components sisältää 2 334-tokenin bodyn eikä lainkaan niputettuja tiedostoja. Se on validi skill ja hyvin kirjoitettu sellainen, eikä sillä ole tasoa 3 paljastettavaksi. Se on tekniikan rehellinen raja: progressive disclosure säästää vain, jos jotain voidaan siirtää myöhemmäksi. Skill, jonka tieto ei hajoa osiin, maksaa koko bodynsä aktivoinnissa, ja jäljellä oleva ainoa vipu on olla aktivoimatta sitä.
Riko se: kuvaus on koko interface
Linkki osioon: Riko se: kuvaus on koko interfaceTaso 1 on yhdestä lauseesta tehty routing-päätös. Mikään muu skillissä ei vaikuta siihen, avataanko sitä koskaan — ei bodyn laatu, eivät esimerkit, eivät skriptit. Kuvaus ei siis ole dokumentaatiota. Se on query surface, ja se voi olla väärä.
Spesifikaatio sanoo tämän hyvän ja huonon esimerkin muodossa, ja huono esimerkki on neljä sanaa: description: Helps with PDFs.1 Se kannattaa mitata eikä vain hyväksyä.
Kuusi skill-kansiota, jokaisella uskottava kuvaus, joka sanoo mitä se tekee ja milloin sitä käytetään. Kaksikymmentäneljä pyyntöä, neljä per skill, muotoiltuna kuten ihminen ne muotoilisi ja ilman skillin nimeämistä. Malli näkee kuusi riviä system promptissaan ja sen täytyy vastata yhdellä nimellä tai NONE. Greedy decoding, jotta se toistuu. Sitten samat 24 pyyntöä samoilla kuudella skillillä, mutta kuvaukset leikattuna pelkkään aiheeseen.
rich - sql-review: Review a SQL migration for locks, missing indexes and unsafe
defaults before it runs on the production database. Use when someone adds
or changes a migration, an index, or a table column.
thin - sql-review: Helps with SQL.rich 295 tokens of level 1 for six skills 18/24 correct = 75.0 % [55.1, 88.0]
thin 81 tokens of level 1 for six skills 10/24 correct = 41.7 % [24.5, 61.2]
paired: rich only 9, thin only 1, two-sided sign test p = 0.0215
answered NONE: rich 1 of 24, thin 9 of 24Lue ensin intervallit, kuten luku 4 vaati ja luku 29 vaatii uudelleen: ne menevät päällekkäin, eivätkä 24 tapausta voi järjestää kahta järjestelmää pelkkien aggregaattien perusteella. Parittainen vertailu ratkaisee asian, ja se on luvun 15 instrumentti: niistä kymmenestä tapauksesta, joissa kaksi haaraa olivat eri mieltä, yhdeksän meni rikkaille kuvauksille ja yksi ohuille. Se on todettu tavallisella kynnyksellä.
Lue nyt viimeinen rivi, joka on varsinainen löydös. Ohuilla kuvauksilla malli vastasi NONE yhdeksään kahdestakymmenestäneljästä pyynnöstä. Ei väärä skill: ei mitään skill-kansiota. Tässä niistä neljä sanatarkasti:
"Check this migration before I run it against production." -> release-notes
"Will this CREATE INDEX lock writes?" -> NONE
"Is this ALTER TABLE safe to deploy at peak traffic?" -> NONE
"Is 'seamless and powerful' allowed in the app store listing?" -> next-best-practicesTäydellinen sql-review-skill oli asennettuna, bodylla, esimerkeillä ja checklistillä, eikä sitä avattu koskaan, kolme kertaa peräkkäin, niihin kolmeen kysymykseen, joita varten se oli kirjoitettu. Tasot 2 ja 3 ovat merkityksettömiä skillille, johon taso 1 ei koskaan yllä.
Korjauksen hinta: 214 tokenia, ero 295:n ja 81:n välillä, jaettuna kuudelle skillille. Tämä on luvun 18 löydös toisesta suunnasta. Siellä pelkän toolin kuvauksen muuttaminen vei päivämäärämuotoilun tuloksesta 2 oikein 24:stä tulokseen 24 oikein 24:stä. Tässä pelkän skillin kuvauksen muuttaminen vie aktivoinnin 10:stä 24:stä 18:aan. Molemmissa tapauksissa järjestelmän halvin korjaus on lause, ja molemmissa tapauksissa lauseen täytyy nimetä trigger eikä vain aihe: ei mikä asia on, vaan mitä käyttäjä on juuri sanonut, kun se soveltuu.
Yksi varaus, jonka tämä luku on velkaa omille standardeilleen. Tämä on puolen miljardin parametrin malli, ja frontier model routtaa paljon paremmin kuin 75 %. Lue mekanismi, älä suuruusluokkaa: routing-signaali on yhden lauseen mittainen riippumatta siitä, mikä malli sitä lukee, eikä mikään malli voi valita tiedon perusteella, jota et laittanut siihen lauseeseen.
Riko se uudelleen: hätäuloskäynti, joka maksaa 26 362 tokenia
Linkki osioon: Riko se uudelleen: hätäuloskäynti, joka maksaa 26 362 tokeniaToinen epäonnistuminen on ensimmäisen vastakohta. Skill löytyy, tasot on jaettu oikein, ja agent lukee silti kaiken.
vercel-react-best-practices on aidosti hyvin rakennettu skill. Sen 1 670-tokenin body on prioriteettitaulukko kahdeksasta kategoriasta ja pikaviite, joka nimeää 70 sääntötiedostoa, yhden rivin kutakin kohti. Säännöt ovat levyllä sen vieressä: 70 tiedostoa, pienin 132 tokenia, mediaani 319, suurin 1 052. Kysy yksi kysymys barrel importeista, ja rehellinen hinta on body plus yksi tiedosto — alle 2 400 tokenia 53 670:n nipusta.
Sitten bodyn viimeinen rivi sanoo tämän:
## Full Compiled Document
For the complete guide with all rules expanded: `AGENTS.md`AGENTS.md on 26 362 tokenia. Se on 70 sääntötiedostoa ketjutettuna yhteen: niiden summa on 25 784, ja erotus on niiden väliset otsikot. Skill siis tarjoaa agentille valinnan yhden mediaanisäännön lukemisen hintaan 319 tokenia ja saman sisällön, kokonaan, lukemisen välillä kahdeksankymmentäkolminkertaiseen hintaan — ja tarjoaa valinnan lauseessa, jossa ei ole hintaa eikä ehtoa sille, milloin se kannattaa tehdä.
Se ei ole bugi eikä tiedosto ole väärin; koottu dokumentti on aidosti hyödyllinen ihmiselle ja agentille, jota on pyydetty auditoimaan kokonainen codebase. Se on tason 3 tiedosto tason 2 kutsulla, ja oppi yleistyy tämän yhden skillin ohi: jokaisen polun ulos tiedostosta SKILL.md pitäisi sanoa, mitä se maksaa ja milloin se on hintansa arvoinen, koska mallilla ei ole tapaa tietää, että tiedostonimi on kahdeksankymmentäkolme kertaa kalliimpi kuin sen yläpuolella oleva tiedostonimi.
Samassa kansiossa on pienempi oppi vanhenemisesta. Body sanoo ”70 sääntöä 8 kategoriassa” ja listaa 70; rules/-hakemisto sisältää 72 tiedostoa, joista kaksi ovat scaffoldingia (_template.md ja _sections.md); ja sidecar metadata.json sanoo ”40+ rules”. Kolme laskuria samasta joukosta yhdessä kansiossa, yksi oikein, yksi aritmeettinen ja yksi jäänyt aiemmasta versiosta. Skill on dokumentti, ja dokumentit lahoavat täsmälleen kuten koodikommentti, joka on ajelehtinut erilleen vieressään olevasta koodista — sillä erolla, että tätä lukee kone, joka ei kohota kulmakarvaa.
Kentät, jotka referenssitoteutus lisää, ja portability-ansa
Linkki osioon: Kentät, jotka referenssitoteutus lisää, ja portability-ansaAvoin spesifikaatio määrittelee kuusi frontmatter-kenttää. Referenssitoteutus, Claude Code, hyväksyy kaksikymmentä.2 Viisi ryhmää kannattaa tuntea nimeltä, koska niissä formaatti lakkaa olemasta pelkkä dokumentti:
Luvat ja kutsuminen. allowed-tools ennalta hyväksyy tools sille vuorolle, joka kutsui skillin, ja lupa nollautuu seuraavassa viestissä; disallowed-tools poistaa ne. disable-model-invocation estää mallia lataamasta sitä itse, jolloin skillistä tulee komento, jonka ihminen ajaa. user-invocable: false tekee päinvastoin: piilossa ihmisiltä, vain mallin käytettävissä, taustatiedoksi.
Eristys ja hinta. context: fork ajaa skillin erillisessä sub-agent-contextissa omalla ikkunallaan — luvun 25 sub-agent-raja yhtenä YAML-rivinä — siten että agent valitsee tyypin ja background päättää, odottaako vuoro. model ja effort muuttavat, mikä malli ajaa skillin ollessa aktiivinen, vain kyseisen vuoron ajaksi.
Argumentit (arguments, argument-hint) antavat ihmisen välittää arvoja, jotka korvataan bodyyn, mikä tekee skillistä käyttökelpoisen slash-komentona. Rajaus (paths) rajoittaa aktivoinnin tiedostoihin, jotka vastaavat globia. Ja dynamic context injection on se, joka muuttaa ajattelumallia: muotoa !`git diff HEAD` oleva rivi ajetaan ennen kuin body lähetetään, ja sen output korvataan tekstiin. Dokumentti on template, ja osa siitä lasketaan lukuhetkellä.
Nyt ansa, ja se sanotaan samassa dokumentaatiossa: Claude Coden ulkopuolella — web-tuotteessa, Skills API:n kautta, paketoinnissa — vain kuusi määriteltyä kenttää sallitaan, ja mikä tahansa muu kenttä on kova virhe uploadissa.2 Skill, joka toimii täydellisesti yhdessä tuotteessa, ei siis asennu toiseen saman toimittajan tuotteeseen, ja se epäonnistuu frontmatterissa eikä missään sellaisessa, minkä voisit testata lukemalla proosan. Jos haluat skillin olevan portable, kuusi kenttää on koko budjetti. Jos et halua, sano se kentässä compatibility, joka on olemassa juuri tätä varten.
Taulukko, jota varten tämä luku on olemassa
Linkki osioon: Taulukko, jota varten tämä luku on olemassaNeljä asiaa sekoitetaan jatkuvasti toisiinsa, eikä sekaannus ole sanastollista pilkunviilausta: väärä valinta maksaa rahaa jokaisella vuorolla tai vie sinulta takuun, jonka luulit sinulla olevan.
| System prompt | Skill | Tool | MCP server | |
|---|---|---|---|---|
| Mikä se on | teksti jokaisessa pyynnössä | kansio, jonka juuressa on SKILL.md | JSON Schema plus endpoint koodissasi | prosessi tai palvelu, joka puhuu protokollaa |
| Mitä malli tekee | lukee sen aina | lukee sen, kun se päättää kuvauksen täsmäävän | kutsuu sitä ja odottaa tulostasi | kutsuu sitä hostin kautta, yksi client per server |
| Mitä se maksaa | koko pituutensa, joka vuorolla, ikuisesti | noin 50 tokenia per vuoro; body kerran, jos käytetään | sen schema, joka vuorolla; suoritus kun kutsutaan | jokainen schema plus serverin instructions, joka vuorolla |
| Mitä se voi taata | ei mitään — se on neuvo | ei mitään — se on neuvo, jonka malli voi ohittaa | kaiken, minkä koodisi pakottaa ennen toimintaa | kaiken, minkä server pakottaa |
| Kuka sen kirjoittaa | sinä | sinä, kollega tai toimittaja | sinä | joku muu, monille hosteille |
| Luku | 15 | tämä | 18 | 26 ja 27 |
Kaksi lihavoitua riviä ovat koko ero. Skill luetaan; tool kutsutaan. Skill on proosaa, joka saapuu context window -ikkunaan ja kilpailee attentionista kaiken muun siellä olevan kanssa; malli voi noudattaa sitä, lukea sen väärin tai ohittaa sen, eikä mikään järjestelmässä huomaa. Tool on kutsu, joka poistuu kokonaan mallin käsistä: koodisi vastaanottaa argumentit, validoi ne, tarkistaa oikeudet ja päättää. Luku 18 muotoili sen niin, että malli ehdottaa ja koodisi määrää, ja juuri tätä jakoa skillillä ei ole.
Siis kuusi todellista tapausta ratkaistuna:
”Vastaa käyttäjän kielellä. Älä koskaan ilmoita hintaa, jota sinulle ei ole annettu.”
Linkki osioon: ”Vastaa käyttäjän kielellä. Älä koskaan ilmoita hintaa, jota sinulle ei ole annettu.”System prompt. Se soveltuu joka vuorolla, se on rajoite eikä menettely, ja se on kahden lauseen mittainen. Jollain, joka soveltuu aina, ei ole mitään paljastettavaa asteittain, eikä discovery-rivistä maksaminen joka vuorolla kahden lauseen välttämiseksi joka vuorolla ole säästö.
”Miten täällä kirjoitamme julkaisutiedotteita.”
Linkki osioon: ”Miten täällä kirjoitamme julkaisutiedotteita.”Skill. Menettelyllinen, tarvitaan ehkä yhdellä vuorolla neljästäkymmenestä, hajotettavissa ääneen, taksonomiaan ja esimerkkeihin, ja se on proosaa, jota ihminen muokkaa. Tämä on muoto, jota varten formaatti suunniteltiin, ja yllä oleva mittaus kertoo, mitä se säästää.
”Hae tilaus sen tunnisteella varastotietokannasta.”
Linkki osioon: ”Hae tilaus sen tunnisteella varastotietokannasta.”Tool. Sen takana on deterministinen funktio, eikä malli saa improvisoida kyselyä. Tämän kirjoittaminen skillinä — dokumenttina, joka selittää miten varastoa kysellään — antaa mallille scheman ja toivoo. Schema plus endpoint antaa sille vastauksen.
”Lue ja kirjoita issueita trackerissamme kaikista agent-tuotteista, joita yritys käyttää.”
Linkki osioon: ”Lue ja kirjoita issueita trackerissamme kaikista agent-tuotteista, joita yritys käyttää.”MCP server. Kyvykkyys ei ole sinun, useat hostit tarvitsevat sitä, ja sillä on authentication-tarina. Se on ongelma , jolla luku 26 avasi, protokolla on vastaus siihen, ja luku 27 toimittaa sellaisen kahdesti. Skill ei voi löytyä hostille, joka ei ole koskaan nähnyt tiedostojärjestelmääsi — mikä on täsmälleen se aukko, jota tämän luvun lopun standardityö sulkee.
”Nelisataasivuinen brändimanuaali.”
Linkki osioon: ”Nelisataasivuinen brändimanuaali.”Ei mikään neljästä. Se on tietoa, jota etsitään, ei menettely, jota seurataan, ja se kuuluu indeksiin, josta agent hakee: luku 19. Sen niputtaminen tasoksi 3 on sallittua, houkuttelevaa ja väärin, koska mallin pitäisi arvata pelkkien nimien perusteella, missä neljästäkymmenestä tiedostosta vastaus on. Hyvä skill sen sijaan on kahden sivun menettely, joka kertoo agentille milloin indeksiä haetaan, mitä matala samankaltaisuuspiste tarkoittaa ja miten löydökset viitataan.
”Älä koskaan hyvitä yli kahtasataa euroa ilman ihmistä.”
Linkki osioon: ”Älä koskaan hyvitä yli kahtasataa euroa ilman ihmistä.”Tool approval-gatella, eikä koskaan skill. Tämä on tapaus, jolla on merkitystä. Kirjoitettuna tiedostoon SKILL.md raja on lause, jonka malli lukee ja yleensä kunnioittaa; kirjoitettuna hyvitystooliin se on haara, joka ajetaan ennen kuin yhtään rahaa liikkuu. Raja, jonka ylittäminen nolottaisi, ei ole dokumentaatiota. Sääntö kannattaa opetella ulkoa: jos ohjeen sivuuttamisen seuraus on pahempi kuin huonosti muotoiltu vastaus, ohje ei kuulu dokumenttiin.
Talon jargonista standardiksi, numeroiden kanssa
Linkki osioon: Talon jargonista standardiksi, numeroiden kanssaHistoria on lyhyt, poikkeuksellisen hyvin päivätty, ja se on osa, jota lähes kukaan ei kerro.
Agent Skills julkaistiin 16. lokakuuta 2025 yhden toimittajan ominaisuutena, määriteltynä tuossa ilmoituksessa ”järjestetyiksi kansioiksi ohjeita, skriptejä ja resursseja, joita agentit voivat löytää ja ladata dynaamisesti suoriutuakseen paremmin tietyistä tehtävistä”, kolmen tason kanssa kuvattuna säilyttämisen arvoisella analogialla: ”kuin hyvin järjestetty käsikirja, joka alkaa sisällysluettelolla, jatkuu tarkkoihin lukuihin ja päättyy yksityiskohtaiseen liitteeseen”.4
18. joulukuuta 2025 sama sivu päivitettiin ilmoittamaan formaatti avoimena standardina, omalla spesifikaatiolla osoitteessa agentskills.io, kontribuutioille avoimella hallinnolla ja referenssivalidaattorilla.3 Luettuna 7. syyskuuta 2026 standardin client showcase listaa neljäkymmentäkuusi tuotetta — editoreita, terminaaleja, pilvialustoja ja mobiiliruntimeja, mukaan lukien Anthropicilta, OpenAI:lta, Googlelta ja Mistralilta tulevat first-party coding agents — joista jokainen linkittää omaan setup-dokumentaatioonsa.1
Yhtyminen MCP:n kanssa tehdään avoimesti, numeroilla jotka voi tarkistaa:
| Mikä se on | Avattu | Tila 7.9.2026 | |
|---|---|---|---|
| SEP-2076 | Agent Skills as a First-Class MCP Primitive: uudet metodit skills/list ja skills/get, kyvykkyys skills, notification list_changed | 13. tammikuuta 2026 | suljettu, 24. helmikuuta 2026 |
| Skills Over MCP -työryhmä | määrittelee, miten skills ”löydetään, jaetaan ja kulutetaan MCP:n kautta”; kokoontuu viikoittain; seitsemäntoista listattua jäsentä, joista kaksi vetäjiä | interest group 1. helmikuuta 2026; working group 16. huhtikuuta 2026 | aktiivinen |
| SEP-2640 | Skills Extension, Extensions Track: resurssikäytäntö skill://, extension-tunniste io.modelcontextprotocol/skills, discovery skills/list kautta ja sisältö resources/read kautta | 23. huhtikuuta 2026 | katselmoinnissa |
Kiinnostava osa on sulkeminen, ei ehdotukset. SEP-2076 pyysi neljättä primitiveä tools, resources ja prompts rinnalle. Siitä muodostunut työryhmä päätti, että vastaus oli ei: skills kulkevat jo olemassa olevan resources-primitiven päällä opt-in extensionina.5 Luku 26 mittasi saman vaiston protokollan omassa changelogissa, jossa sampling, roots ja logging poistettiin käytöstä eikä pidetty mukana. Standardointielin, joka poistaa itse kirjoittamansa ehdotuksen, käyttäytyy hyvin, ja syy kertoa tämä tarina numeroiden kanssa on se, että muualla lukemasi tiivistelmät kuvaavat skills yhä MCP-primitiveinä.
Minne tästä jatketaan
Linkki osioon: Minne tästä jatketaanNyt osaat kirjoittaa tiedoston SKILL.md, jakaa sen kolmeen tasoon, jotka maksavat itse itsensä, lukea jonkun toisen skillin frontmatterin ja tietää, mitkä kentät eivät selviä uploadista muualle, sekä vastata kysymykseen, jonka ympärille koko luku rakennettiin — system prompt, skill, tool vai server — syyllä eikä tottumuksella.
Et kuitenkaan osaa sanoa, toimiiko omasi.
Jokainen tämän luvun olennainen väite oli mittaus, ja tärkein niistä oli tarkkuus: 18 24:stä vastaan 10 24:stä, intervalli kummallakin ja paritettu testi niiden välillä, koska kaksi päällekkäistä aggregaattia ei päätä mitään. Tuo instrumentti lainattiin. Skillin kuvaus on routing key, sen body on menettely, jota malli voi tai ei voi seurata, ja molemmat ominaisuudet selviävät vain ajamalla asia monta kertaa ja pisteyttämällä, mitä tuli takaisin — mikä tarkoittaa golden setiä, graderia jonka kirjoitit ennen ajoa, ja metriikkaa, joka kysyy toimiko se joka kerta eikä ainakin kerran.
Luku 29 on se, ja se alkaa luvulla, josta tämän luvun menetelmä riippuu: agent, joka onnistuu seitsemän kertaa kymmenestä, näyttää 70-prosenttiselta, ja sen pass^10 — todennäköisyys onnistua kaikissa kymmenessä — on nolla. Se myös mittaa kolme graderia samoilla kahdellasadalla transcriptillä ja saa 0 %, 13 % ja 26 % generoimatta yhtään uutta tokenia. Ennen kuin luotat lauseeseen, jonka juuri kirjoitit tiedostoon description, tarvitset instrumentin, joka voi kertoa sen olevan huonompi kuin lause, jonka korvasit.
Lähteet ja menetelmä
Linkki osioon: Lähteet ja menetelmäJokainen tämän luvun token-määrä tuotettiin paikallisesti versiolla tiktoken 0.14.0 ja o200k_base-encodingilla 7. syyskuuta 2026: tämän luvun alussa listatuista viidestä kolmannen osapuolen skillistä sekä tätä lukua varten kirjoitetusta release-notes-skillistä, jonka koko teksti toistetaan osittain yllä. Taso 1 mitataan yhtenä rivinä - name: description, jonka host renderöi system promptiin; taso 2 on SKILL.md-body frontmatterin jälkeen; taso 3 on jokainen muu tiedosto kansiossa. Kustannuksissa käytetään luvun 16 mitattuja hintoja mallille gpt-5.6-terra, $2,00 miljoonalta input-tokenilta ja $0,20 miljoonalta cachetulta input-tokenilta, sovellettuna näihin lukuihin — ne ovat aritmetiikkaa mitatuilla tokeneilla, eivät havaintoja live-laskusta. Tämän luvun kirjoittamiseen ei kutsuttu maksullista API:a.
Aktivointikoe ajoi Qwen/Qwen2.5-0.5B-Instruct puolikkaalla tarkkuudella yhdellä kuluttaja-GPU:lla, greedy decodingilla, 24 pyyntöä kuuden skillin yli, kahdesti — kerran kuvauksilla, jotka sanovat mitä skill tekee ja milloin se soveltuu, kerran kuvauksilla, jotka leikattiin paljaaseen aiheeseen spesifikaation oman ”huonon esimerkin” tyyliin. Intervallit ovat Wilson 95 %:ssa; parittainen vertailu on kaksisuuntainen exact sign test kymmenen erimielisen tapauksen yli; Wilson-intervalli on luvusta 4 ja exact paired sign test luvusta 15, molemmat uudelleenkäytettynä muuttamatta. Lue suuruudet hyvin pienen mallin ominaisuutena ja menetelmä siirrettävänä.
Tässä mitatut viisi skill-kansiota ovat kolmannen osapuolen paketteja, eivät tätä lukua varten kirjoitettuja: next-best-practices ja next-cache-components kohteesta vercel-labs/next-skills sekä vercel-composition-patterns, vercel-react-best-practices ja vercel-react-native-skills kohteesta vercel-labs/agent-skills. Niiden sisäiset luvut — 70 sääntötiedostoa, AGENTS.md 26 362 tokenia, tammikuulle 2026 päivätty metadata.json, joka väittää ”40+ rules” — luettiin levyllä olevista tiedostoista 7. syyskuuta 2026 ja ovat kyseisen julkaistun version ominaisuuksia, eivät kritiikkiä sen kirjoittajista: jokainen niistä on sellaista driftia, jota ilmestyy mihin tahansa dokumentaatiopuuhun, jota muokataan useammin kuin lasketaan.
Viitteet
Linkki osioon: Viitteet-
Agent Skills Specification ja Overview,
agentskills.io/specificationjaagentskills.io, luettu 7. syyskuuta 2026. Lähde hakemistorakenteelle; yllä toistetulle frontmatter-taulukolle kaikkine rajoitteineen (name1–64 merkkiä ja vastaa hakemistoa,description1–1024 merkkiä,compatibilityenintään 500,allowed-toolsmerkitty kokeelliseksi); hyville ja huonoilledescription-esimerkeille; kolmiportaiselle progressive-disclosure-kuvaukselle token-budjetteineen (metadata noin 100 tokenia, ohjeet suositeltu alle 5 000, resurssit tarpeen mukaan) ja neuvolla pitääSKILL.mdalle 500 rivissä; huomiolle, että ”the agent will load this entire file once it's decided to activate a skill”; käytännöillescripts/,references/jaassets/; komennolleskills-ref validate; väitteelle, että formaatti ”was originally developed by Anthropic, released as an open standard, and has been adopted by a growing number of agent products”; sekä client showcase -listaukselle, jossa lukupäivänä oli neljäkymmentäkuusi tuotetta. ↩ ↩2 ↩3 ↩4 -
Skills Claude Code -dokumentaatiossa,
code.claude.com/docs/en/skills, luettu 7. syyskuuta 2026. Lähde koko kenttätaulukolle, jota käytetään osiossa ”kentät, jotka referenssitoteutus lisää” —when_to_use,argument-hint,arguments,disable-model-invocation,user-invocable,allowed-tools,disallowed-tools,model,effort,context,agent,background,hooks,paths,shell,metadata,license,compatibility— kuvaukselle dynamic context injectionista, jossa!`command`ajetaan ennen bodyn lähettämistä, säännölle jonka mukaanallowed-tools-lupa nollautuu seuraavassa viestissä, sekä compliance-huomiolle, jonka mukaan Claude Coden ulkopuolella hyväksytään vain kuusi määriteltyä kenttää ja mikä tahansa muu aiheuttaa kovan virheen uploadissa tai paketoinnissa. ↩ ↩2 ↩3 -
Agent Skills -yleiskatsaus,
platform.claude.com/docs/en/agents-and-tools/agent-skills/overview, luettu 7. syyskuuta 2026. Lähde tasotaulukolle neljine sarakkeineen (Level 1 metadata, always, about 100 tokens per skill; Level 2 instructions, when triggered, under 5k tokens; Level 3+ resources, as needed, none until accessed); kokonaan lainatulle lauseelle siitä, ettei niputettu sisältö aiheuta context penaltyä; lauseelle ”until a Skill is triggered, only its name and description occupy context”; väitteelle, että skriptin koodi ei koskaan päädy context window -ikkunaan ja vain sen output tekee niin; sekä security-osiolle, joka kehottaa käyttämään skills vain luotetuista lähteistä ja varoittaa, että haitallinen skill ”can direct Claude to invoke tools or execute code in ways that don't match the Skill's stated purpose” — luvun 30 aihe, saapuneena dokumentin eikä tool-kuvauksen kautta. ↩ ↩2 ↩3 -
Anthropic, Equipping agents for the real world with Agent Skills, 16. lokakuuta 2025,
anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills, luettu 7. syyskuuta 2026. Lähde yllä siteeratulle määritelmälle, sisällysluettelo/luku/liite-analogialle, kolmelle tasolle alkuperäisessä kuvauksessaan sekä kehystykselle, jonka mukaan agentit tarvitsevat ”more composable, scalable, and portable ways” saada domain-asiantuntemusta. Oheinen tuotejulkistus osoitteessaclaude.com/blog/skillssisältää julkaisupäivän 16. lokakuuta 2025 ja päivityksen 18. joulukuuta 2025, joka esitteli organisaatiolaajuisen hallinnan ja avoimen standardin. ↩ -
Skills Over MCP Charter,
modelcontextprotocol.io/community/working-groups/skills-over-mcp, luettu 7. syyskuuta 2026. Lähde yllä siteeratulle mission statementille, changelog-päiville (interest group muodostettu 1. helmikuuta 2026, initial charter 14. huhtikuuta 2026, muutettu working groupiksi 16. huhtikuuta 2026, SEP-2640 linkitetty 25. huhtikuuta 2026), johtajuudelle ja seitsemälletoista listatulle jäsenelle, viikoittaiselle kokousrytmille sekä onnistumiskriteerille, joka nimeää draft Skills Extensionin ”a formal extension using existing Resources primitives”. SEP-2076, Agent Skills as a First-Class MCP Primitive,github.com/modelcontextprotocol/modelcontextprotocol/pull/2076, avattiin 13. tammikuuta 2026 ja suljettiin 24. helmikuuta 2026; se ehdottiskills/list,skills/get,skillsserver capabilityä jaskills/list_changednotificationia, ja määritteli skillin näin: ”a named bundle of instructions plus references to tools, prompts, and resources that together teach an agent how to perform a domain-specific workflow”. SEP-2640, Skills Extension,.../pull/2640, avattiin 23. huhtikuuta 2026 Extensions Trackillä ja sisältääskill://-resurssikäytännön sekä extension-tunnisteenio.modelcontextprotocol/skills. Luku 26 listaa saman työryhmän protokollan valinnaisten extensionien joukossa. ↩