Agent Skills ו-SKILL.md: חשיפה הדרגתית, במדידה
חמישה skills אמיתיים עם 128,374 token של הוראות תופסים 253 token של context. קצצו בתיאורים — וה-agent מפסיק למצוא אותם.
בעמוד הזה
קחו פרויקט שמותקנים בו חמישה skills שפורסמו. הנה המחיר שלהם.
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,668מאה עשרים ושמונה אלף token של הוראות, דוגמאות וכללים — יותר ממה שנכנס ב-context window של 128,000 token — והעלות הקבועה של זמינות כל החמישה היא 253 token, שתי עשיריות האחוז. לשום דבר אחר בקורס הזה אין צורה כזאת. על הגדרת כלי משלמים בכל בקשה בין אם משתמשים בו ובין אם לא, ופרק 26 מדד MCP server אחד ב-1,619 token לפני שהוא עושה משהו בכלל: פי שלושים ושניים משורת רמה 1 ממוצעת בטבלה שלמעלה.
הפרק הזה עוסק במנגנון שמייצר את היחס הזה, בשתי הדרכים שבהן הוא נשבר, ובשאלה שהמנגנון כופה וכמעט אף אחד לא עונה עליה: בהינתן פיסת ידע, לאיזה מארבעה מקומות היא שייכת.
למה לפרק הזה אין שפת תכנות
קישור למקטע: למה לפרק הזה אין שפת תכנותפרק 14 קבע את הכלל לחצי השני של הקורס הזה — חיבורים, ניסיונות חוזרים וביטול הם TypeScript — והכריז על חמישה חריגים. זה אחד מהם, והסיבה אינה העדפה.
skill הוא קובץ Markdown. לא קובץ שמגדיר תוכנה, לא קובץ שתוכנה מקמפלת: מסמך שהמודל קורא, באותו אופן שבו הוא קורא את ההודעה שהקלדת. לתת לפרק הזה שפת תכנות היה אומר לא להבין את הפורמט, ואי-ההבנה הזאת היא הנפוצה ביותר לגבי skills. כל מה שבהמשך הוא Markdown ו-YAML, ועוד סקריפט shell קטן אחד שקיים בדיוק כדי להראות איפה קוד כן ולא שייך בתוך skill.
החשבון שהוא פותר, והוא החשבון של פרק 16
קישור למקטע: החשבון שהוא פותר, והוא החשבון של פרק 16הנה הוראה אמיתית: איך חברה אחת כותבת את הערות הגרסה שלה. זו פרוצדורה, לא העדפה — יש לה סדר פעולות, טקסונומיה, קול, תבנית וסקריפט שאוסף את חומר הגלם.
שימו את כולה ב-system prompt, כמו שרוב הצוותים עושים, והחשבון של פרק 16 משתלט. system prompt הוא קידומת, ועל קידומת משלמים בכל קריאה. נמדד עם o200k_base על התיקייה שנכתבה לפרק הזה:
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 tokens.
עכשיו ההתנגדות הכנה, כי פרק שהיה מדלג עליה היה פרסומת. prompt caching כמעט סוגר את פער הכסף. system prompt יציב ונמצא ראשון, מה שהופך אותו למועמד המטמון הטוב ביותר שיש; ב-$0.20 למיליון עבור קלט cached, אותם 68,640 token עולים $0.0168 במקום $0.1373. עדיין פי שלושה מה-skill, אבל כבר לא סדר גודל אחר.
הכסף מעולם לא היה הטיעון החזק ביותר. זה כן:
Caching הופך קידומת קבועה לזולה יותר. הוא לא הופך אותה לקטנה יותר.
בתור 40, גרסת ה-system-prompt עדיין מחזיקה 1,716 token של מדיניות הערות גרסה בתוך החלון בזמן שיחה על משהו אחר לגמרי, ומתחרה על מה שפרק 24 קרא תקציב ה-attention של המודל. לגרסת ה-skill יש 46. עשו cache לדבר הלא נכון וקניתם הנחה על הסחת דעת.
כנוסחה, עם תורות, המטא-דאטה, הגוף, החבילה כולה ו- קבוצת הקבצים המצורפים שנקראו בפועל:
כל הפרק הזה הוא ההבדל בין להכפיל את האיבר השני ב- לבין להכפיל אותו באחד או באפס.
מה skill הוא באמת
קישור למקטע: מה skill הוא באמתskill הוא תיקייה. המפרט קצר מספיק כדי להציג אותו בשלמותו:
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 חייב להתחיל ב-YAML frontmatter, ונדרשים בדיוק שני שדות: name ו-description.1 ארבעה נוספים אופציונליים, ולא מוגדרים אחרים:
| שדה | חובה | מגבלה |
|---|---|---|
name | כן | 1–64 תווים, אותיות קטנות, ספרות ומקפים; בלי מקף בתחילה, בסוף או כפול; חייב להתאים לשם התיקייה |
description | כן | 1–1024 תווים, לא ריק; אומר מה ה-skill עושה וגם מתי להשתמש בו |
license | לא | שם רישיון, או שם של קובץ רישיון מצורף |
compatibility | לא | עד 500 תווים: מוצר מיועד, חבילות נדרשות, גישה לרשת |
metadata | לא | מפה חופשית של מפתחות מחרוזת לערכי מחרוזת, עבור הכלים שלכם |
allowed-tools | לא | רשימה מופרדת ברווחים של כלים שאושרו מראש; מסומנת כניסיונית |
הנה skill הערות הגרסה, בשלמותו, עם גוף של פחות משלושים שורות:
---
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.קראו מה הגוף הזה. הוא לא המדיניות — הוא תוכן עניינים עם סדר פעולות. המדיניות נמצאת בשלושה קבצים שהוא מציין בשמם ולא כולל. והצעד הראשון מעביר עבודה לסקריפט, כי הקוד של סקריפט לעולם לא נכנס ל-context window בכלל: רק הפלט שלו כן.2
שלוש רמות, ומה כל אחת עולה
קישור למקטע: שלוש רמות, ומה כל אחת עולהלמודל הטעינה יש שם ושלושה שלבים. המפרט מציג אותם עם תקציב token צמוד:1
- מטא-דאטה, בערך 100 token:
nameו-description, נטענים בהפעלה עבור כל skill מותקן. - הוראות, מומלץ פחות מ-5,000 token: גוף ה-
SKILL.md, נטען כשה-skill מופעל. - משאבים, לפי הצורך: קבצים מצורפים, נטענים רק כשמשהו דורש אותם.
תיעוד הייחוס מוסיף עמודה רביעית לאותה טבלה — מתי נטען, עלות token, תוכן — והשורה החשובה היא השלישית: כלום עד שניגשים אליו.3 גם המשפט שמסכם את כל הפרק נמצא שם:
קבצים לא צורכים context עד שניגשים אליהם, ולכן Skills יכולים לכלול תיעוד API מקיף, מערכי נתונים גדולים או דוגמאות נרחבות. אין קנס context על תוכן מצורף שלא נעשה בו שימוש.3
הטבלה הנמדדת בראש הפרק הזה היא בדיקה של הטענה הזאת מול חמישה skills שאף אחד לא כתב בשביל המאמר הזה. שתי שורות ראויות לקריאה זו מול זו.
ל-next-best-practices יש גוף של 966 token שמקשר לתשעה-עשר קבצים המחזיקים 19,374 token. בקשו ממנו לתקן שגיאת hydration וה-agent קורא את הגוף פלוס hydration-error.md: 1,409 token מתוך 20,340, יחס של פי ארבעה-עשר, ושמונה-עשר הקבצים האחרים לעולם לא נפתחים.
ל-next-cache-components יש גוף של 2,334 token ואין לו קבצים מצורפים בכלל. זה skill תקין וכתוב היטב, ואין לו רמה 3 לחשוף. זו המגבלה הכנה של הטכניקה: חשיפה הדרגתית חוסכת רק אם יש משהו לדחות. skill שהידע שלו לא מתפרק משלם את כל הגוף שלו בהפעלה, והמנוף היחיד שנותר הוא לא להפעיל אותו.
לשבור אותו: התיאור הוא כל הממשק
קישור למקטע: לשבור אותו: התיאור הוא כל הממשקרמה 1 היא החלטת ניתוב שמתקבלת ממשפט אחד. שום דבר אחר ב-skill לא משפיע על השאלה אם הוא ייפתח אי פעם — לא איכות הגוף, לא הדוגמאות, לא הסקריפטים. לכן התיאור אינו תיעוד. הוא משטח השאילתה, והוא יכול להיות שגוי.
המפרט אומר זאת באמצעות דוגמה טובה ודוגמה גרועה, והגרועה היא ארבע מילים: description: Helps with PDFs.1 שווה למדוד את זה במקום לקבל את זה כמובן מאליו.
שישה skills, כל אחד עם תיאור סביר שאומר מה הוא עושה ומתי להשתמש בו. עשרים וארבע בקשות, ארבע לכל skill, מנוסחות כפי שאדם היה מנסח אותן ולעולם לא מציינות את שם ה-skill. המודל רואה את שש השורות ב-system prompt שלו וחייב לענות בשם אחד או ב-NONE. Greedy decoding, כדי שיהיה ניתן לשחזר. ואז אותן עשרים וארבע בקשות עם אותם שישה skills, כשהתיאורים קוצצו לנושא החשוף שלהם.
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 24קראו קודם את המרווחים, כפי שפרק 4 התעקש ופרק 29 יתעקש שוב: הם חופפים, ועשרים וארבעה מקרים לא יכולים לדרג שתי מערכות על סמך הצבירות שלהן בלבד. ההשוואה המזווגת היא מה שמכריע, והיא הכלי של פרק 15: מתוך עשרת המקרים שבהם שני הזרועות חלקו זו על זו, תשעה הלכו לתיאורים העשירים ואחד לרזים. זה עומד בסף המקובל.
עכשיו קראו את השורה האחרונה, שהיא הממצא האמיתי. עם תיאורים רזים המודל ענה NONE בתשע מתוך עשרים וארבע בקשות. לא ה-skill הלא נכון: אין skill. הנה ארבע מהן, מילה במילה:
"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-practicesskill sql-review מושלם היה מותקן, עם גוף ודוגמאות וצ׳קליסט, והוא מעולם לא נפתח, שלוש פעמים ברצף, על שלוש השאלות שהוא נכתב בשבילן. רמות 2 ו-3 לא רלוונטיות ל-skill שרמה 1 לעולם לא מגיעה אליו.
עלות התיקון: 214 token, ההפרש בין 295 ל-81, מפוזר על פני שישה skills. זה הממצא של פרק 18 שמגיע מהצד השני. שם, שינוי רק של תיאור כלי לקח עיצוב תאריכים מ-2 נכונים מתוך 24 ל-24 מתוך 24. כאן, שינוי רק של תיאור skill לוקח הפעלה מ-10 מתוך 24 ל-18. בשני המקרים התיקון הזול ביותר במערכת הוא משפט, ובשני המקרים המשפט חייב לציין את ה-trigger ולא רק את הנושא: לא מה הדבר, אלא מה המשתמש בדיוק אמר כשהוא רלוונטי.
הסתייגות אחת שהפרק הזה חייב לסטנדרטים של עצמו. זה מודל של חצי מיליארד פרמטרים, ומודל frontier מנתב הרבה יותר טוב מ-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.
ואז השורה האחרונה בגוף אומרת כך:
## 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 לבין קריאת אותו תוכן, כולו, במחיר גבוה פי שמונים ושלושה — והוא מציע את הבחירה הזאת במשפט בלי עלות צמודה ובלי תנאי מתי לקחת אותה.
זה לא באג והקובץ לא שגוי; מסמך מקומפל באמת שימושי לאדם, ול-agent שהתבקש לבצע ביקורת על בסיס קוד שלם. זה קובץ רמה 3 עם הזמנה ברמה 2, והלקח מכליל מעבר ל-skill הזה: כל נתיב שיוצא מתוך SKILL.md צריך לומר מה הוא עולה ומתי הוא שווה את זה, כי למודל אין דרך לדעת ששם קובץ יקר פי שמונים ושלושה משם הקובץ שמעליו.
אותה תיקייה נושאת לקח קטן יותר על התיישנות. הגוף אומר ״70 כללים על פני 8 קטגוריות״ ומונה 70; תיקיית rules/ מחזיקה 72 קבצים, מתוכם שניים הם scaffolding (_template.md ו-_sections.md); וה-sidecar metadata.json אומר ״40+ כללים״. שלוש ספירות של אותה קבוצה בתיקייה אחת, אחת מהן נכונה, אחת מהן אריתמטית, ואחת נשארה מגרסה קודמת. skill הוא מסמך, ומסמכים נרקבים בדיוק כמו הערת קוד שסטתה מהקוד שלצידה — עם ההבדל שאת זה קוראת מכונה שלא תרים גבה.
השדות שמימוש הייחוס מוסיף, ומלכודת הניידות
קישור למקטע: השדות שמימוש הייחוס מוסיף, ומלכודת הניידותהמפרט הפתוח מגדיר שישה שדות frontmatter. מימוש הייחוס, Claude Code, מקבל עשרים.2 כדאי להכיר בשם חמש קבוצות, כי שם הפורמט מפסיק להיות רק מסמך:
הרשאה והפעלה. allowed-tools מאשר מראש כלים עבור התור שהפעיל את ה-skill וההרשאה מתנקה בהודעה הבאה; disallowed-tools מסיר אותם. disable-model-invocation מונע מהמודל לטעון אותו בעצמו, מה שהופך את ה-skill לפקודה שאדם מריץ. user-invocable: false עושה את ההפך: מוסתר מאנשים, זמין רק למודל, עבור ידע רקע.
בידוד ועלות. context: fork מריץ את ה-skill ב-context של sub-agent נפרד עם חלון משלו — גבול ה-sub-agent של פרק 25 כשורת YAML אחת — עם agent שבוחר איזה סוג ו-background שמחליט אם התור ממתין. model ו-effort משנים איזה מודל רץ בזמן שה-skill פעיל, רק עבור התור הזה.
ארגומנטים (arguments, argument-hint) מאפשרים לאדם להעביר ערכים שמוחלפים בתוך הגוף, וזה מה שהופך skill לשימושי כפקודת slash. תחימה (paths) מגבילה הפעלה לקבצים שתואמים glob. והזרקת context דינמית היא זו שמשנה את המודל המנטלי: שורה בצורה !`git diff HEAD` רצה לפני שהגוף נשלח, והפלט שלה מוחלף בתוך הטקסט. המסמך הוא תבנית, וחלק ממנו מחושב בזמן הקריאה.
עכשיו המלכודת, והיא נאמרת באותו תיעוד: מחוץ ל-Claude Code — במוצר הווב, דרך Skills API, באריזה — רק ששת השדות המוגדרים מותרים, וכל שדה אחר הוא שגיאה קשיחה בהעלאה.2 כך ש-skill שעובד מושלם במוצר אחד נכשל בהתקנה במוצר אחר של אותו ספק, והוא נכשל ב-frontmatter ולא במשהו שאפשר לבדוק על ידי קריאת הפרוזה. אם אתם מתכוונים ש-skill יהיה נייד, ששת השדות הם כל התקציב. אם לא, אמרו זאת ב-compatibility, שקיים בדיוק בשביל זה.
הטבלה שהפרק הזה קיים בשבילה
קישור למקטע: הטבלה שהפרק הזה קיים בשבילהארבעה דברים מתבלבלים זה עם זה כל הזמן, והבלבול אינו דקדוק מילוני: בחירה שגויה עולה כסף בכל תור, או עולה לכם בערבות שחשבתם שיש לכם.
| System prompt | Skill | כלי | MCP server | |
|---|---|---|---|---|
| מה זה | טקסט בכל בקשה | תיקייה שהשורש שלה הוא SKILL.md | JSON Schema ועוד endpoint בקוד שלכם | תהליך או שירות שמדבר פרוטוקול |
| מה המודל עושה | קורא אותו, תמיד | קורא אותו, כשהוא מחליט שהתיאור מתאים | קורא לו, וממתין לתוצאה שלכם | קורא לו, דרך ה-host, לקוח אחד לכל server |
| מה זה עולה | האורך המלא שלו, בכל תור, לנצח | בערך 50 token לתור; הגוף פעם אחת, אם משתמשים בו | ה-schema שלו, בכל תור; ביצוע כשנקרא | כל schema ועוד ה-instructions של ה-server, בכל תור |
| מה זה יכול להבטיח | כלום — זו עצה | כלום — זו עצה שהמודל עשוי לדלג עליה | כל מה שהקוד שלכם אוכף לפני פעולה | כל מה שה-server אוכף |
| מי כותב את זה | אתם | אתם, עמית או ספק | אתם | מישהו אחר, עבור hosts רבים |
| פרק | 15 | זה | 18 | 26 ו-27 |
שתי השורות המודגשות הן כל ההבחנה. skill נקרא; כלי מופעל. skill הוא פרוזה שמגיעה ל-context window ומתחרה על attention עם כל מה שיש שם; המודל יכול לפעול לפיה, לקרוא אותה לא נכון או להתעלם ממנה, ושום דבר במערכת לא שם לב. כלי הוא קריאה שיוצאת לגמרי מידי המודל: הקוד שלכם מקבל ארגומנטים, מאמת אותם, בודק הרשאות ומחליט. פרק 18 ניסח זאת כך שהמודל מציע והקוד שלכם קובע, וזו בדיוק החלוקה שאין ל-skill.
אז שישה מקרים אמיתיים, מוכרעים:
״ענה בשפת המשתמש. לעולם אל תציין מחיר שלא ניתן לך.״
קישור למקטע: ״ענה בשפת המשתמש. לעולם אל תציין מחיר שלא ניתן לך.״System prompt. זה חל בכל תור, זו מגבלה ולא פרוצדורה, וזה באורך שני משפטים. דבר שתמיד חל אין לו מה לחשוף בהדרגה, ולשלם על שורת גילוי בכל תור כדי להימנע מתשלום על שני משפטים בכל תור אינו חיסכון.
״איך אנחנו כותבים כאן הערות גרסה.״
קישור למקטע: ״איך אנחנו כותבים כאן הערות גרסה.״Skill. פרוצדורלי, נדרש אולי בתור אחד מתוך ארבעים, ניתן לפירוק לקול, טקסונומיה ודוגמאות, והוא פרוזה שאדם יערוך. זו הצורה שהפורמט תוכנן בשבילה, והמדידה למעלה היא מה שהוא חוסך.
״מצא הזמנה לפי המזהה שלה במסד הנתונים של המחסן.״
קישור למקטע: ״מצא הזמנה לפי המזהה שלה במסד הנתונים של המחסן.״כלי. יש מאחוריו פונקציה דטרמיניסטית והמודל לא רשאי לאלתר את השאילתה. כתיבה של זה כ-skill — מסמך שמסביר איך לשאול את המחסן — מוסרת למודל את ה-schema ומקווה. schema ועוד endpoint מוסרים לו תשובה.
״קרא וכתוב issues במערכת המעקב שלנו, מכל מוצר agent שהחברה משתמשת בו.״
קישור למקטע: ״קרא וכתוב issues במערכת המעקב שלנו, מכל מוצר agent שהחברה משתמשת בו.״MCP server. היכולת אינה שלכם, כמה hosts צריכים אותה, ויש לה סיפור אימות. זו בעיית שפרק 26 פתח איתה, פרוטוקול הוא התשובה לה, ופרק 27 שולח אחד פעמיים. skill לא יכול להתגלות על ידי host שמעולם לא ראה את מערכת הקבצים שלכם — וזה בדיוק הפער שעבודת התקינה בסוף הפרק הזה סוגרת.
״מדריך המותג בן ארבע מאות העמודים.״
קישור למקטע: ״מדריך המותג בן ארבע מאות העמודים.״אף אחד מהארבעה. זה ידע לחיפוש, לא פרוצדורה לביצוע, והוא שייך לאינדקס שה-agent מחפש בו: פרק 19. לצרף אותו כרמה 3 מותר ומפתה ושגוי, כי המודל יצטרך לנחש איזה מארבעים קבצים מכיל את התשובה על סמך שמותיהם בלבד. מה כן skill טוב הוא פרוצדורה בת שני עמודים שאומרת ל-agent מתי לחפש באינדקס הזה, מה המשמעות של ציון דמיון נמוך, ואיך לצטט את מה שהוא מוצא.
״לעולם אל תחזיר יותר ממאתיים אירו בלי אדם.״
קישור למקטע: ״לעולם אל תחזיר יותר ממאתיים אירו בלי אדם.״כלי עם שער אישור, ולעולם לא skill. זה המקרה החשוב. כשהמגבלה כתובה בתוך SKILL.md, היא משפט שהמודל קורא ובדרך כלל מכבד; כשהיא כתובה בתוך כלי ההחזרים, היא ענף שרץ לפני שכסף כלשהו זז. מגבלה שהייתם מתביישים אם תיחצה אינה תיעוד. הכלל, שכדאי לזכור: אם התוצאה של התעלמות מההוראה גרועה יותר מתשובה בפורמט רע, ההוראה לא שייכת למסמך.
מז׳רגון פנימי לסטנדרט, עם המספרים
קישור למקטע: מז׳רגון פנימי לסטנדרט, עם המספריםההיסטוריה קצרה, מתוארכת באופן חריג היטב, והיא החלק שכמעט אף אחד לא מספר.
Agent Skills פורסמו ב-16 באוקטובר 2025 כפיצ׳ר של ספק אחד, והוגדרו בהכרזה כ״תיקיות מאורגנות של הוראות, סקריפטים ומשאבים ש-agents יכולים לגלות ולטעון דינמית כדי לבצע טוב יותר משימות ספציפיות״, עם שלוש הרמות המתוארות באנלוגיה שכדאי לשמור: ״כמו מדריך מאורגן היטב שמתחיל בתוכן עניינים, ממשיך לפרקים ספציפיים, ולבסוף לנספח מפורט״.4
ב-18 בדצמבר 2025 אותו עמוד עודכן כדי להכריז על הפורמט כסטנדרט פתוח, עם מפרט משלו ב-agentskills.io, ממשל פתוח לתרומות, ו-validator ייחוס.3 נכון לקריאה ב-7 בספטמבר 2026, חלון הראווה של לקוחות הסטנדרט מונה ארבעים ושישה מוצרים — עורכים, טרמינלים, פלטפורמות ענן וסביבות ריצה מובייל, כולל agents לקידוד של Anthropic, OpenAI, Google ו-Mistral — וכל אחד מקשר לתיעוד ההתקנה שלו.1
ההתכנסות עם MCP נעשית בגלוי, עם מספרים שאפשר לבדוק:
| מה זה | נפתח | מצב ב-7 בספטמבר 2026 | |
|---|---|---|---|
| SEP-2076 | Agent Skills as a First-Class MCP Primitive: מתודות skills/list ו-skills/get חדשות, יכולת skills, התראת list_changed | 13 בינואר 2026 | נסגר, 24 בפברואר 2026 |
| Skills Over MCP working group | מגדירה איך skills ״מתגלים, מופצים ונצרכים דרך MCP״; נפגשת מדי שבוע; שבעה-עשר חברים רשומים, שניים מהם מובילים | קבוצת עניין 1 בפברואר 2026; working group 16 באפריל 2026 | פעילה |
| SEP-2640 | Skills Extension, מסלול Extensions: מוסכמת resource skill://, מזהה הרחבה io.modelcontextprotocol/skills, גילוי דרך skills/list ותוכן דרך resources/read | 23 באפריל 2026 | בבדיקה |
החלק המעניין הוא הסגירה, לא ההצעות. SEP-2076 ביקש פרימיטיב רביעי לצד כלים, משאבים ו-prompts. ה-working group שנוצרה ממנו החליטה שהתשובה היא לא: skills נוסעים על פרימיטיב המשאבים שכבר קיים, כהרחבה opt-in.5 פרק 26 מדד את אותו אינסטינקט ביומן השינויים של הפרוטוקול עצמו, שבו sampling, roots ו-logging הוצאו משימוש במקום להישמר. גוף תקינה שמסיר הצעה שהוא עצמו חיבר מתנהג היטב, והסיבה לספר את הסיפור הזה עם המספרים מול העיניים היא שהסיכומים שתקראו במקומות אחרים עדיין מתארים skills כ-MCP primitive.
לאן זה ממשיך
קישור למקטע: לאן זה ממשיךעכשיו אתם יכולים לכתוב SKILL.md, לפצל אותו לשלוש רמות שמחזירות את עלותן, לקרוא את ה-frontmatter של skill של מישהו אחר ולדעת אילו שדות לא ישרדו העלאה למקום אחר, ולענות על השאלה שכל הפרק נבנה סביבה — system prompt, skill, כלי או server — עם סיבה ולא עם הרגל.
מה שאתם לא יכולים לעשות הוא לדעת אם שלכם עובד.
כל טענה בפרק הזה שהייתה חשובה הייתה מדידה, והחשובה ביותר הייתה דיוק: 18 מתוך 24 מול 10 מתוך 24, עם מרווח על כל אחד ומבחן מזווג ביניהם, כי שתי צבירות שחופפות לא מכריעות כלום. הכלי הזה הושאל. תיאור של skill הוא מפתח ניתוב, הגוף שלו הוא פרוצדורה שהמודל עשוי לבצע או לא, ושתי התכונות האלה הן דברים שאפשר לגלות רק על ידי הרצת הדבר פעמים רבות וציון מה שחזר — כלומר golden set, grader שכתבתם לפני הריצה, והמדד ששואל אם זה עבד בכל פעם ולא לפחות פעם אחת.
פרק 29 הוא זה, והוא נפתח במספר שהשיטה של הפרק הזה תלויה בו: agent שמצליח שבע פעמים מתוך עשר נראה כמו 70%, וה-pass^10 שלו — הסיכוי שהוא יצליח בכל העשר — הוא אפס. הוא גם מודד שלושה graders על אותם מאתיים תמלילים ומקבל 0%, 13% ו-26% בלי ליצור מחדש token אחד. לפני שתבטחו במשפט שזה עתה כתבתם לתוך description, אתם צריכים את הכלי שיכול לומר לכם שהוא גרוע יותר מזה שהחלפתם.
מקורות ושיטה
קישור למקטע: מקורות ושיטהכל ספירת token בפרק הזה הופקה מקומית עם tiktoken 0.14.0 ו-encoding o200k_base, ב-7 בספטמבר 2026: על חמשת ה-skills של צד שלישי שמפורטים בתחילת הפרק הזה, ועל skill release-notes שנכתב לפרק הזה, שהטקסט המלא שלו משוחזר בחלקו למעלה. רמה 1 נמדדת כשורה היחידה - name: description ש-host מרנדר לתוך ה-system prompt; רמה 2 היא גוף ה-SKILL.md אחרי ה-frontmatter; רמה 3 היא כל קובץ אחר בתיקייה. העלויות משתמשות בתעריפים הנמדדים של פרק 16 עבור gpt-5.6-terra, $2.00 למיליון input tokens ו-$0.20 למיליון input tokens ב-cache, מיושמים על הספירות האלה — זו אריתמטיקה על token שנמדדו, לא תצפיות בחשבון חי. לא בוצעה קריאת API בתשלום כדי לכתוב את הפרק הזה.
ניסוי ההפעלה הריץ Qwen/Qwen2.5-0.5B-Instruct ב-half precision על GPU צרכני אחד, greedy decoding, 24 בקשות על פני שישה skills, פעמיים — פעם עם תיאורים שמציינים מה ה-skill עושה ומתי הוא חל, ופעם עם תיאורים שקוצצו לנושא חשוף בסגנון ה״דוגמה הגרועה״ של המפרט עצמו. המרווחים הם Wilson ב-95%; ההשוואה המזווגת היא exact sign test דו-צדדי על עשרת המקרים הדיסקורדנטיים; מרווח Wilson הוא של פרק 4 וה-exact paired sign test הוא של פרק 15, שניהם בשימוש חוזר ללא שינוי. קראו את הגדלים כתכונה של מודל קטן מאוד ואת השיטה כניתנת להעברה.
חמשת ה-skills שנמדדו כאן הם חבילות צד שלישי, לא נכתבו לפרק הזה: 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 שמופיע בכל עץ תיעוד שנערך לעיתים קרובות יותר משהוא נספר.
הפניות
קישור למקטע: הפניות-
Agent Skills Specification ו-Overview,
agentskills.io/specificationו-agentskills.io, נקראו ב-7 בספטמבר 2026. מקור פריסת התיקיות; טבלת ה-frontmatter ששוחזרה למעלה עם כל מגבלה (name1–64 תווים והתאמה לתיקייה,description1–1024 תווים,compatibilityעד 500,allowed-toolsמסומן כניסיוני); דוגמאות ה-descriptionהטובה והגרועה; תיאור החשיפה ההדרגתית בשלושה שלבים עם תקציב ה-token שלו (מטא-דאטה בערך 100 token, הוראות פחות מ-5,000 מומלץ, משאבים לפי הצורך) והעצה לשמור אתSKILL.mdמתחת ל-500 שורות; ההערה ש״ה-agent יטען את כל הקובץ הזה ברגע שהחליט להפעיל skill״; מוסכמותscripts/, references/ו-assets/; הפקודהskills-ref validate; ההצהרה שהפורמט ״פותח במקור על ידי Anthropic, שוחרר כסטנדרט פתוח, ואומץ על ידי מספר הולך וגדל של מוצרי agent״; וחלון הראווה של הלקוחות, שמנה ארבעים ושישה מוצרים ביום הקריאה. ↩ ↩2 ↩3 ↩4 -
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— של תיאור הזרקת ה-context הדינמית עם!`command`שרץ לפני שליחת הגוף, של הכלל שלפיו הרשאתallowed-toolsמתנקה בהודעה הבאה, ושל הערת התאימות שלפיה מחוץ ל-Claude Code מתקבלים רק ששת השדות המוגדרים וכל שדה אחר גורם לשגיאה קשיחה בהעלאה או באריזה. ↩ ↩2 ↩3 -
סקירת Agent Skills,
platform.claude.com/docs/en/agents-and-tools/agent-skills/overview, נקראה ב-7 בספטמבר 2026. מקור טבלת הרמות עם ארבע העמודות שלה (רמה 1 מטא-דאטה, תמיד, בערך 100 token לכל skill; רמה 2 הוראות, כשהופעל, פחות מ-5k token; רמה 3+ משאבים, לפי הצורך, כלום עד שניגשים); המשפט שצוטט במלואו על כך שתוכן מצורף לא נושא קנס context; המשפט ״עד ש-Skill מופעל, רק השם והתיאור שלו תופסים context״; ההצהרה שקוד של סקריפט לעולם לא נכנס ל-context window ורק הפלט שלו כן; וסעיף האבטחה, שאומר להשתמש ב-skills רק ממקורות מהימנים ומזהיר ש-skill זדוני ״יכול להורות ל-Claude להפעיל כלים או להריץ קוד בדרכים שלא תואמות את המטרה המוצהרת של ה-Skill״ — הנושא של פרק 30, שמגיע דרך מסמך ולא דרך תיאור כלי. ↩ ↩2 ↩3 -
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. מקור ההגדרה שצוטטה למעלה, אנלוגיית תוכן העניינים/פרקים/נספח, שלוש הרמות כפי שתוארו במקור, והמסגור שלפיו agents צריכים ״דרכים קומפוזביליות, מדרגיות וניידות יותר״ לקבל מומחיות תחומית. הכרזת המוצר המלווה ב-claude.com/blog/skillsנושאת את תאריך הפרסום 16 באוקטובר 2025 ואת העדכון מ-18 בדצמבר 2025 שהציג ניהול ברמת ארגון ואת הסטנדרט הפתוח. ↩ -
Skills Over MCP Charter,
modelcontextprotocol.io/community/working-groups/skills-over-mcp, נקרא ב-7 בספטמבר 2026. מקור הצהרת המשימה שצוטטה למעלה, תאריכי יומן השינויים (קבוצת עניין הוקמה ב-1 בפברואר 2026, charter ראשוני ב-14 באפריל 2026, הומרה ל-working group ב-16 באפריל 2026, SEP-2640 קושר ב-25 באפריל 2026), ההובלה ושבעה-עשר החברים הרשומים, קצב הפגישות השבועי, וקריטריון ההצלחה שמכנה את טיוטת Skills Extension ״הרחבה פורמלית המשתמשת בפרימיטיבים קיימים של Resources״. 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 skillsוהתראתskills/list_changed, והגדיר skill כ״חבילה בשם של הוראות ועוד הפניות לכלים, prompts ומשאבים שביחד מלמדים agent כיצד לבצע workflow תחומי ספציפי״. SEP-2640, Skills Extension, .../pull/2640, נפתח ב-23 באפריל 2026 במסלול Extensions ונושא את מוסכמת resource skill://ואת מזהה ההרחבהio.modelcontextprotocol/skills. פרק 26 מונה את אותה working group בין ההרחבות האופציונליות של הפרוטוקול. ↩