Microsoft שחררה מסגרת עבודה (framework) יציבה של Agent Skills עבור Python ב-15 ביולי. היא מאפשרת למפתחים להטמיע יכולות רק כאשר סוכן (agent) מונחה LLM זקוק להן בפועל. על ידי החלפת system prompt יחיד ומתנפח בטעינת מיומנויות (skills) לפי דרישה, הגישה הזו מצמצמת את גודל ה-prompt, מקטינה את עלויות ה-token ושומרת על יכולת ההסבר (reasoning) של הסוכן ברורה יותר.
למה ה-prompts מתנפחים ולמה זה חשוב
סוכני LLM מסתמכים על "system prompt" המאגד מדיניות, runbooks וחומרי ייחוס שהמודל צריך לראות בכל סבב. הוספת מספר קטן של מסמכי מדיניות גורמת ל-prompt להתנפח לאלפי tokens. prompts גדולים יותר מעלים את עלויות ה-inference — כל token שהמודל מעבד מחויב — והם מדללים את אות ההוראות (instruction signal), מה שהופך את הפלט של הסוכן למעורפל יותר. במיון אירועים (incident triage) או בבדיקת תאימות (compliance checking), prompt מעורפל יכול להפוך עוזר מועיל למקור של מידע מוטעה.
תבנית ה-Agent Skills: חשיפה הדרגתית (progressive disclosure)
מסגרת העבודה החדשה מחליפה את ה-prompt המוניוליטי (monolithic) בתהליך עבודה בן ארבעה שלבים:
- פרסום המיומנות (Advertise the skill) – רשומה קלה של מטא-נתונים המציינת לשכבת הניתוב (routing layer) את שם המיומנות.
- טעינת הוראות (Load instructions) – תיאור תמציתי שהסוכן קורא כדי להחליט אם המיומנות מתאימה לבקשה.
- קריאת משאבים (Read resources) – קבצי מדיניות או ייחוס אופציונליים שנשלפים רק לאחר שהסוכן בוחר במיומנות.
- הרצת סקריפטים (Run scripts) – הרצת קוד המבצעת את הפעולה, תחת אישור מפורש.
רק הקובץ הקצר SKILL.md נמצא ב-core prompt. כל המסמכים והסקריפטים הגדולים יותר נמצאים בחבילת מיומנות מבוססת קבצים שה-runtime מושך לפי דרישה. מבנה התיקיות נשאר פשוט:
SKILL.md– תיאור קצר הניתן לקריאה על ידי בני אדם.references/– קבצי מדיניות או הנחיות.scripts/– קוד בר-הרצה.
מכיוון שהסוכן לעולם אינו רואה את התוכן המלא של references/ או scripts/ עד שהוא מחליט שהמיומנות היא המתאימה ביותר, ה-prompt הראשי נשאר רזה ללא קשר למספר המיומנויות שאתם רושמים.
מנגנוני הגנה המובנים במסגרת העבודה
מסגרת העבודה מניחה שטעינת מיומנות עלולה להיות מסוכנת ואוכפת כללים שמפתחים חייבים לפעול לפיהם:
- פרסום שם המיומנות – אוטומטי, משמש לניתוב בלבד.
- טעינת הוראות – אוטומטית עבור רשימות שנבחרו בקפידה (curated); הוראות שלא נסקרו עלולות לשנות התנהגות שלא לצורך.
- קריאת מדיניות – אוטומטית כאשר הנתונים אינם רגישים; שמרו חומר רגיש מאחורי בקרות גישה נוספות.
- הרצת סקריפטים – תמיד דורשת אישור מפורש. סקריפט מעביר את הסוכן ממצב של "הצעה" למצב של "פעולה", ולכן חייב להתבצע בדיקה אנושית או בדיקת מדיניות.
- קריאות למערכות חיצוניות – חייבות לעבור דרך כלים נפרדים עם הרשאות מוגבלות; המיומנות עצמה אינה מהווה מנגנון הרשאה (authorization).
כללים אלו דוחפים מפתחים להתחיל בתהליכי עבודה של "קריאה בלבד" — מיון אירועים, חיפוש מדיניות, שאילתות סטטוס — לפני ניסיון לבצע פעולות מונחות כתיבה (write-oriented) כגון עדכוני מסד נתונים או פריסת קוד.
היגיינה תפעולית: רישום (logging) וניהול גרסאות
כאשר מיומנות פועלת, מסגרת העבודה מעודדת (וחלק מהפריסות מחייבות) רישום של:
- הבקשה המקורית ומזהה (ID) המיומנות שנבחרה.
- גרסת חבילת המיומנות ששימשה.
- האם הסוכן טען רק את התיאור או שגם משך קובץ משאב.
- החלטת האישור להרצת הסקריפט.
- כל ארגומנטים הכלים שסופקו והתוצאות שהוחזרו.
אם הסוכן בוחר במיומנות הלא נכונה, הפכו את הבחירה השגויה למקרה בדיקה (test case). זה יוצר בדיקת רגרסיה לפני שהמיומנות מגיעה לסביבת הייצור (production).
התייחסו לכל מיומנות כאל תלות בעלת גרסה (versioned dependency) עם גבול ברור, ולא כתיקייה רופפת של prompts. ניהול גרסאות מאפשר לכם לבצע rollback לסקריפט פגום מבלי להפריע לשאר בסיס הידע של הסוכן.
התחלה: רשימת תיוג פרגמטית
- בחרו תהליך עבודה של קריאה בלבד – למשל, "חיפוש הנחיות האירוע האבטחתי האחרון".
- ארזו הוראות וסקריפטים בנפרד – שמרו על
SKILL.mdקצר; אחסנו קבצי מדיניות כבדים ב-references/. - קבעו קטלוג מסודר – תחזקו רשימה של מיומנויות מאושרות ואכפו אישור חובה לכל סקריפט.
- הגדירו מגבלות sandbox – הגדירו מגבלות CPU, זיכרון ורשת להרצת סקריפטים; רשמו (log) כל הרצה.
- בצעו benchmark מול ה-mega-prompt הישן – השוו שימוש ב-tokens, שיהוי (latency) ושיעורי הצלחה כדי לאשר חיסכון בעלויות.
מה לעקוב בהמשך
הגרסה של Microsoft היא כרגע מימוש Python יציב.
שורה תחתונה
Agent Skills מאפשרים לעוזרים מבוססי LLM להישאר קלילים, תוך שמירה על גישה לספרייה הולכת וגדלה של מדיניות וסקריפטים. באמצעות טעינה מוקדמת של התיאור בלבד ושליפת משאבים כבדים רק בעת הצורך, הפרומפטים נשארים קצרים, עלויות ההסקה (inference) יורדות, ויכולת ההסקה של הסוכן נשארת ממוקדת.
