Μετάβαση στο περιεχόμενο
28/30Κεφάλαιο 28 από 30

Agent Skills και SKILL.md: προοδευτική αποκάλυψη, μετρημένη

Πέντε πραγματικά skills με 128.374 token οδηγιών πιάνουν 253 token context. Κόψτε τις περιγραφές και ο agent σταματά να τα βρίσκει.

Σε αυτή τη σελίδα

Πάρτε ένα project με εγκατεστημένα πέντε δημοσιευμένα skills. Να πόσο κοστίζουν.

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

Εκατόν είκοσι οκτώ χιλιάδες token οδηγιών, παραδειγμάτων και κανόνων — περισσότερα από όσα χωρούν σε ένα context window 128.000 token — και το πάγιο κόστος του να είναι διαθέσιμα και τα πέντε είναι 253 token, δύο δέκατα του ενός τοις εκατό. Τίποτα άλλο σε αυτό το μάθημα δεν έχει αυτό το σχήμα. Ένας ορισμός εργαλείου πληρώνεται σε κάθε αίτημα είτε χρησιμοποιηθεί είτε όχι, και το Κεφάλαιο 26 μέτρησε έναν MCP server στα 1.619 token πριν κάνει οτιδήποτε: τριάντα δύο φορές τη μέση γραμμή επιπέδου 1 στον παραπάνω πίνακα.

Αυτό το κεφάλαιο αφορά τον μηχανισμό που παράγει αυτή την αναλογία, τους δύο τρόπους με τους οποίους σπάει, και το ερώτημα που ο μηχανισμός επιβάλλει και σχεδόν κανείς δεν απαντά: με δεδομένο ένα κομμάτι γνώσης, σε ποιο από τέσσερα μέρη ανήκει.

Γιατί αυτό το κεφάλαιο δεν έχει γλώσσα προγραμματισμού

Σύνδεσμος στην ενότητα: Γιατί αυτό το κεφάλαιο δεν έχει γλώσσα προγραμματισμού

Το Κεφάλαιο 14 έθεσε τον κανόνα για το δεύτερο μισό αυτού του μαθήματος — συνδέσεις, retries και ακύρωση είναι TypeScript — και δήλωσε πέντε εξαιρέσεις. Αυτή είναι μία από αυτές, και ο λόγος δεν είναι προτίμηση.

Ένα skill είναι ένα αρχείο Markdown. Όχι ένα αρχείο που ρυθμίζει ένα πρόγραμμα, όχι ένα αρχείο που ένα πρόγραμμα μεταγλωττίζει: ένα έγγραφο που το μοντέλο διαβάζει, με τον ίδιο τρόπο που διαβάζει το μήνυμα που πληκτρολογήσατε. Το να δοθεί σε αυτό το κεφάλαιο μια γλώσσα προγραμματισμού θα σήμαινε ότι δεν έχει γίνει κατανοητή η μορφή, και αυτή η παρανόηση είναι η πιο συνηθισμένη για τα skills. Όλα παρακάτω είναι Markdown και YAML, συν ένα μικρό shell script που υπάρχει ακριβώς για να δείξει πού ανήκει και πού δεν ανήκει ο κώδικας μέσα σε ένα skill.

Ο λογαριασμός που λύνει, και είναι η αριθμητική του Κεφαλαίου 16

Σύνδεσμος στην ενότητα: Ο λογαριασμός που λύνει, και είναι η αριθμητική του Κεφαλαίου 16

Να μια πραγματική οδηγία: πώς γράφει μια εταιρεία τα release notes της. Είναι διαδικασία, όχι προτίμηση — έχει μια διατεταγμένη σειρά βημάτων, μια ταξινόμηση, μια φωνή, ένα template και ένα script που συλλέγει την ακατέργαστη ύλη.

Βάλτε τα όλα στο system prompt, όπως κάνουν οι περισσότερες ομάδες, και αναλαμβάνει η αριθμητική του Κεφαλαίου 16. Ένα system prompt είναι πρόθεμα, και ένα πρόθεμα πληρώνεται σε κάθε κλήση. Μετρημένο με o200k_base πάνω στον φάκελο που γράφτηκε για αυτό το κεφάλαιο:

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

Είκοσι τέσσερις φορές φθηνότερο όταν χρησιμοποιείται, τριάντα επτά φορές φθηνότερο όταν δεν χρησιμοποιείται. Οι τιμές είναι του Κεφαλαίου 16: $2,00 ανά εκατομμύριο input token.

Τώρα η ειλικρινής ένσταση, γιατί ένα κεφάλαιο που θα την παρέλειπε θα ήταν διαφήμιση. Το prompt caching κλείνει σχεδόν όλο το χάσμα χρημάτων. Ένα system prompt είναι σταθερό και βρίσκεται πρώτο, κάτι που το κάνει τον καλύτερο υποψήφιο για cache που υπάρχει· στα $0,20 ανά εκατομμύριο για cached input, τα ίδια 68.640 token κοστίζουν $0,0168 αντί για $0,1373. Ακόμη τρεις φορές το skill, αλλά όχι πλέον άλλη τάξη μεγέθους.

Τα χρήματα δεν ήταν ποτέ το ισχυρότερο επιχείρημα. Αυτό είναι:

Το caching κάνει ένα μόνιμο πρόθεμα φθηνότερο. Δεν το κάνει μικρότερο.

Στη στροφή 40, η έκδοση με system prompt εξακολουθεί να έχει 1.716 token πολιτικής release notes μέσα στο παράθυρο κατά τη διάρκεια μιας συνομιλίας για κάτι εντελώς άλλο, ανταγωνιζόμενη για αυτό που το Κεφάλαιο 24 ονόμασε attention budget του μοντέλου. Η έκδοση με skill έχει 46. Κάντε cache το λάθος πράγμα και έχετε αγοράσει έκπτωση σε έναν περισπασμό.

Γραμμένο ως τύπος, με nn στροφές, L1L_1 τα metadata, L2L_2 το σώμα, L3L_3 όλο το πακέτο και RR το σύνολο των συνοδευτικών αρχείων που πράγματι διαβάστηκαν:

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)

Ολόκληρο αυτό το κεφάλαιο είναι η διαφορά ανάμεσα στο να πολλαπλασιάζετε τον δεύτερο όρο με nn και στο να τον πολλαπλασιάζετε με ένα ή με μηδέν.

Ένα skill είναι ένας κατάλογος. Η προδιαγραφή είναι αρκετά σύντομη ώστε να δηλωθεί πλήρως:

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 πρέπει να ξεκινά με YAML frontmatter, και απαιτούνται ακριβώς δύο πεδία: name και description.1 Τέσσερα ακόμη είναι προαιρετικά και δεν ορίζονται άλλα:

ΠεδίοΑπαιτείταιΠεριορισμός
nameναι1–64 χαρακτήρες, πεζά γράμματα, ψηφία και ενωτικά· χωρίς αρχικό, τελικό ή διπλό ενωτικό· πρέπει να ταιριάζει με το όνομα του καταλόγου
descriptionναι1–1024 χαρακτήρες, μη κενό· λέει τι κάνει το skill και πότε να χρησιμοποιείται
licenseόχιόνομα άδειας ή το όνομα ενός συνοδευτικού αρχείου άδειας
compatibilityόχιέως 500 χαρακτήρες: προοριζόμενο προϊόν, απαιτούμενα πακέτα, πρόσβαση δικτύου
metadataόχιελεύθερος χάρτης από string keys σε string values, για τα δικά σας εργαλεία
allowed-toolsόχιλίστα προεγκεκριμένων εργαλείων χωρισμένων με κενά· επισημαίνεται ως πειραματικό

Να το skill για release notes, πλήρες, με το σώμα του κάτω από τριάντα γραμμές:

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.

Διαβάστε τι είναι αυτό το σώμα. Δεν είναι η πολιτική — είναι ένας πίνακας περιεχομένων με σειρά ενεργειών. Η πολιτική ζει σε τρία αρχεία που κατονομάζει και δεν περιλαμβάνει. Και το πρώτο βήμα αναθέτει δουλειά σε ένα script, επειδή ο κώδικας ενός script δεν μπαίνει ποτέ στο context window: μόνο η έξοδός του μπαίνει.2

Το μοντέλο φόρτωσης έχει όνομα και τρία στάδια. Η προδιαγραφή τα δηλώνει με συνημμένο token budget:1

  1. Metadata, περίπου 100 token: name και description, φορτώνονται κατά την εκκίνηση για κάθε εγκατεστημένο skill.
  2. Οδηγίες, συνιστώμενες κάτω από 5.000 token: το σώμα του SKILL.md, φορτώνεται όταν ενεργοποιείται το skill.
  3. Πόροι, όπως χρειάζεται: συνοδευτικά αρχεία, φορτώνονται μόνο όταν κάτι τα απαιτεί.

Η τεκμηρίωση αναφοράς βάζει μια τέταρτη στήλη στον ίδιο πίνακα — πότε φορτώνεται, κόστος σε token, περιεχόμενο — και η σειρά που έχει σημασία είναι η τρίτη: κανένα μέχρι να προσπελαστεί.3 Εκεί βρίσκεται και η πρόταση που συνοψίζει όλο το κεφάλαιο:

Τα αρχεία δεν καταναλώνουν context μέχρι να προσπελαστούν, οπότε τα Skills μπορούν να περιλαμβάνουν εκτενή τεκμηρίωση API, μεγάλα datasets ή εκτενή παραδείγματα. Δεν υπάρχει ποινή context για συνοδευτικό περιεχόμενο που δεν χρησιμοποιείται.3

Ο μετρημένος πίνακας στην αρχή αυτού του κεφαλαίου είναι αυτός ο ισχυρισμός ελεγμένος πάνω σε πέντε skills που κανείς δεν έγραψε για αυτό το άρθρο. Δύο σειρές αξίζει να διαβαστούν η μία απέναντι στην άλλη.

Το next-best-practices έχει σώμα 966 token που συνδέει σε δεκαεννέα αρχεία με 19.374 token. Ζητήστε του να διορθώσει ένα hydration error και ο agent διαβάζει το σώμα συν το hydration-error.md: 1.409 token από 20.340, συντελεστής δεκατέσσερα, και τα άλλα δεκαοκτώ αρχεία δεν ανοίγονται ποτέ.

Το next-cache-components έχει σώμα 2.334 token και κανένα συνοδευτικό αρχείο. Είναι έγκυρο skill και καλογραμμένο, και δεν έχει επίπεδο 3 να αποκαλύψει. Αυτό είναι το ειλικρινές όριο της τεχνικής: η προοδευτική αποκάλυψη είναι εξοικονόμηση μόνο αν υπάρχει κάτι να αναβληθεί. Ένα skill του οποίου η γνώση δεν αποσυντίθεται πληρώνει ολόκληρο το σώμα του κατά την ενεργοποίηση, και ο μόνος μοχλός που απομένει είναι να μην ενεργοποιηθεί.

Το επίπεδο 1 είναι μια απόφαση δρομολόγησης που λαμβάνεται από μία πρόταση. Τίποτα άλλο σε ένα skill δεν επηρεάζει αν θα ανοιχτεί ποτέ — ούτε η ποιότητα του σώματος, ούτε τα παραδείγματα, ούτε τα scripts. Άρα η περιγραφή δεν είναι τεκμηρίωση. Είναι η επιφάνεια query, και μπορεί να είναι λάθος.

Η προδιαγραφή το λέει με τη μορφή ενός καλού και ενός κακού παραδείγματος, και το κακό είναι τέσσερις λέξεις: description: Helps with PDFs.1 Αυτό αξίζει να μετρηθεί αντί απλώς να γίνει αποδεκτό.

Έξι skills, το καθένα με μια εύλογη περιγραφή που λέει τι κάνει και πότε να χρησιμοποιείται. Είκοσι τέσσερα αιτήματα, τέσσερα ανά skill, διατυπωμένα όπως θα τα διατύπωνε ένας άνθρωπος και χωρίς ποτέ να κατονομάζουν το skill. Το μοντέλο βλέπει τις έξι γραμμές στο system prompt του και πρέπει να απαντήσει με ένα όνομα ή με NONE. Greedy decoding, ώστε να αναπαράγεται. Έπειτα τα ίδια είκοσι τέσσερα αιτήματα με τα ίδια έξι skills, και οι περιγραφές κομμένες πίσω στο γυμνό θέμα τους.

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

Διαβάστε πρώτα τα διαστήματα, όπως επέμεινε το Κεφάλαιο 4 και θα επιμείνει ξανά το Κεφάλαιο 29: επικαλύπτονται, και είκοσι τέσσερις περιπτώσεις δεν μπορούν να κατατάξουν δύο συστήματα μόνο από τα συγκεντρωτικά τους. Η ζευγαρωμένη σύγκριση είναι αυτό που το κρίνει, και είναι το όργανο του Κεφαλαίου 15: από τις δέκα περιπτώσεις όπου οι δύο βραχίονες διαφώνησαν, εννέα πήγαν στις πλούσιες περιγραφές και μία στις λεπτές. Αυτό τεκμηριώνεται στο συνηθισμένο κατώφλι.

Τώρα διαβάστε την τελευταία γραμμή, που είναι το πραγματικό εύρημα. Με λεπτές περιγραφές το μοντέλο απάντησε NONE σε εννέα από είκοσι τέσσερα αιτήματα. Όχι το λάθος skill: κανένα skill. Να τέσσερα από αυτά, αυτολεξεί:

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

Ένα τέλειο skill sql-review ήταν εγκατεστημένο, με σώμα και παραδείγματα και checklist, και δεν άνοιξε ποτέ, τρεις φορές στη σειρά, στις τρεις ερωτήσεις για τις οποίες είχε γραφτεί. Τα επίπεδα 2 και 3 είναι άσχετα για ένα skill που το επίπεδο 1 δεν φτάνει ποτέ.

Το κόστος της διόρθωσης: 214 token, η διαφορά ανάμεσα σε 295 και 81, απλωμένη σε έξι skills. Αυτό είναι το εύρημα του Κεφαλαίου 18 που φτάνει από την άλλη πλευρά. Εκεί, αλλάζοντας μόνο την περιγραφή ενός εργαλείου, η μορφοποίηση ημερομηνίας πήγε από 2 σωστά στα 24 σε 24 στα 24. Εδώ, αλλάζοντας μόνο την περιγραφή ενός skill, η ενεργοποίηση πηγαίνει από 10 στα 24 σε 18. Και στις δύο περιπτώσεις η φθηνότερη διόρθωση στο σύστημα είναι μια πρόταση, και και στις δύο περιπτώσεις η πρόταση πρέπει να κατονομάζει το trigger και όχι μόνο το θέμα: όχι τι είναι το πράγμα, αλλά τι θα έχει μόλις πει ο χρήστης όταν εφαρμόζεται.

Μία επιφύλαξη που αυτό το κεφάλαιο οφείλει στα δικά του πρότυπα. Αυτό είναι ένα μοντέλο μισού δισεκατομμυρίου παραμέτρων, και ένα frontier model δρομολογεί πολύ καλύτερα από 75 %. Διαβάστε τον μηχανισμό, όχι το μέγεθος: το σήμα δρομολόγησης έχει μήκος μία πρόταση όποιο μοντέλο κι αν το διαβάζει, και κανένα μοντέλο δεν μπορεί να επιλέξει με βάση πληροφορίες που δεν βάλατε σε αυτή την πρόταση.

Σπάστε το ξανά: η έξοδος κινδύνου που κοστίζει 26.362 token

Σύνδεσμος στην ενότητα: Σπάστε το ξανά: η έξοδος κινδύνου που κοστίζει 26.362 token

Η δεύτερη αστοχία είναι το αντίθετο της πρώτης. Το skill βρίσκεται, τα επίπεδα είναι σωστά χωρισμένα, και ο agent τα διαβάζει όλα ούτως ή άλλως.

Το vercel-react-best-practices είναι ένα πραγματικά καλοφτιαγμένο skill. Το σώμα του των 1.670 token είναι ένας πίνακας προτεραιότητας οκτώ κατηγοριών και μια γρήγορη αναφορά που κατονομάζει 70 αρχεία κανόνων, μία γραμμή το καθένα. Οι κανόνες είναι στον δίσκο δίπλα του: 70 αρχεία, το μικρότερο 132 token, διάμεσος 319, το μεγαλύτερο 1.052. Κάντε του μία ερώτηση για barrel imports και το ειλικρινές κόστος είναι το σώμα συν ένα αρχείο — κάτω από 2.400 token απέναντι σε πακέτο 53.670.

Έπειτα η τελευταία γραμμή του σώματος λέει αυτό:

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

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

Το AGENTS.md είναι 26.362 token. Είναι τα 70 αρχεία κανόνων ενωμένα: το άθροισμά τους είναι 25.784, και η διαφορά είναι οι επικεφαλίδες ανάμεσά τους. Άρα το skill προσφέρει στον agent μια επιλογή ανάμεσα στο να διαβάσει έναν μέσο κανόνα των 319 token και στο να διαβάσει το ίδιο περιεχόμενο, όλο, στην ογδοντατριπλάσια τιμή — και προσφέρει αυτή την επιλογή σε μια πρόταση χωρίς συνημμένο κόστος και χωρίς συνθήκη για το πότε αξίζει να την πάρει.

Αυτό δεν είναι bug και το αρχείο δεν είναι λάθος· ένα μεταγλωττισμένο έγγραφο είναι πραγματικά χρήσιμο σε άνθρωπο, και σε agent που έχει κληθεί να ελέγξει ολόκληρη codebase. Είναι ένα αρχείο επιπέδου 3 με πρόσκληση επιπέδου 2, και το μάθημα γενικεύεται πέρα από αυτό το ένα skill: κάθε διαδρομή έξω από ένα SKILL.md πρέπει να λέει τι κοστίζει και πότε αξίζει, επειδή το μοντέλο δεν έχει τρόπο να ξέρει ότι ένα όνομα αρχείου είναι ογδόντα τρεις φορές ακριβότερο από το όνομα αρχείου από πάνω του.

Ο ίδιος φάκελος φέρει ένα μικρότερο μάθημα για την παλαίωση. Το σώμα λέει «70 κανόνες σε 8 κατηγορίες» και παραθέτει 70· ο κατάλογος rules/ περιέχει 72 αρχεία, από τα οποία δύο είναι scaffolding (_template.md και _sections.md)· και το sidecar metadata.json λέει «40+ κανόνες». Τρεις μετρήσεις του ίδιου συνόλου σε έναν φάκελο, μία σωστή, μία αριθμητική, και μία απομεινάρι προηγούμενης έκδοσης. Ένα skill είναι έγγραφο, και τα έγγραφα σαπίζουν ακριβώς όπως ένα σχόλιο κώδικα που έχει κάνει drift από τον κώδικα δίπλα του — με τη διαφορά ότι αυτό διαβάζεται από μια μηχανή που δεν θα σηκώσει φρύδι.

Τα πεδία που προσθέτει η υλοποίηση αναφοράς, και η παγίδα φορητότητας

Σύνδεσμος στην ενότητα: Τα πεδία που προσθέτει η υλοποίηση αναφοράς, και η παγίδα φορητότητας

Η ανοιχτή προδιαγραφή ορίζει έξι πεδία frontmatter. Η υλοποίηση αναφοράς, Claude Code, δέχεται είκοσι.2 Πέντε ομάδες αξίζει να τις ξέρετε με το όνομά τους, επειδή εκεί η μορφή παύει να είναι μόνο έγγραφο:

Άδεια και επίκληση. Το allowed-tools προεγκρίνει εργαλεία για τη στροφή που επικαλέστηκε το skill και η παραχώρηση καθαρίζεται στο επόμενο μήνυμα· το disallowed-tools τα αφαιρεί. Το disable-model-invocation εμποδίζει το μοντέλο να το φορτώσει μόνο του, μετατρέποντας το skill σε εντολή που εκτελεί ένας άνθρωπος. Το user-invocable: false κάνει το αντίθετο: κρυφό από ανθρώπους, διαθέσιμο μόνο στο μοντέλο, για background knowledge.

Απομόνωση και κόστος. Το context: fork εκτελεί το skill σε ξεχωριστό sub-agent context με δικό του παράθυρο — το όριο sub-agent του Κεφαλαίου 25 ως μία γραμμή YAML — με το agent να επιλέγει ποιο είδος και το background να αποφασίζει αν η στροφή περιμένει. Τα model και effort αλλάζουν ποιο μοντέλο τρέχει όσο το skill είναι ενεργό, μόνο για εκείνη τη στροφή.

Ορίσματα (arguments, argument-hint) αφήνουν έναν άνθρωπο να περάσει τιμές που αντικαθίστανται στο σώμα, και αυτό είναι που κάνει ένα skill χρησιμοποιήσιμο ως slash command. Το scoping (paths) περιορίζει την ενεργοποίηση σε αρχεία που ταιριάζουν με glob. Και το dynamic context injection είναι αυτό που αλλάζει το νοητικό μοντέλο: μια γραμμή της μορφής !`git diff HEAD` τρέχει πριν σταλεί το σώμα, και η έξοδός της αντικαθίσταται στο κείμενο. Το έγγραφο είναι template, και μέρος του υπολογίζεται τη στιγμή της ανάγνωσης.

Τώρα η παγίδα, και δηλώνεται στην ίδια τεκμηρίωση: έξω από το Claude Code — στο web product, μέσω του Skills API, στη συσκευασία — επιτρέπονται μόνο τα έξι καθορισμένα πεδία, και οποιοδήποτε άλλο πεδίο είναι σκληρό σφάλμα κατά το upload.2 Άρα ένα skill που λειτουργεί τέλεια σε ένα προϊόν αποτυγχάνει να εγκατασταθεί σε ένα άλλο του ίδιου vendor, και αποτυγχάνει στο frontmatter αντί σε οτιδήποτε θα μπορούσατε να ελέγξετε διαβάζοντας το πεζό κείμενο. Αν θέλετε ένα skill να είναι φορητό, τα έξι πεδία είναι όλος ο προϋπολογισμός. Αν δεν θέλετε, πείτε το στο compatibility, που υπάρχει ακριβώς γι’ αυτό.

Τέσσερα πράγματα συγχέονται συνεχώς μεταξύ τους, και η σύγχυση δεν είναι λεξιλογική σχολαστικότητα: η λάθος επιλογή κοστίζει χρήματα σε κάθε στροφή ή σας κοστίζει μια εγγύηση που νομίζατε ότι είχατε.

System promptSkillΕργαλείοMCP server
Τι είναικείμενο σε κάθε αίτημαένας φάκελος του οποίου η ρίζα είναι ένα SKILL.mdένα JSON Schema συν ένα endpoint στον κώδικά σαςμια διεργασία ή υπηρεσία που μιλά ένα protocol
Τι κάνει το μοντέλοτο διαβάζει, πάντατο διαβάζει, όταν αποφασίσει ότι η περιγραφή ταιριάζειτο καλεί, και περιμένει το αποτέλεσμά σαςτο καλεί, μέσω του host, ένας client ανά server
Τι κοστίζειόλο το μήκος του, κάθε στροφή, για πάνταπερίπου 50 token τη στροφή· το σώμα μία φορά, αν χρησιμοποιηθείτο schema του, κάθε στροφή· εκτέλεση όταν καλείταικάθε schema συν το instructions του server, κάθε στροφή
Τι μπορεί να εγγυηθείτίποτα — είναι συμβουλήτίποτα — είναι συμβουλή που το μοντέλο μπορεί να παραλείψειόλα όσα επιβάλλει ο κώδικάς σας πριν ενεργήσειόλα όσα επιβάλλει ο server
Ποιος το γράφειεσείςεσείς, ένας συνάδελφος ή ένας vendorεσείςκάποιος άλλος, για πολλούς hosts
Κεφάλαιο15αυτό1826 και 27

Οι δύο σειρές με έντονα είναι ολόκληρη η διάκριση. Ένα skill διαβάζεται· ένα εργαλείο invoked. Ένα skill είναι πεζό κείμενο που φτάνει στο context window και ανταγωνίζεται για attention με όλα τα άλλα εκεί μέσα· το μοντέλο μπορεί να το ακολουθήσει, να το διαβάσει λάθος ή να το αγνοήσει, και τίποτα στο σύστημα δεν το αντιλαμβάνεται. Ένα εργαλείο είναι μια κλήση που φεύγει εντελώς από τα χέρια του μοντέλου: ο κώδικάς σας λαμβάνει ορίσματα, τα επικυρώνει, ελέγχει δικαιώματα και αποφασίζει. Το Κεφάλαιο 18 το έθεσε ως το μοντέλο να προτείνει και ο κώδικάς σας να διαθέτει, και αυτή η διαίρεση είναι ακριβώς αυτό που δεν έχει ένα skill.

Άρα έξι πραγματικές περιπτώσεις, λυμένες:

«Απαντήστε στη γλώσσα του χρήστη. Μην δηλώνετε ποτέ τιμή που δεν σας έχει δοθεί.»

Σύνδεσμος στην ενότητα: «Απαντήστε στη γλώσσα του χρήστη. Μην δηλώνετε ποτέ τιμή που δεν σας έχει δοθεί.»

System prompt. Εφαρμόζεται σε κάθε στροφή, είναι περιορισμός και όχι διαδικασία, και έχει μήκος δύο προτάσεις. Κάτι που εφαρμόζεται πάντα δεν έχει τίποτα να αποκαλύψει προοδευτικά, και το να πληρώνετε για μια γραμμή discovery σε κάθε στροφή ώστε να αποφύγετε να πληρώνετε για δύο προτάσεις σε κάθε στροφή δεν είναι εξοικονόμηση.

Skill. Διαδικαστικό, χρειάζεται ίσως σε μία στροφή στις σαράντα, αποσυντίθεται σε φωνή, ταξινόμηση και παραδείγματα, και είναι πεζό κείμενο που θα επεξεργαστεί άνθρωπος. Αυτό είναι το σχήμα για το οποίο σχεδιάστηκε η μορφή, και η παραπάνω μέτρηση είναι αυτό που εξοικονομεί.

«Αναζήτησε μια παραγγελία με το αναγνωριστικό της στη βάση δεδομένων της αποθήκης.»

Σύνδεσμος στην ενότητα: «Αναζήτησε μια παραγγελία με το αναγνωριστικό της στη βάση δεδομένων της αποθήκης.»

Εργαλείο. Υπάρχει deterministic function πίσω του και το μοντέλο δεν πρέπει να αυτοσχεδιάσει το query. Το να το γράψετε ως skill — ένα έγγραφο που εξηγεί πώς να γίνει query στην αποθήκη — δίνει στο μοντέλο το schema και ελπίζει. Ένα schema συν ένα endpoint του δίνει απάντηση.

«Διάβασε και γράψε issues στον tracker μας, από κάθε agent product που χρησιμοποιεί η εταιρεία.»

Σύνδεσμος στην ενότητα: «Διάβασε και γράψε issues στον tracker μας, από κάθε agent product που χρησιμοποιεί η εταιρεία.»

MCP server. Η δυνατότητα δεν είναι δική σας, τη χρειάζονται αρκετοί hosts, και έχει ιστορία authentication. Αυτό είναι το πρόβλημα N×MN \times M με το οποίο άνοιξε το Κεφάλαιο 26, ένα protocol είναι η απάντηση σε αυτό, και το Κεφάλαιο 27 στέλνει ένα δύο φορές. Ένα skill δεν μπορεί να ανακαλυφθεί από host που δεν έχει δει ποτέ το filesystem σας — που είναι ακριβώς το κενό που κλείνει η δουλειά προτυποποίησης στο τέλος αυτού του κεφαλαίου.

Κανένα από τα τέσσερα. Είναι γνώση προς αναζήτηση, όχι διαδικασία προς ακολούθηση, και ανήκει σε ένα index που αναζητά ο agent: Κεφάλαιο 19. Το να το συσκευάσετε ως επίπεδο 3 επιτρέπεται και είναι δελεαστικό και λάθος, επειδή το μοντέλο θα έπρεπε να μαντέψει ποιο από σαράντα αρχεία κρατά την απάντηση μόνο από τα ονόματά τους. Αυτό που είναι καλό skill είναι η δισέλιδη διαδικασία που λέει στον agent πότε να αναζητήσει εκείνο το index, τι σημαίνει χαμηλό similarity score, και πώς να παραθέτει αυτό που βρίσκει.

«Ποτέ μην κάνεις refund πάνω από διακόσια ευρώ χωρίς άνθρωπο.»

Σύνδεσμος στην ενότητα: «Ποτέ μην κάνεις refund πάνω από διακόσια ευρώ χωρίς άνθρωπο.»

Ένα εργαλείο με approval gate, και ποτέ skill. Αυτή είναι η περίπτωση που έχει σημασία. Γραμμένο σε ένα SKILL.md, το όριο είναι μια πρόταση που το μοντέλο διαβάζει και συνήθως σέβεται· γραμμένο στο εργαλείο refund, είναι ένας κλάδος που τρέχει πριν κινηθούν χρήματα. Ένα όριο που θα σας εξέθετε αν παραβιαζόταν δεν είναι τεκμηρίωση. Ο κανόνας, άξιος απομνημόνευσης: αν η συνέπεια της αγνόησης της οδηγίας είναι χειρότερη από μια κακομορφοποιημένη απάντηση, η οδηγία δεν ανήκει σε έγγραφο.

Η ιστορία είναι σύντομη, ασυνήθιστα καλά χρονολογημένη, και είναι το μέρος που σχεδόν κανείς δεν λέει.

Τα Agent Skills δημοσιεύτηκαν στις 16 Οκτωβρίου 2025 ως λειτουργία ενός vendor, ορισμένη σε εκείνη την ανακοίνωση ως «οργανωμένοι φάκελοι οδηγιών, scripts και πόρων που οι agents μπορούν να ανακαλύπτουν και να φορτώνουν δυναμικά για να αποδίδουν καλύτερα σε συγκεκριμένες εργασίες», με τα τρία επίπεδα περιγραφόμενα μέσα από μια αναλογία που αξίζει να κρατήσουμε: «σαν ένα καλά οργανωμένο εγχειρίδιο που ξεκινά με έναν πίνακα περιεχομένων, μετά συγκεκριμένα κεφάλαια, και τέλος ένα λεπτομερές παράρτημα».4

Στις 18 Δεκεμβρίου 2025 η ίδια σελίδα ενημερώθηκε για να ανακοινώσει τη μορφή ως ανοιχτό standard, με δική της προδιαγραφή στο agentskills.io, governance ανοιχτό σε συνεισφορές, και validator αναφοράς.3 Διαβασμένο στις 7 Σεπτεμβρίου 2026, το showcase πελατών του standard απαριθμεί σαράντα έξι προϊόντα — editors, terminals, cloud platforms και mobile runtimes, συμπεριλαμβανομένων των first-party coding agents των Anthropic, OpenAI, Google και Mistral — το καθένα με σύνδεσμο στη δική του τεκμηρίωση εγκατάστασης.1

Η σύγκλιση με το MCP γίνεται ανοιχτά, με αριθμούς που μπορείτε να ελέγξετε:

Τι είναιΆνοιξεΚατάσταση στις 7 Σεπ 2026
SEP-2076Agent Skills as a First-Class MCP Primitive: νέες μέθοδοι skills/list και skills/get, capability skills, notification list_changed13 Ιανουαρίου 2026έκλεισε, 24 Φεβρουαρίου 2026
Skills Over MCP working groupορίζει πώς τα skills «ανακαλύπτονται, διανέμονται και καταναλώνονται μέσω MCP»· συνεδριάζει εβδομαδιαία· δεκαεπτά καταγεγραμμένα μέλη, δύο από αυτά leadsinterest group 1 Φεβρουαρίου 2026· working group 16 Απριλίου 2026ενεργό
SEP-2640Skills Extension, Extensions Track: σύμβαση resource skill://, extension identifier io.modelcontextprotocol/skills, discovery μέσω skills/list και content μέσω resources/read23 Απριλίου 2026υπό review

Το ενδιαφέρον μέρος είναι το κλείσιμο, όχι οι προτάσεις. Το SEP-2076 ζήτησε ένα τέταρτο primitive δίπλα σε tools, resources και prompts. Το working group που σχηματίστηκε από αυτό αποφάσισε ότι η απάντηση ήταν όχι: τα skills κινούνται πάνω στο resources primitive που ήδη υπάρχει, ως opt-in extension.5 Το Κεφάλαιο 26 μέτρησε το ίδιο ένστικτο στο changelog του ίδιου του protocol, όπου sampling, roots και logging αποσύρθηκαν αντί να διατηρηθούν. Ένας οργανισμός standard που αφαιρεί μια πρόταση που συνέταξε συμπεριφέρεται σωστά, και ο λόγος να ειπωθεί αυτή η ιστορία με τους αριθμούς μπροστά είναι ότι οι περιλήψεις που θα διαβάσετε αλλού εξακολουθούν να περιγράφουν τα skills ως MCP primitive.

Μπορείτε πλέον να γράψετε ένα SKILL.md, να το χωρίσετε σε τρία επίπεδα που πληρώνουν τον εαυτό τους, να διαβάσετε το frontmatter του skill κάποιου άλλου και να ξέρετε ποια πεδία δεν θα επιβιώσουν αν ανέβουν κάπου αλλού, και να απαντήσετε στο ερώτημα γύρω από το οποίο χτίστηκε όλο το κεφάλαιο — system prompt, skill, tool ή server — με λόγο αντί για συνήθεια.

Αυτό που δεν μπορείτε να κάνετε είναι να πείτε αν το δικό σας λειτουργεί.

Κάθε ισχυρισμός σε αυτό το κεφάλαιο που είχε σημασία ήταν μέτρηση, και εκείνος που είχε τη μεγαλύτερη σημασία ήταν accuracy: 18 στα 24 απέναντι σε 10 στα 24, με ένα διάστημα για το καθένα και ένα paired test ανάμεσά τους, επειδή δύο συγκεντρωτικά που επικαλύπτονται δεν αποφασίζουν τίποτα. Αυτό το όργανο ήταν δανεισμένο. Η περιγραφή ενός skill είναι routing key, το σώμα του είναι μια διαδικασία που το μοντέλο μπορεί να ακολουθήσει ή όχι, και και τα δύο είναι ιδιότητες που μπορείτε να μάθετε μόνο τρέχοντας το πράγμα πολλές φορές και βαθμολογώντας τι επέστρεψε — δηλαδή golden set, grader που γράψατε πριν την εκτέλεση, και metric που ρωτά αν λειτούργησε κάθε φορά αντί για τουλάχιστον μία φορά.

Το Κεφάλαιο 29 είναι αυτό, και ανοίγει με τον αριθμό από τον οποίο εξαρτάται η μέθοδος αυτού του κεφαλαίου: ένας agent που πετυχαίνει επτά στις δέκα φαίνεται σαν 70 %, και το pass^10 του — η πιθανότητα να πετύχει και στις δέκα — είναι μηδέν. Μετρά επίσης τρεις graders στα ίδια διακόσια transcripts και παίρνει 0 %, 13 % και 26 % χωρίς να αναγεννήσει ούτε ένα token. Πριν εμπιστευτείτε την πρόταση που μόλις γράψατε σε ένα description, χρειάζεστε το όργανο που μπορεί να σας πει ότι είναι χειρότερη από εκείνη που αντικαταστήσατε.


Κάθε μέτρηση token σε αυτό το κεφάλαιο παράχθηκε τοπικά με tiktoken 0.14.0 και το encoding o200k_base, στις 7 Σεπτεμβρίου 2026: πάνω στα πέντε third-party skills που παρατίθενται στην αρχή αυτού του κεφαλαίου, και πάνω στο skill release-notes που γράφτηκε για αυτό το κεφάλαιο, του οποίου το πλήρες κείμενο αναπαράγεται εν μέρει παραπάνω. Το επίπεδο 1 μετριέται ως η μονή γραμμή - name: description που ένας host αποδίδει στο system prompt· το επίπεδο 2 είναι το σώμα του SKILL.md μετά το frontmatter· το επίπεδο 3 είναι κάθε άλλο αρχείο στον φάκελο. Τα κόστη χρησιμοποιούν τις μετρημένες τιμές του Κεφαλαίου 16 για gpt-5.6-terra, $2,00 ανά εκατομμύριο input token και $0,20 ανά εκατομμύριο cached input token, εφαρμοσμένες σε αυτές τις μετρήσεις — είναι αριθμητική πάνω σε μετρημένα token, όχι παρατηρήσεις ζωντανού λογαριασμού. Δεν κλήθηκε καμία paid API για να γραφτεί αυτό το κεφάλαιο.

Το πείραμα ενεργοποίησης έτρεξε το Qwen/Qwen2.5-0.5B-Instruct σε half precision σε μία consumer GPU, greedy decoding, 24 αιτήματα σε έξι skills, δύο φορές — μία με περιγραφές που δηλώνουν τι κάνει το skill και πότε εφαρμόζεται, μία με τις περιγραφές κομμένες σε γυμνό θέμα, στο ύφος του ίδιου του «κακού παραδείγματος» της προδιαγραφής. Τα διαστήματα είναι Wilson στο 95 %· η paired comparison είναι two-sided exact sign test πάνω στις δέκα discordant cases· το Wilson interval είναι του Κεφαλαίου 4 και το exact paired sign test του Κεφαλαίου 15, και τα δύο επαναχρησιμοποιημένα χωρίς αλλαγές. Διαβάστε τα μεγέθη ως ιδιότητα ενός πολύ μικρού μοντέλου και τη μέθοδο ως μεταφέρσιμη.

Τα πέντε skills που μετρήθηκαν εδώ είναι third-party packages, όχι γραμμένα για αυτό το κεφάλαιο: next-best-practices και next-cache-components από vercel-labs/next-skills, και vercel-composition-patterns, vercel-react-best-practices και vercel-react-native-skills από vercel-labs/agent-skills. Οι εσωτερικές μετρήσεις τους — 70 αρχεία κανόνων, AGENTS.md στα 26.362 token, metadata.json με ημερομηνία Ιανουάριο 2026 και ισχυρισμό «40+ κανόνες» — διαβάστηκαν από τα αρχεία στον δίσκο στις 7 Σεπτεμβρίου 2026 και είναι ιδιότητες εκείνης της δημοσιευμένης έκδοσης, όχι κριτικές προς τους συντάκτες τους: κάθε μία από αυτές είναι το είδος drift που εμφανίζεται σε οποιοδήποτε δέντρο τεκμηρίωσης επεξεργάζεται συχνότερα από όσο μετριέται.

  1. Agent Skills Specification και Overview, agentskills.io/specification και agentskills.io, διαβάστηκαν στις 7 Σεπτεμβρίου 2026. Πηγή της διάταξης καταλόγου· του πίνακα frontmatter που αναπαράγεται παραπάνω με κάθε περιορισμό (name 1–64 χαρακτήρες και αντιστοίχιση με τον κατάλογο, description 1–1024 χαρακτήρες, compatibility έως 500, allowed-tools επισημασμένο ως πειραματικό)· των καλών και κακών παραδειγμάτων description· της περιγραφής προοδευτικής αποκάλυψης τριών σταδίων με το token budget της (metadata περίπου 100 token, οδηγίες κάτω από 5.000 προτεινόμενα, πόροι όπως χρειάζεται) και της συμβουλής να κρατάτε το SKILL.md κάτω από 500 γραμμές· της σημείωσης ότι «ο agent θα φορτώσει ολόκληρο αυτό το αρχείο μόλις αποφασίσει να ενεργοποιήσει ένα skill»· των συμβάσεων scripts/, references/ και assets/· της εντολής skills-ref validate· της δήλωσης ότι η μορφή «αναπτύχθηκε αρχικά από την Anthropic, κυκλοφόρησε ως ανοιχτό standard, και έχει υιοθετηθεί από αυξανόμενο αριθμό agent products»· και του client showcase, που απαριθμούσε σαράντα έξι προϊόντα την ημερομηνία ανάγνωσης. 2 3 4

  2. Skills στην τεκμηρίωση του Claude Code, code.claude.com/docs/en/skills, διαβάστηκε στις 7 Σεπτεμβρίου 2026. Πηγή του πλήρους πίνακα πεδίων που χρησιμοποιείται στην ενότητα «τα πεδία που προσθέτει η υλοποίηση αναφοράς» — 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 — της περιγραφής του dynamic context injection με το !`command` να τρέχει πριν σταλεί το σώμα, του κανόνα ότι μια παραχώρηση allowed-tools καθαρίζεται στο επόμενο μήνυμα, και της σημείωσης compliance ότι έξω από το Claude Code γίνονται δεκτά μόνο τα έξι καθορισμένα πεδία και οποιοδήποτε άλλο προκαλεί hard error σε upload ή packaging. 2 3

  3. Agent Skills overview, platform.claude.com/docs/en/agents-and-tools/agent-skills/overview, διαβάστηκε στις 7 Σεπτεμβρίου 2026. Πηγή του πίνακα επιπέδων με τις τέσσερις στήλες του (Level 1 metadata, πάντα, περίπου 100 token ανά skill· Level 2 instructions, όταν γίνεται triggered, κάτω από 5k token· Level 3+ resources, όπως χρειάζεται, κανένα μέχρι να προσπελαστεί)· της πρότασης που παρατίθεται πλήρως για το bundled content που δεν έχει context penalty· του «μέχρι να γίνει triggered ένα Skill, μόνο το όνομα και η περιγραφή του καταλαμβάνουν context»· της δήλωσης ότι ο κώδικας ενός script δεν μπαίνει ποτέ στο context window και μπαίνει μόνο η έξοδός του· και της ενότητας security, που σας λέει να χρησιμοποιείτε skills μόνο από trusted sources και προειδοποιεί ότι ένα malicious skill «μπορεί να κατευθύνει το Claude να invoke tools ή να execute code με τρόπους που δεν ταιριάζουν με τον δηλωμένο σκοπό του Skill» — το θέμα του Κεφαλαίου 30, που φτάνει μέσω εγγράφου αντί μέσω περιγραφής εργαλείου. 2 3

  4. Anthropic, Equipping agents for the real world with Agent Skills, 16 Οκτωβρίου 2025, anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills, διαβάστηκε στις 7 Σεπτεμβρίου 2026. Πηγή του ορισμού που παρατίθεται παραπάνω, της αναλογίας πίνακα περιεχομένων/κεφαλαίων/παραρτήματος, των τριών επιπέδων όπως περιγράφηκαν αρχικά, και του framing ότι οι agents χρειάζονται «πιο composable, scalable και portable τρόπους» για να τους δοθεί domain expertise. Η συνοδευτική ανακοίνωση προϊόντος στο claude.com/blog/skills φέρει την ημερομηνία δημοσίευσης 16 Οκτωβρίου 2025 και την ενημέρωση της 18ης Δεκεμβρίου 2025 που εισήγαγε organization-wide management και το ανοιχτό standard.

  5. Skills Over MCP Charter, modelcontextprotocol.io/community/working-groups/skills-over-mcp, διαβάστηκε στις 7 Σεπτεμβρίου 2026. Πηγή της mission statement που παρατίθεται παραπάνω, των ημερομηνιών changelog (interest group σχηματίστηκε 1 Φεβρουαρίου 2026, αρχικό charter 14 Απριλίου 2026, μετατράπηκε σε working group 16 Απριλίου 2026, SEP-2640 συνδέθηκε 25 Απριλίου 2026), της ηγεσίας και των δεκαεπτά καταγεγραμμένων μελών, του εβδομαδιαίου ρυθμού συναντήσεων, και του κριτηρίου επιτυχίας που ονομάζει το draft Skills Extension ως «formal extension using existing Resources primitives». Το SEP-2076, Agent Skills as a First-Class MCP Primitive, github.com/modelcontextprotocol/modelcontextprotocol/pull/2076, άνοιξε στις 13 Ιανουαρίου 2026 και έκλεισε στις 24 Φεβρουαρίου 2026· πρότεινε skills/list, skills/get, ένα server capability skills και notification skills/list_changed, και όρισε ένα skill ως «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, άνοιξε στις 23 Απριλίου 2026 στο Extensions Track και φέρει τη σύμβαση resource skill:// και το extension identifier io.modelcontextprotocol/skills. Το Κεφάλαιο 26 παραθέτει το ίδιο working group ανάμεσα στα optional extensions του protocol.

Έτοιμοι να αφήσετε τη LIA να επιλέγει;

Δημιουργήστε με κάθε μοντέλο AI σε ένα σημείο — ξεκινήστε δωρεάν σήμερα.