Hoppa till innehållet
28/30Kapitel 28 av 30

Agent Skills och SKILL.md: stegvis exponering, mätt

Fem verkliga skills med 128 374 tokens instruktioner tar 253 tokens context. Korta beskrivningarna och agent slutar hitta dem.

På den här sidan

Ta ett projekt med fem publicerade skills installerade. Här är vad de kostar.

terminalBASH
ls .claude/skills/
TEXT
next-best-practices  next-cache-components  vercel-composition-patterns
vercel-react-best-practices  vercel-react-native-skills
o200k_base tokens, measuredTEXT
skill                              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,668

Etthundratjugoåtta tusen tokens med instruktioner, exempel och regler — mer än vad som ryms i ett 128 000-token context window — och den stående kostnaden för att ha alla fem tillgängliga är 253 tokens, två tiondelar av en procent. Inget annat i den här kursen har den formen. En tool-definition betalas vid varje request oavsett om den används eller inte, och kapitel 26 mätte en MCP server till 1 619 tokens innan den gör något alls: trettiotvå gånger den genomsnittliga nivå 1-raden i tabellen ovan.

Det här kapitlet handlar om mekanismen som skapar den kvoten, om de två sätt den går sönder på, och om frågan som mekanismen tvingar fram och nästan ingen besvarar: givet ett stycke kunskap, på vilken av fyra platser hör det hemma.

Varför det här kapitlet inte har något programmeringsspråk

Länk till avsnittet: Varför det här kapitlet inte har något programmeringsspråk

Kapitel 14 satte regeln för kursens andra halva — anslutningar, återförsök och avbrytning är TypeScript — och deklarerade fem undantag. Det här är ett av dem, och skälet är inte en preferens.

En skill är en Markdown-fil. Inte en fil som konfigurerar ett program, inte en fil som ett program kompilerar: ett dokument som modellen läser, på samma sätt som den läser meddelandet du skrev. Att ge det här kapitlet ett programmeringsspråk skulle betyda att man inte har förstått formatet, och det missförståndet är det enskilt vanligaste om skills. Allt nedan är Markdown och YAML, plus ett litet shell script som finns just för att visa var kod hör hemma och inte hör hemma inuti en skill.

Notan den löser, och det är kapitel 16:s aritmetik

Länk till avsnittet: Notan den löser, och det är kapitel 16:s aritmetik

Här är en verklig instruktion: hur ett företag skriver sina release notes. Det är en procedur, inte en preferens — den har en ordnad uppsättning steg, en taxonomi, en röst, en mall och ett script som samlar in råmaterialet.

Lägg allt i system prompt, som de flesta team gör, och kapitel 16:s aritmetik tar över. En system prompt är ett prefix, och ett prefix betalas vid varje call. Mätt med o200k_base över mappen som skrevs för det här kapitlet:

the same instruction, two ways, 40 turnsTEXT
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.0037

Tjugofyra gånger billigare när den används, trettiosju gånger billigare när den inte används. Priserna är kapitel 16:s: $2.00 per miljon input tokens.

Nu den ärliga invändningen, eftersom ett kapitel som hoppade över den vore reklam. Prompt caching stänger i stort sett pengagapet. En system prompt är stabil och ligger först, vilket gör den till den bästa cache-kandidaten som finns; vid $0.20 per miljon för cached input kostar samma 68 640 tokens $0.0168 i stället för $0.1373. Fortfarande tre gånger så mycket som skillen, men inte längre en annan storleksordning.

Pengarna var aldrig det starkaste argumentet. Det här är det:

Caching gör ett permanent prefix billigare. Det gör det inte mindre.

Vid tur 40 har system-prompt-versionen fortfarande 1 716 tokens release-note-policy liggande i fönstret under en konversation om något helt annat, där den konkurrerar om det kapitel 24 kallade modellens attention-budget. Skill-versionen har 46. Cachea fel sak och du har köpt rabatt på en distraktion.

Skrivet som en formel, med nn turer, L1L_1 metadata, L2L_2 body, L3L_3 hela paketet och RR mängden buntade filer som faktiskt läses:

system prompt=n(L1+L2+L3)skill=nL1+1[used](L2+iRL3(i))\text{system prompt} = n\,(L_1 + L_2 + L_3) \qquad \text{skill} = n\,L_1 + \mathbb{1}[\text{used}]\left(L_2 + \sum_{i \in R} L_3^{(i)}\right)

Hela det här kapitlet är skillnaden mellan att multiplicera den andra termen med nn och att multiplicera den med ett eller med noll.

En skill är en katalog. Specifikationen är kort nog för att återges i sin helhet:

the whole formatTEXT
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 like

SKILL.md måste börja med YAML-frontmatter, och exakt två fält krävs: name och description.1 Fyra till är valfria och inga andra definieras:

FältKrävsBegränsning
nameja1–64 tecken, gemener, siffror och bindestreck; inget inledande, avslutande eller dubbelt bindestreck; måste matcha katalognamnet
descriptionja1–1024 tecken, inte tomt; säger vad skillen gör och när den ska användas
licensenejett licensnamn, eller namnet på en buntad licensfil
compatibilitynejupp till 500 tecken: avsedd produkt, nödvändiga paket, nätverksåtkomst
metadatanejen fri map från strängnycklar till strängvärden, för dina egna verktyg
allowed-toolsnejmellanslagsseparerad lista över förhandsgodkända tools; markerad som experimentell

Här är release-notes-skillen, komplett, med sin body under trettio rader:

release-notes/SKILL.mdMARKDOWN
---
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.

Läs vad den bodyn är. Den är inte policyn — den är en innehållsförteckning med en operationsordning. Policyn bor i tre filer som den namnger och inte inkluderar. Och steg ett lämnar arbete till ett script, eftersom ett scripts kod aldrig hamnar i context window alls: bara dess output gör det.2

Laddningsmodellen har ett namn och tre steg. Specifikationen anger dem med en token-budget kopplad till varje steg:1

  1. Metadata, ungefär 100 tokens: name och description, laddas vid start för varje installerad skill.
  2. Instruktioner, rekommenderat under 5 000 tokens: SKILL.md-bodyn, laddas när skillen aktiveras.
  3. Resurser, efter behov: buntade filer, laddas bara när något kräver dem.

Referensdokumentationen sätter en fjärde kolumn på samma tabell — när laddad, token-kostnad, innehåll — och raden som spelar roll är den tredje: ingen förrän den nås.3 Meningen som sammanfattar hela kapitlet finns där också:

Filer konsumerar inte context förrän de nås, så Skills kan innehålla omfattande API-dokumentation, stora dataset eller utförliga exempel. Det finns ingen context-straffavgift för buntat innehåll som inte används.3

Den uppmätta tabellen i början av det här kapitlet är det påståendet kontrollerat mot fem skills som ingen skrev för den här artikeln. Två rader förtjänar att läsas mot varandra.

next-best-practices har en body på 966 tokens som länkar till nitton filer med 19 374 tokens. Be den fixa ett hydration-fel och agent läser bodyn plus hydration-error.md: 1 409 tokens av 20 340, en faktor fjorton, och de andra arton filerna öppnas aldrig.

next-cache-components har en body på 2 334 tokens och inga buntade filer alls. Den är en giltig skill och en välskriven sådan, och den har ingen nivå 3 att exponera. Det är teknikens ärliga gräns: stegvis exponering är bara en besparing om det finns något att skjuta upp. En skill vars kunskap inte går att bryta ned betalar hela sin body vid aktivering, och den enda hävstången som återstår är att inte aktivera den.

Bryt den: beskrivningen är hela gränssnittet

Länk till avsnittet: Bryt den: beskrivningen är hela gränssnittet

Nivå 1 är ett routing-beslut gjort utifrån en mening. Inget annat med en skill påverkar om den någonsin öppnas — inte kvaliteten på bodyn, inte exemplen, inte scripten. Så beskrivningen är inte dokumentation. Den är query-ytan, och den kan vara fel.

Specifikationen säger det i form av ett bra exempel och ett dåligt, och det dåliga är fyra ord: description: Helps with PDFs.1 Det är värt att mäta i stället för att bara acceptera.

Sex skills, var och en med en rimlig beskrivning som säger vad den gör och när den ska användas. Tjugofyra requests, fyra per skill, formulerade som en person skulle formulera dem och utan att någonsin namnge skillen. Modellen ser de sex raderna i sin system prompt och måste svara med ett namn eller med NONE. Greedy decoding, så den reproducerar. Sedan samma tjugofyra requests med samma sex skills, och beskrivningarna nedskurna till sitt nakna ämne.

the two system promptsTEXT
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.
24 requests, Qwen2.5-0.5B-Instruct, greedy decodingTEXT
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 24

Läs intervallen först, som kapitel 4 insisterade på och kapitel 29 kommer att insistera på igen: de överlappar, och tjugofyra fall kan inte rangordna två system enbart på deras aggregat. Den parade jämförelsen är det som avgör, och det är kapitel 15:s instrument: av de tio fall där de två armarna var oense gick nio till de rika beskrivningarna och ett till de tunna. Det är fastställt vid den vanliga tröskeln.

Läs nu den sista raden, som är det faktiska fyndet. Med tunna beskrivningar svarade modellen NONEnio av tjugofyra requests. Inte fel skill: ingen skill. Här är fyra av dem, ordagrant:

TEXT
"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-practices

En perfekt sql-review-skill var installerad, med body och exempel och en checklista, och den öppnades aldrig, tre gånger i rad, på de tre frågor den var skriven för. Nivå 2 och 3 är irrelevanta för en skill som nivå 1 aldrig når.

Kostnaden för att fixa det: 214 tokens, skillnaden mellan 295 och 81, utspridd över sex skills. Det är kapitel 18:s fynd som kommer från andra hållet. Där tog en ändring av enbart ett tools beskrivning datumformatering från 2 korrekta av 24 till 24 av 24. Här tar en ändring av enbart en skills beskrivning aktivering från 10 av 24 till 18. I båda fallen är den billigaste fixen i systemet en mening, och i båda fallen måste meningen namnge triggern och inte bara ämnet: inte vad saken är, utan vad användaren precis kommer att ha sagt när den gäller.

En brasklapp som det här kapitlet är skyldigt sina egna standarder. Det här är en modell med en halv miljard parametrar, och en frontier-modell routar mycket bättre än 75 %. Läs mekanismen, inte storleken: routing-signalen är en mening lång oavsett vilken modell som läser den, och ingen modell kan välja baserat på information du inte lade in i den meningen.

Bryt den igen: nödutgången som kostar 26 362 tokens

Länk till avsnittet: Bryt den igen: nödutgången som kostar 26 362 tokens

Det andra felet är motsatsen till det första. Skillen hittas, nivåerna är korrekt uppdelade, och agent läser ändå alltihop.

vercel-react-best-practices är en genuint välbyggd skill. Dess body på 1 670 tokens är en prioritetstabell med åtta kategorier och en snabbreferens som namnger 70 regelfiler, en rad per fil. Reglerna ligger på disk bredvid den: 70 filer, minsta 132 tokens, median 319, största 1 052. Ställ en fråga om barrel imports och den ärliga kostnaden är bodyn plus en fil — under 2 400 tokens mot ett paket på 53 670.

Sedan säger sista raden i bodyn detta:

the final section of SKILL.mdTEXT
## Full Compiled Document

For the complete guide with all rules expanded: `AGENTS.md`

AGENTS.md är 26 362 tokens. Det är de 70 regelfilerna sammanfogade: deras summa är 25 784, och skillnaden är rubrikerna mellan dem. Så skillen erbjuder agent ett val mellan att läsa en medianregel på 319 tokens och att läsa samma innehåll, alltihop, till åttiotre gånger priset — och den erbjuder det valet i en mening utan kostnad angiven och utan villkor för när den ska tas.

Det är inte en bug och filen är inte fel; ett kompilerat dokument är genuint användbart för en människa, och för en agent som har blivit ombedd att granska en hel codebase. Det är en nivå 3-fil med en nivå 2-inbjudan, och lärdomen generaliserar bortom just den här skillen: varje väg ut ur en SKILL.md bör säga vad den kostar och när den är värd det, eftersom modellen inte har något sätt att veta att ett filnamn är åttiotre gånger dyrare än filnamnet ovanför.

Samma mapp bär på en mindre läxa om staleness. Bodyn säger "70 rules across 8 categories" och listar 70; katalogen rules/ innehåller 72 filer, varav två är scaffolding (_template.md och _sections.md); och sidecar-filen metadata.json säger "40+ rules". Tre räkningar av samma mängd i en mapp, en av dem rätt, en av dem aritmetisk, och en av dem kvar från en tidigare version. En skill är ett dokument, och dokument ruttnar precis som en kodkommentar som har driftat bort från koden bredvid den — med skillnaden att den här läses av en maskin som inte kommer att höja på ögonbrynen.

Fälten som referensimplementationen lägger till, och portabilitetsfällan

Länk till avsnittet: Fälten som referensimplementationen lägger till, och portabilitetsfällan

Den öppna specifikationen definierar sex frontmatter-fält. Referensimplementationen, Claude Code, accepterar tjugo.2 Fem grupper är värda att kunna vid namn, eftersom det är där formatet slutar vara bara ett dokument:

Behörighet och invocation. allowed-tools förhandsgodkänner tools för turen som anropade skillen och tilldelningen rensas vid nästa meddelande; disallowed-tools tar bort dem. disable-model-invocation hindrar modellen från att ladda den på egen hand, vilket förvandlar skillen till ett kommando som en person kör. user-invocable: false gör motsatsen: dold för människor, bara tillgänglig för modellen, för bakgrundskunskap.

Isolering och kostnad. context: fork kör skillen i en separat sub-agent-context med eget fönster — kapitel 25:s sub-agent-gräns som en rad YAML — med agent som väljer vilken sort och background som avgör om turen väntar. model och effort ändrar vilken modell som kör medan skillen är aktiv, bara för den turen.

Argument (arguments, argument-hint) låter en person skicka värden som substitueras in i bodyn, vilket är vad som gör en skill användbar som slash command. Scoping (paths) begränsar aktivering till filer som matchar en glob. Och dynamic context injection är den som ändrar den mentala modellen: en rad på formen !`git diff HEAD` körs innan bodyn skickas, och dess output substitueras in i texten. Dokumentet är en template, och en del av det beräknas vid lästid.

Nu fällan, och den anges i samma dokumentation: utanför Claude Code — i webbprodukten, genom Skills API, i paketering — är endast de sex specificerade fälten tillåtna, och alla andra fält är ett hårt fel vid upload.2 Så en skill som fungerar perfekt i en produkt misslyckas med att installeras i en annan från samma vendor, och den misslyckas i frontmatter snarare än i något du skulle kunna testa genom att läsa prosan. Om du vill att en skill ska vara portabel är de sex fälten hela budgeten. Om du inte vill det, säg det i compatibility, som finns just för detta.

Fyra saker förväxlas ständigt med varandra, och förvirringen är inte vokabulärpedanteri: väljer du fel kostar det pengar vid varje tur, eller kostar dig en garanti du trodde att du hade.

System promptSkillToolMCP server
Vad det ärtext i varje requesten mapp vars root är en SKILL.mdett JSON Schema plus en endpoint i din koden process eller tjänst som talar ett protokoll
Vad modellen görläser den, alltidläser den, när den beslutar att beskrivningen matcharanropar den, och väntar på ditt resultatanropar den, genom hosten, en client per server
Vad det kostarhela längden, varje tur, för alltidungefär 50 tokens per tur; bodyn en gång, om den användsdess schema, varje tur; exekvering när den anropasvarje schema plus serverns instructions, varje tur
Vad det kan garanterainget — det är rådinget — det är råd som modellen kan hoppa överallt din kod upprätthåller innan den agerarallt servern upprätthåller
Vem som skriver detdudu, en kollega eller en vendordunågon annan, för många hosts
Kapitel15det här1826 och 27

De två raderna i fetstil är hela distinktionen. En skill läses; ett tool anropas. En skill är prosa som hamnar i context window och konkurrerar om attention med allt annat där; modellen kan följa den, läsa fel eller ignorera den, och inget i systemet märker det. Ett tool är ett call som lämnar modellens händer helt: din kod tar emot argument, validerar dem, kontrollerar behörigheter och beslutar. Kapitel 18 uttryckte det som att modellen föreslår och din kod avgör, och den uppdelningen är exakt vad en skill inte har.

Så sex verkliga fall, avgjorda:

"Svara på användarens språk. Ange aldrig ett pris som du inte har fått."

Länk till avsnittet: "Svara på användarens språk. Ange aldrig ett pris som du inte har fått."

System prompt. Den gäller vid varje tur, den är en begränsning snarare än en procedur, och den är två meningar lång. Något som alltid gäller har inget att exponera stegvis, och att betala för en upptäcktsrad vid varje tur för att slippa betala för två meningar vid varje tur är ingen besparing.

Skill. Proceduriell, behövs kanske en tur av fyrtio, kan brytas ned i röst, taxonomi och exempel, och är prosa som en person kommer att redigera. Det här är formen som formatet designades för, och mätningen ovan är vad den sparar.

"Slå upp en order via dess identifierare i lagerdatabasen."

Länk till avsnittet: "Slå upp en order via dess identifierare i lagerdatabasen."

Tool. Det finns en deterministisk funktion bakom den och modellen får inte improvisera queryn. Att skriva detta som en skill — ett dokument som förklarar hur man queryar lagret — ger modellen schemat och hoppas. Ett schema plus en endpoint ger den ett svar.

"Läs och skriv issues i vår tracker, från varje agent-produkt företaget använder."

Länk till avsnittet: "Läs och skriv issues i vår tracker, från varje agent-produkt företaget använder."

MCP server. Förmågan är inte din, flera hosts behöver den, och den har en autentiseringsberättelse. Det är N×MN \times M-problemet som kapitel 26 öppnade med, ett protokoll är svaret på det, och kapitel 27 levererar ett två gånger. En skill kan inte upptäckas av en host som aldrig har sett ditt filesystem — vilket är precis gapet som standardarbetet i slutet av det här kapitlet håller på att stänga.

Ingen av de fyra. Det är kunskap att slå upp, inte en procedur att följa, och den hör hemma i ett index som agent söker i: kapitel 19. Att bunta den som nivå 3 är tillåtet och lockande och fel, eftersom modellen skulle behöva gissa vilken av fyrtio filer som innehåller svaret enbart utifrån deras namn. Vad som är en bra skill är den tvåsidiga proceduren som talar om för agent när den ska söka i indexet, vad en låg similarity score betyder, och hur den ska citera det den hittar.

"Återbetala aldrig mer än tvåhundra euro utan en människa."

Länk till avsnittet: "Återbetala aldrig mer än tvåhundra euro utan en människa."

Ett tool med en approval gate, och aldrig en skill. Det här är fallet som spelar roll. Skrivet i en SKILL.md är gränsen en mening som modellen läser och oftast respekterar; skrivet i refund-toolen är den en branch som körs innan några pengar flyttas. En gräns som skulle genera dig om den korsades är inte dokumentation. Regeln, värd att memorera: om konsekvensen av att ignorera instruktionen är värre än ett dåligt formaterat svar hör instruktionen inte hemma i ett dokument.

Från intern jargong till standard, med siffrorna

Länk till avsnittet: Från intern jargong till standard, med siffrorna

Historien är kort, ovanligt väldaterad, och det är den del nästan ingen berättar.

Agent Skills publicerades den 16 oktober 2025 som en vendors funktion, definierad i det tillkännagivandet som "organized folders of instructions, scripts, and resources that agents can discover and load dynamically to perform better at specific tasks", med de tre nivåerna beskrivna genom en analogi som är värd att behålla: "like a well-organized manual that starts with a table of contents, then specific chapters, and finally a detailed appendix".4

Den 18 december 2025 uppdaterades samma sida för att annonsera formatet som en öppen standard, med en egen specifikation på agentskills.io, governance öppen för bidrag och en referensvalidator.3 Läst den 7 september 2026 listar standardens client showcase fyrtiosex produkter — editors, terminals, cloud platforms och mobile runtimes, inklusive Anthropic, OpenAI, Google och Mistrals first-party coding agents — var och en med länk till sin egen setup-dokumentation.1

Konvergensen med MCP görs öppet, med siffror du kan kontrollera:

Vad det ärÖppnadStatus 7 sep 2026
SEP-2076Agent Skills as a First-Class MCP Primitive: nya metoderna skills/list och skills/get, en skills capability, en list_changed notification13 januari 2026stängd, 24 februari 2026
Skills Over MCP working groupdefinierar hur skills "discovered, distributed, and consumed through MCP"; möts varje vecka; sjutton listade medlemmar, två av dem leadsinterest group 1 februari 2026; working group 16 april 2026aktiv
SEP-2640Skills Extension, Extensions Track: en skill:// resource-konvention, extension-identifierare io.modelcontextprotocol/skills, discovery genom skills/list och content genom resources/read23 april 2026under granskning

Det intressanta är stängningen, inte förslagen. SEP-2076 bad om en fjärde primitive bredvid tools, resources och prompts. Working group som bildades ur det beslutade att svaret var nej: skills åker på den resources-primitive som redan finns, som en opt-in extension.5 Kapitel 26 mätte samma instinkt i protokollets egen changelog, där sampling, roots och logging deprecierades i stället för att behållas. Ett standards body som tar bort ett förslag det själv författat beter sig väl, och skälet att berätta den här historien med siffrorna framme är att sammanfattningarna du kommer att läsa på andra håll fortfarande beskriver skills som en MCP primitive.

Du kan nu skriva en SKILL.md, dela upp den i tre nivåer som betalar för sig, läsa frontmatter i någon annans skill och veta vilka fält som inte överlever en upload någon annanstans, och besvara frågan som hela kapitlet byggdes kring — system prompt, skill, tool eller server — med ett skäl snarare än en vana.

Vad du inte kan göra är att säga om din fungerar.

Varje påstående i det här kapitlet som spelade roll var en mätning, och det som spelade störst roll var en accuracy: 18 av 24 mot 10 av 24, med ett intervall på vardera och ett parat test mellan dem, eftersom två överlappande aggregat inte avgör något. Det instrumentet var lånat. En skills beskrivning är en routing key, dess body är en procedur som modellen kanske eller kanske inte följer, och båda är egenskaper du bara kan ta reda på genom att köra saken många gånger och poängsätta vad som kom tillbaka — vilket är ett golden set, en grader du skrev före körningen, och metriken som frågar om det fungerade varje gång snarare än minst en gång.

Kapitel 29 är det, och det öppnar med siffran som det här kapitlets metod beror på: en agent som lyckas sju gånger av tio ser ut som 70 %, och dess pass^10 — chansen att den lyckas med alla tio — är noll. Det mäter också tre graders på samma tvåhundra transcripts och får 0 %, 13 % och 26 % utan att regenerera en enda token. Innan du litar på meningen du just skrev in i en description behöver du instrumentet som kan säga att den är sämre än den du ersatte.


Varje token-räkning i det här kapitlet producerades lokalt med tiktoken 0.14.0 och o200k_base-encoding, den 7 september 2026: över de fem tredjeparts-skills som listas i början av det här kapitlet, och över release-notes-skillen som skrevs för det här kapitlet, vars fullständiga text delvis återges ovan. Nivå 1 mäts som den enda raden - name: description som en host renderar in i system prompt; nivå 2 är SKILL.md-bodyn efter frontmatter; nivå 3 är alla andra filer i mappen. Kostnaderna använder kapitel 16:s uppmätta priser för gpt-5.6-terra, $2.00 per miljon input tokens och $0.20 per miljon cached input tokens, applicerade på dessa räkningar — de är aritmetik på uppmätta tokens, inte observationer av en livefaktura. Inget betalt API anropades för att skriva det här kapitlet.

Aktiveringsexperimentet körde Qwen/Qwen2.5-0.5B-Instruct i half precision på en konsument-GPU, greedy decoding, 24 requests över sex skills, två gånger — en gång med beskrivningar som anger vad skillen gör och när den gäller, en gång med beskrivningarna nedskurna till ett naket ämne i stil med specifikationens eget "poor example". Intervallen är Wilson på 95 %; den parade jämförelsen är ett tvåsidigt exakt sign test över de tio discordant cases; Wilson-intervallet är kapitel 4:s och det exakta parade sign test är kapitel 15:s, båda återanvända oförändrade. Läs magnituderna som en egenskap hos en mycket liten modell och metoden som överförbar.

De fem skills som mäts här är tredjepartspaket, inte skrivna för det här kapitlet: next-best-practices och next-cache-components från vercel-labs/next-skills, och vercel-composition-patterns, vercel-react-best-practices och vercel-react-native-skills från vercel-labs/agent-skills. Deras interna räkningar — 70 regelfiler, AGENTS.md på 26 362 tokens, metadata.json daterad januari 2026 och med påståendet "40+ rules" — lästes från filerna på disk den 7 september 2026 och är egenskaper hos den publicerade versionen, inte kritik av dess författare: varenda en är den sorts drift som uppstår i vilket dokumentationsträd som helst som redigeras oftare än det räknas.

  1. Agent Skills Specification och Overview, agentskills.io/specification och agentskills.io, lästa 7 september 2026. Källa till kataloglayouten; frontmatter-tabellen som återges ovan med varje begränsning (name 1–64 tecken och matchande katalogen, description 1–1024 tecken, compatibility upp till 500, allowed-tools markerad experimentell); de bra och dåliga description-exemplen; trestegsbeskrivningen av stegvis exponering med dess token-budget (metadata ungefär 100 tokens, instruktioner under 5 000 rekommenderat, resurser efter behov) och rådet att hålla SKILL.md under 500 rader; noten att "the agent will load this entire file once it's decided to activate a skill"; konventionerna scripts/, references/ och assets/; kommandot skills-ref validate; påståendet att formatet "was originally developed by Anthropic, released as an open standard, and has been adopted by a growing number of agent products"; och client showcase, som listade fyrtiosex produkter på läsdatumet. 2 3 4

  2. Skills i Claude Code-dokumentationen, code.claude.com/docs/en/skills, läst 7 september 2026. Källa till hela fälttabellen som används i avsnittet "fälten som referensimplementationen lägger till" — 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 — till beskrivningen av dynamic context injection där !`command` körs innan bodyn skickas, till regeln att en allowed-tools-tilldelning rensas vid nästa meddelande, och till compliance-noten att utanför Claude Code accepteras bara de sex specificerade fälten och alla andra orsakar ett hårt fel vid upload eller paketering. 2 3

  3. Agent Skills overview, platform.claude.com/docs/en/agents-and-tools/agent-skills/overview, läst 7 september 2026. Källa till nivåtabellen med sina fyra kolumner (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); till meningen som citeras i sin helhet om att buntat innehåll inte medför någon context penalty; till "until a Skill is triggered, only its name and description occupy context"; till påståendet att ett scripts kod aldrig hamnar i context window och bara dess output gör det; och till säkerhetsavsnittet, som säger att du bara ska använda skills från betrodda källor och varnar för att en illasinnad skill "can direct Claude to invoke tools or execute code in ways that don't match the Skill's stated purpose" — kapitel 30:s ämne, som anländer genom ett dokument snarare än genom en tool description. 2 3

  4. Anthropic, Equipping agents for the real world with Agent Skills, 16 oktober 2025, anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills, läst 7 september 2026. Källa till definitionen som citeras ovan, till analogin med innehållsförteckning/kapitel/bilaga, till de tre nivåerna som de ursprungligen beskrevs, och till inramningen att agents behöver "more composable, scalable, and portable ways" att få domänexpertis. Den kompletterande produktannonseringen på claude.com/blog/skills bär publiceringsdatumet 16 oktober 2025 och uppdateringen den 18 december 2025 som introducerade organisationsomfattande hantering och den öppna standarden.

  5. Skills Over MCP Charter, modelcontextprotocol.io/community/working-groups/skills-over-mcp, läst 7 september 2026. Källa till mission statement som citeras ovan, till changelog-datumen (interest group bildad 1 februari 2026, initial charter 14 april 2026, omvandlad till working group 16 april 2026, SEP-2640 länkad 25 april 2026), till ledarskapet och de sjutton listade medlemmarna, till veckomötestakten, och till success criterion som namnger utkastet Skills Extension som "a formal extension using existing Resources primitives". SEP-2076, Agent Skills as a First-Class MCP Primitive, github.com/modelcontextprotocol/modelcontextprotocol/pull/2076, öppnades 13 januari 2026 och stängdes 24 februari 2026; den föreslog skills/list, skills/get, en skills server capability och en skills/list_changed notification, och definierade en skill som "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, öppnades 23 april 2026 på Extensions Track och bär skill:// resource-konventionen och extension-identifieraren io.modelcontextprotocol/skills. Kapitel 26 listar samma working group bland protokollets valfria extensions.

Redo att låta LIA välja åt dig?

Bygg med alla AI-modeller på ett ställe – kom igång gratis i dag.