Vai al contenuto
Ingegneria per la prossima generazione di AI applicataScopri di più

La Capra Engineering

I tre livelli con cui si carica una Skill

Le Skill non divorano la context window. Si caricano in tre fasi e due di esse non costano nulla finché non servono.

L’obiezione abituale alle Skill è che mangeranno la context window. È una paura ragionevole e sbagliata, perché una Skill non è un unico blocco di testo. Si carica in tre fasi, e due di esse non costano nulla finché non servono.

Secondo articolo di una serie sulle Agent Skill.

Livello 1 — metadata, sempre caricati

All’avvio vengono messi nel system prompt soltanto il name e la description di ogni Skill installata. All’incirca cento token ciascuno.

È questo il numero che conta rispetto all’obiezione. Trenta Skill installate significano circa tremila token di overhead permanente — il prezzo di una breve email. Puoi installare parecchia capacità prima che valga la pena ottimizzare questo aspetto.

Livello 2 — istruzioni, caricate all’attivazione

Quando la richiesta corrisponde alla descrizione, l’agente legge SKILL.md dal filesystem e il suo corpo entra nel contesto. La raccomandazione è di mantenerlo sotto circa cinquemila token.

Nota ciò che è appena successo: il corpo è rimasto sul disco per tutto il tempo, a costo zero, ed è diventato visibile soltanto nel momento in cui era rilevante. Questo meccanismo ha un nome: progressive disclosure.

Livello 3 — file inclusi, caricati soltanto se letti

Una Skill può includere tutti i file aggiuntivi che vuoi: altro Markdown, riferimenti API, schemi di database, template, esempi, script eseguibili. Nessuno di questi costa qualcosa finché non viene letto.

La conseguenza è poco intuitiva ma utile: non esiste un vero limite a quanto puoi includere. Una Skill può contenere una reference API completa e una dozzina di esempi svolti. Se un task ne richiede uno, si carica quello. Tutto il resto resta sul disco a costo zero.

che cosa si trova nella context windowLIVELLO 1nome + descrizionesempre · ~100 token ciascunoLIVELLO 2corpo SKILL.mdall’attivazione · sotto 5k tokenLIVELLO 3REFERENCE.md · schema.sql · examples/ · scripts/ — sul disco, non letti, gratisuno script è il caso speciale:il suo codice non entra mai nel contesto — soltanto l’output che stampa
Tre livelli. Soltanto il primo è incondizionato, ed è anche il più economico.

Come appare in una Skill reale

Ecco le misure di una Skill presente sulla mia macchina, usata per consigliare automazioni per un codebase:

Quindi una Skill che porta con sé circa 43 KB di materiale ha a riposo il costo di un paio di frasi. Chiedile degli hook e si apre un solo file da 6 KB; quello da 8 KB sui server MCP resta chiuso.

La regola di design che ne consegue

Poiché il Livello 2 viene pagato per intero ogni volta che la Skill si attiva, mentre il Livello 3 viene pagato soltanto quando viene letto, la separazione conta:

Un errore comune è un singolo SKILL.md da 20.000 token che documenta ogni ramo. Funziona, e paga il prezzo completo a ogni attivazione. Dividerlo non costa nulla e spesso rende le istruzioni più chiare, perché il file principale torna a descrivere il percorso normale.

Dove il modello esegue la lettura

Vale la pena essere precisi sul meccanismo, perché spiega il modello di costo. Non esiste un loader speciale. L’agente legge questi file con normali comandi shell, come faresti tu. Quando le istruzioni citano un altro file, legge anche quello. Quando citano uno script, lo esegue e vede soltanto ciò che lo script ha stampato.

Quest’ultima frase è la più utile della serie, e il prossimo articolo parla proprio di questo.

Che cosa portarsi a casa

Le Skill costano poco quando sono inattive, moderatamente quando si attivano e zero per tutto ciò che trasportano ma non leggono. Progetta seguendo questo gradiente: corpo snello, riferimenti generosi e dettagli costosi un livello più lontano di quanto verrebbe spontaneo.

Prossimo articolo: perché la descrizione è l’unica parte di una Skill che la maggior parte delle richieste vedrà mai.

Porta la parte difficile. Costruiamo il prossimo passo.

Parliamone