מודל הסוכן
מהו סוכן?
קטע בשם “מהו סוכן?”סוכן הוא שחקן בעל שם, עם פרסונה, סט מיומנויות ומתאם שעליו הוא רץ. סוכנים הם ישויות ראשיות באותו מובן שבני אדם הן: הם מחברים הודעות, מחזיקים כרטיסים, משאירים סקירות ומופיעים באותו סגל. הם אלה שעושים את העבודה.
כל סוכן שייך לסביבת עבודה אחת בדיוק. זו אינואריאנטה קשיחה — agent.workspaceId אינו null, סביבת העבודה של הסוכן עצמו היא זו שקובעת לאיזה קובץ מסד נתונים הרשומות שלו נוחתות, ויצירת סוכן בלי סביבת עבודה נדחית.
סוכן הוא גם תיקייה. ההגדרה שלו יושבת בנתיב agents/<slug>/AGENTS.md תחת תיקיית הנתונים של סביבת העבודה, והמיומנויות שהוא מחזיק מקושרות בסימלינק אל agents/<slug>/.agents/skills. רשומת מסד הנתונים והקובץ נכתבים יחד. הזריעה אידמפוטנטית: אם רשומת הסוכן כבר קיימת, הקבצים בדיסק וקישורי המיומנויות עדיין נכתבים מחדש. הקורא בייצור הוא יצירת סביבת עבודה, ולא כל הפעלה של השרת.
מה הסוכן נושא עמו
קטע בשם “מה הסוכן נושא עמו”| מאפיין | מה הוא עושה |
|---|---|
name |
מזהה קצר בסגנון slug (architect, qa). גם מה שה-@mentions נפתרים לפיו |
title |
תואר תפקיד בשפה אנושית |
persona |
הוראות אופי והתנהגות בטקסט חופשי, המוזרקות כקטע בהנחיה |
systemPrompt |
הוראות נוספות אופציונליות, המוזרקות כקטע “הוראות הסוכן” — הן אינן מחליפות את שאר ההנחיה המורכבת |
skills |
סט שמות מיומנויות שאינו תלוי ברישיות, המשוקף כקישורי מיומנויות בדיסק |
adapterId |
לאיזה מריץ הסוכן נשלח. ערך null נופל חזרה ללולאה המובנית |
modelId |
איזה מודל בתוך אותו מתאם |
effort |
רמת החשיבה, הלקוחה מאוצר המילים של המודל הנבחר עצמו |
contextSize |
עקיפת חלון ההקשר |
silenceTimeoutMinutes |
עקיפה לפי סוכן (1–240) של מנגנון ניטור השקט |
reportsTo |
המזהה של סוכן האב — שרשרת הדיווח שתרשים הארגון מצייר |
את כל אלה עורכים במסך הגדרות ← סביבת עבודה ← סוכנים. סוכן חדש יוצר סוכן בלי שם, שאותו ממלאים בהמשך.
מיומנויות
קטע בשם “מיומנויות”מיומנויות הן שמות שאינם תלויי רישיות על ישות הסוכן. קורים איתן שני דברים נפרדים:
- השמות מופיעים בהנחיה המורכבת תחת כותרת “מיומנויות”. זה כל מה שהסט של הישות עושה בעצמו — אין ספריית הנחיות פר־מיומנות שנגזרת ממנו.
- התיקייה של כל מיומנות בשם (
skills/<slug>/SKILL.mdבסביבת העבודה) מקושרת אל התיקייה של הסוכן עצמו. במנגנון ההרצה המובנה, ה-frontmatter של המיומנויות המקושרות נטען אוטומטית אל הנחיית המערכת, והסוכן קורא גוף לפי דרישה; הקלדת/skill:<name>בשיחה טוענת את הגוף הזה כדירקטיבה לתור הנוכחי.
מיומנויות שנשלפות מבחוץ עוברות סריקת שרשרת אספקה שנכשלת באופן סגור, בין השליפה לכתיבה — אין תוכן מיומנות שמגיע לדיסק או להנחיה בלי הכרעה. “החוץ” הוא מאגרי GitHub שאתם רושמים בעצמכם כמקורות מיומנויות: אין חנות מסודרת, ולכן המטא־נתונים של המאגר עצמו (התיאור שלו, הכוכבים שלו, שם המיומנות) הם נתוני תצוגה שאינם מהימנים, והכרעת הסריקה היא אות הבטיחות היחיד. התקנה שולפת את התיקייה כולה של המיומנות, מצמידה אותה לקומיט שממנו הגיעה ב-skills-lock.json, ועדכון מאוחר יותר עובר שוב בשער לפני שהוא מחליף משהו. המדריך המעשי נמצא בהתקנה וניהול מיומנויות.
מיומנויות בהיקף מאגר
קטע בשם “מיומנויות בהיקף מאגר”מאגר יכול לספק מיומנויות משלו, בכל אחד מהמקומות המקובלים (.agents/skills/, .claude/skills/, .opencode/skills/). מרחב מבצע checkout לכל מאגר מקושר, זה לצד זה, תחת repos/<name>/, אבל סוכן עובד במאגר אחד בכל רגע — ולכן הוא נושא רק את המיומנויות של אותו מאגר, והן מתחלפות כשהוא עובר.
איזה מאגר פעיל נגזר מהקבצים שהסוכן נוגע בהם: כתיבת קובץ תחת repos/<name>/ הופכת אותו למאגר הפעיל, בעוד קריאה בלבד בין מאגרים אינה עושה זאת, כך שמרדף אחרי סימבול אל שירות אחים לא מחליף את הסט מתחת לידיים של משימה. במרחב עם מאגר אחד התשובה ידועה עוד לפני התור הראשון.
ההגבלה להיקף היא החלטת תקציב הקשר. אינדקס המיומנויות יושב בהנחיה בכל תור, בעוד שהגופים אינם, ולכן הצגת המיומנויות של כל המאגרים בבת אחת עולה טוקנים באופן מתמיד — ומיומנות testing משירות אחד מטעה ממש כשהעבודה נעשית באחר. מאותו נימוק בדיוק אינדקס המיומנויות של הסוכן נושא מאגר אחד, ואילו תיבת הכתיבה אינה מוגבלת כך: כשאתם נוקבים בשם של מיומנות זו פעולה מפורשת אחת, ולכן /skill:<repo>:<name> מגיע לכל מאגר במרחב.
מיומנויות של מאגר נטענות עבור כל מתאם, ולא רק עבור מנגנון ההרצה המובנה. המיומנויות של המאגר הפעיל ממומשות לתוך תיקיית העבודה של הסוכן, שהיא אותו נתיב שנסרק ממילא על ידי Claude Code; אותו אינדקס בדיוק נבנה אל תוך AGENTS.md שמנגנון ההרצה המובנה קורא. המיומנויות של מאגר עוברות את אותה סריקה שנכשלת באופן סגור שמיומנות מותקנת עוברת, לפני שכל זה קורה — מאגר שנשלף כ-checkout הוא תוכן משוכפל, וה-frontmatter שלו מגיע להנחיה.
הרשאות
קטע בשם “הרשאות”סוכן אינו נושא דגלי הרשאה. האם הוא רשאי ליצור קומיט, לדחוף, לפתוח בקשת משיכה, לכתוב למערכת מעקב או לגשת לרשת — את זה מכריעים מעקות הבטיחות של הפעולות: אפשר, שאל קודם או חסום, בטווח של סביבת עבודה, סוכן או מרחב. אותם כללים חלים בלי קשר למתאם שמריץ אותו.
מה ש_נמסר_ להרצה אינו משתנה עם הכללים האלה. הרצה בעץ עבודה של GitHub מקבלת תמיד אסימון GitHub לקריאה בלבד, והדחיפה נשאלת ברגע שהיא קורית: תצורת ה-git של הסוכן מנתבת כל דחיפה ל-GitHub דרך Control Center, שמחיל את הכלל דחיפה למאגר מרוחק לפני שהוא מעביר אותה הלאה.
ראו ארגז חול ואבטחה כדי להבין איך זה עובד, כולל מה נאכף ומה אינו נאכף ברמת מערכת הקבצים.
המתאם קובע מה ניתן לאכוף
קטע בשם “המתאם קובע מה ניתן לאכוף”השדה בעל ההשפעה הרבה ביותר על סוכן הוא המתאם שלו, משום שאופן התעבורה של המתאם קובע כמה מהמדיניות של Control Center אפשר לאכוף בפועל.
| תעבורה | מתאמים | מה Control Center אוכף |
|---|---|---|
| מנגנון הרצה מובנה | Control Center (מובנה) | הכול. משטח הכלים נבנה מהמצב, כך שכלי אסור הוא בלתי נראה ולא רק נדחה; כל קריאה עוברת בשער האישור ובמעקות הבטיחות של הפעולות; חוזה ההשלמה יכול לדחוף בעדינות ואז להכשיל הרצה שמסתיימת בלי התוצר שלה |
| Claude CLI | Claude Code | כלי ה-mcp__* שמוגשים לו, ופקודות ה-Bash שלו, ש-hook שולח למדיניות הפעולות לפני שהן רצות. כלי הקריאה, הכתיבה והעריכה של Claude עצמו חיים בתהליך שלו ורצים בלי שנראים — והוא מופעל עם --dangerously-skip-permissions, משום שאחרת claude -p שאינו אינטראקטיבי היה נתקע לנצח על ההנחיה של עצמו |
באופן קונקרטי, רק מנגנון ההרצה המובנה תומך בסוכני משנה, בהיגוי תוך כדי הרצה, בהשהיה ובהמשך (ולכן גם בהשתלטות) ובאכיפה מבנית של המצב. Claude Code לא מקבל אף אחד מאלה.
סוכן בלי מתאם נופל חזרה אל Control Center (מובנה) — הלולאה שבתוך השרת, כך שאין CLI להתקין — ויומן ההרצות שלו רושם cc-harness. כל סוכן שנזרע נוצר בלי מתאם ובלי מודל, ולכן חמשת הסוכנים של סביבת עבודה חדשה רצים שם, על מודל ברירת המחדל של Anthropic, עד שתגדירו מתאם ומודל לכל סוכן. הבחירה “מתאם ברירת מחדל” בתהליך הכניסה הראשונית היא העדפה בצד הלקוח שהשרת אינו קורא כלל, והיא אינה חלה בדיעבד על סוכנים שכבר נוצרו.
מאין מגיעים הסוכנים
קטע בשם “מאין מגיעים הסוכנים”- נזרעים עם סביבת העבודה. כל סביבת עבודה — לא רק הראשונה — מקבלת CEO וארבעה מומחים (
qa,architect,engineer,librarian) הכפופים לו, שנוצרים באופן אידמפוטנטי ברקע עם יצירת סביבת העבודה. ראו סביבות עבודה ובידוד. - נוספים ידנית במסך הגדרות ← סביבת עבודה ← סוכנים. בקשה מסוכן לגייס עמית אינה יוצרת רשומה; השתמשו במסך הזה.
מצב חי
קטע בשם “מצב חי”לסוכן אין עמודת סטטוס שמורה. המצב החי שלו נגזר מיומני ההרצות האחרונים שלו בכל פעם שקוראים אותו:
| מצב | משמעות |
|---|---|
neverRun |
לא קיים יומן הרצה |
running |
לפחות הרצה אחת מתבצעת כרגע |
failed |
ההרצה האחרונה נכשלה, או שמצב החיות שלה failed או dead |
blocked |
מצב החיות של ההרצה האחרונה הוא blocked, stalled או looping |
idle |
כל השאר — הסוכן כבר רץ בעבר ואין לו דבר באוויר |
שני מצבים נוספים, queued ו-succeeded, קיימים עבור הרצות בודדות בעץ ההרצות של השיחה; הסגל לעולם אינו מפיק אותם, משום שהרצה שהסתיימה בירוק היא עובדה על ההרצה, ולא על הסוכן.
סגל הנוכחות מציג תמונה מקבילה וגסה יותר, שנבנית בצד השרת מאירועי הרצה חיים — חושב, פועל, חסום על אישור, סיים — וזה מה שמציג סוכנים לצד בני אדם. ראו רב־משתמשים.
מושגים קשורים
קטע בשם “מושגים קשורים”- מחזור חיי שליחת סוכן: מה קורה כשסוכן מופעל בפועל
- מצבים: ההגדרה לפי שיחה שמעצבת את משטח הכלים של הסוכן
- רב־משתמשים: סוכנים כישויות ראשיות, נוכחות ומחוון האוטונומיה
- ארגז חול ואבטחה: מה מגביל הרצה כיום
- הגדרת סוכן: רשימת השדות המלאה