דלג לתוכן
28/30פרק 28 מתוך 30

Agent Skills ו-SKILL.md: חשיפה הדרגתית, במדידה

חמישה skills אמיתיים עם 128,374 token של הוראות תופסים 253 token של context. קצצו בתיאורים — וה-agent מפסיק למצוא אותם.

בעמוד הזה

קחו פרויקט שמותקנים בו חמישה 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 קבע את הכלל לחצי השני של הקורס הזה — חיבורים, ניסיונות חוזרים וביטול הם TypeScript — והכריז על חמישה חריגים. זה אחד מהם, והסיבה אינה העדפה.

skill הוא קובץ Markdown. לא קובץ שמגדיר תוכנה, לא קובץ שתוכנה מקמפלת: מסמך שהמודל קורא, באותו אופן שבו הוא קורא את ההודעה שהקלדת. לתת לפרק הזה שפת תכנות היה אומר לא להבין את הפורמט, ואי-ההבנה הזאת היא הנפוצה ביותר לגבי skills. כל מה שבהמשך הוא Markdown ו-YAML, ועוד סקריפט shell קטן אחד שקיים בדיוק כדי להראות איפה קוד כן ולא שייך בתוך skill.

החשבון שהוא פותר, והוא החשבון של פרק 16

קישור למקטע: החשבון שהוא פותר, והוא החשבון של פרק 16

הנה הוראה אמיתית: איך חברה אחת כותבת את הערות הגרסה שלה. זו פרוצדורה, לא העדפה — יש לה סדר פעולות, טקסונומיה, קול, תבנית וסקריפט שאוסף את חומר הגלם.

שימו את כולה ב-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 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 לדבר הלא נכון וקניתם הנחה על הסחת דעת.

כנוסחה, עם nn תורות, L1L_1 המטא-דאטה, 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לאמפה חופשית של מפתחות מחרוזת לערכי מחרוזת, עבור הכלים שלכם
allowed-toolsלארשימה מופרדת ברווחים של כלים שאושרו מראש; מסומנת כניסיונית

הנה skill הערות הגרסה, בשלמותו, עם גוף של פחות משלושים שורות:

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.

קראו מה הגוף הזה. הוא לא המדיניות — הוא תוכן עניינים עם סדר פעולות. המדיניות נמצאת בשלושה קבצים שהוא מציין בשמם ולא כולל. והצעד הראשון מעביר עבודה לסקריפט, כי הקוד של סקריפט לעולם לא נכנס ל-context window בכלל: רק הפלט שלו כן.2

למודל הטעינה יש שם ושלושה שלבים. המפרט מציג אותם עם תקציב token צמוד:1

  1. מטא-דאטה, בערך 100 token: name ו-description, נטענים בהפעלה עבור כל skill מותקן.
  2. הוראות, מומלץ פחות מ-5,000 token: גוף ה-SKILL.md, נטען כשה-skill מופעל.
  3. משאבים, לפי הצורך: קבצים מצורפים, נטענים רק כשמשהו דורש אותם.

תיעוד הייחוס מוסיף עמודה רביעית לאותה טבלה — מתי נטען, עלות 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, כשהתיאורים קוצצו לנושא החשוף שלהם.

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 מושלם היה מותקן, עם גוף ודוגמאות וצ׳קליסט, והוא מעולם לא נפתח, שלוש פעמים ברצף, על שלוש השאלות שהוא נכתב בשבילן. רמות 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.

ואז השורה האחרונה בגוף אומרת כך:

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 לבין קריאת אותו תוכן, כולו, במחיר גבוה פי שמונים ושלושה — והוא מציע את הבחירה הזאת במשפט בלי עלות צמודה ובלי תנאי מתי לקחת אותה.

זה לא באג והקובץ לא שגוי; מסמך מקומפל באמת שימושי לאדם, ול-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 promptSkillכליMCP server
מה זהטקסט בכל בקשהתיקייה שהשורש שלה הוא SKILL.mdJSON Schema ועוד endpoint בקוד שלכםתהליך או שירות שמדבר פרוטוקול
מה המודל עושהקורא אותו, תמידקורא אותו, כשהוא מחליט שהתיאור מתאיםקורא לו, וממתין לתוצאה שלכםקורא לו, דרך ה-host, לקוח אחד לכל server
מה זה עולההאורך המלא שלו, בכל תור, לנצחבערך 50 token לתור; הגוף פעם אחת, אם משתמשים בוה-schema שלו, בכל תור; ביצוע כשנקראכל schema ועוד ה-instructions של ה-server, בכל תור
מה זה יכול להבטיחכלום — זו עצהכלום — זו עצה שהמודל עשוי לדלג עליהכל מה שהקוד שלכם אוכף לפני פעולהכל מה שה-server אוכף
מי כותב את זהאתםאתם, עמית או ספקאתםמישהו אחר, עבור hosts רבים
פרק15זה1826 ו-27

שתי השורות המודגשות הן כל ההבחנה. skill נקרא; כלי מופעל. skill הוא פרוזה שמגיעה ל-context window ומתחרה על attention עם כל מה שיש שם; המודל יכול לפעול לפיה, לקרוא אותה לא נכון או להתעלם ממנה, ושום דבר במערכת לא שם לב. כלי הוא קריאה שיוצאת לגמרי מידי המודל: הקוד שלכם מקבל ארגומנטים, מאמת אותם, בודק הרשאות ומחליט. פרק 18 ניסח זאת כך שהמודל מציע והקוד שלכם קובע, וזו בדיוק החלוקה שאין ל-skill.

אז שישה מקרים אמיתיים, מוכרעים:

״ענה בשפת המשתמש. לעולם אל תציין מחיר שלא ניתן לך.״

קישור למקטע: ״ענה בשפת המשתמש. לעולם אל תציין מחיר שלא ניתן לך.״

System prompt. זה חל בכל תור, זו מגבלה ולא פרוצדורה, וזה באורך שני משפטים. דבר שתמיד חל אין לו מה לחשוף בהדרגה, ולשלם על שורת גילוי בכל תור כדי להימנע מתשלום על שני משפטים בכל תור אינו חיסכון.

״איך אנחנו כותבים כאן הערות גרסה.״

קישור למקטע: ״איך אנחנו כותבים כאן הערות גרסה.״

Skill. פרוצדורלי, נדרש אולי בתור אחד מתוך ארבעים, ניתן לפירוק לקול, טקסונומיה ודוגמאות, והוא פרוזה שאדם יערוך. זו הצורה שהפורמט תוכנן בשבילה, והמדידה למעלה היא מה שהוא חוסך.

״מצא הזמנה לפי המזהה שלה במסד הנתונים של המחסן.״

קישור למקטע: ״מצא הזמנה לפי המזהה שלה במסד הנתונים של המחסן.״

כלי. יש מאחוריו פונקציה דטרמיניסטית והמודל לא רשאי לאלתר את השאילתה. כתיבה של זה כ-skill — מסמך שמסביר איך לשאול את המחסן — מוסרת למודל את ה-schema ומקווה. schema ועוד endpoint מוסרים לו תשובה.

״קרא וכתוב issues במערכת המעקב שלנו, מכל מוצר agent שהחברה משתמשת בו.״

קישור למקטע: ״קרא וכתוב issues במערכת המעקב שלנו, מכל מוצר agent שהחברה משתמשת בו.״

MCP server. היכולת אינה שלכם, כמה hosts צריכים אותה, ויש לה סיפור אימות. זו בעיית N×MN \times M שפרק 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-2076Agent Skills as a First-Class MCP Primitive: מתודות skills/list ו-skills/get חדשות, יכולת skills, התראת list_changed13 בינואר 2026נסגר, 24 בפברואר 2026
Skills Over MCP working groupמגדירה איך skills ״מתגלים, מופצים ונצרכים דרך MCP״; נפגשת מדי שבוע; שבעה-עשר חברים רשומים, שניים מהם מוביליםקבוצת עניין 1 בפברואר 2026; working group ‏16 באפריל 2026פעילה
SEP-2640Skills Extension, מסלול Extensions: מוסכמת resource ‏skill://, מזהה הרחבה io.modelcontextprotocol/skills, גילוי דרך skills/list ותוכן דרך resources/read23 באפריל 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 שמופיע בכל עץ תיעוד שנערך לעיתים קרובות יותר משהוא נספר.

  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 שלו (מטא-דאטה בערך 100 token, הוראות פחות מ-5,000 מומלץ, משאבים לפי הצורך) והעצה לשמור את SKILL.md מתחת ל-500 שורות; ההערה ש״ה-agent יטען את כל הקובץ הזה ברגע שהחליט להפעיל skill״; מוסכמות scripts/, ‏references/ ו-assets/; הפקודה skills-ref validate; ההצהרה שהפורמט ״פותח במקור על ידי Anthropic, שוחרר כסטנדרט פתוח, ואומץ על ידי מספר הולך וגדל של מוצרי agent״; וחלון הראווה של הלקוחות, שמנה ארבעים ושישה מוצרים ביום הקריאה. 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 — של תיאור הזרקת ה-context הדינמית עם !`command` שרץ לפני שליחת הגוף, של הכלל שלפיו הרשאת allowed-tools מתנקה בהודעה הבאה, ושל הערת התאימות שלפיה מחוץ ל-Claude Code מתקבלים רק ששת השדות המוגדרים וכל שדה אחר גורם לשגיאה קשיחה בהעלאה או באריזה. 2 3

  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

  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. מקור ההגדרה שצוטטה למעלה, אנלוגיית תוכן העניינים/פרקים/נספח, שלוש הרמות כפי שתוארו במקור, והמסגור שלפיו agents צריכים ״דרכים קומפוזביליות, מדרגיות וניידות יותר״ לקבל מומחיות תחומית. הכרזת המוצר המלווה ב-claude.com/blog/skills נושאת את תאריך הפרסום 16 באוקטובר 2025 ואת העדכון מ-18 בדצמבר 2025 שהציג ניהול ברמת ארגון ואת הסטנדרט הפתוח.

  5. 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 בין ההרחבות האופציונליות של הפרוטוקול.


נוצר על ידי

David Vicente Campos

מייסד NeuraLIA Labs ושותף-מייסד MyRealFood

אני מהנדס מחשבים, בוגר אוניברסיטת לאון. הייתי שותף בהקמת MyRealFood, שם, כסמנכ״ל טכנולוגיות, בניתי את האפליקציה שמיליוני אנשים השתמשו בה כדי לאכול בריא יותר, והקמתי את NeuraLIA Labs, שם אני בונה מוצרי בינה מלאכותית. כאן אני כותב על מה שהייתי צריך להבין לאורך הדרך, כפי שהייתי רוצה שמישהו היה מסביר לי בזמנו.

עוד על המחבר

פורסם על ידי NeuraLIA Labs.

פוסטים חדשים ישירות לתיבת הדואר

חדשות AI, מדריכים ועדכוני מוצר — מייל קצר כשאנחנו מפרסמים משהו ששווה את הזמן שלך.

תוכן הקורס

Abstract software decision engine with branching paths, probability nodes, and glowing gates.
jev10 דקות קריאה

מודל ה-AI Jev נבנה להחלטות, לא לפרוזה

Jev של TypeSafe AI מושך תשומת לב כי הוא מתייחס לאינטליגנציית תוכנה כאל בעיית הסתברות: לבחור את ההסתעפות הנכונה, להצמיד ביטחון, ולהימנע מתשלום ל-LLM כדי שיכתוב טקסט כשהקוד צריך החלטה.

Abstract agent runtime sorting documents, memory blocks and pointer nodes inside a bounded context frame.
context-engineering10 דקות קריאה

הנדסת הקשר לסוכני AI ארוכי־טווח

סוכנים שרצים לאורך זמן לא נכשלים רק כי החלון קטן. הם נכשלים כשקבצים, פלטי כלים והיסטוריה מיושנת דוחקים החוצה את המשימה שהסוכן היה אמור להשלים.

מוכנים לתת ל-LIA לבחור?

בנו עם כל מודלי ה-AI במקום אחד — התחילו בחינם עוד היום.