דלגו לתוכן

הגדרת מעקות בטיחות

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

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

קביעת החלטה למחלקת פעולה

קטע בשם “קביעת החלטה למחלקת פעולה”
  1. עברו אל הגדרות → סביבת עבודה → הרשאות סוכנים
  2. בחרו טווח עם בקרת הפילוח: סביבת עבודה, סוכן (ואז בחרו את הסוכן), או מרחב (ואז בחרו את המרחב)
  3. בשורה של מחלקת הפעולה, בחרו אפשר, שאל קודם או חסום
  4. כדי להסיר כלל שקבעתם, לחצו על כפתור האיפוס שמופיע בסוף השורה הזו (נקה לערך שבירושה) — ההחלטה חוזרת אל הטווח הרחב יותר

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

כתיבת כלל דורשת את התפקיד admin. קריאת המטריצה לא.

נקודת ביקורת: קבעו את דחיפה למאגר מרוחק לחסום בטווח סביבת העבודה, ואז הריצו את בדיקת מה אם? שלהלן על git push origin main. התוצאה תראה deny עם מקור workspace.

ההכרעה היא ספציפיות תחילה, ואחר כך מידת ההחמרה:

  1. כללי מרחב, אחר כך סוכן, ואחר כך סביבת עבודה. הטווח הראשון שיש בו כלל מתאים מכריע, ושם ההכרעה נעצרת
  2. אם אין כלל מתאים, חלה ערכת המצב — מצב לקריאה בלבד (תכנון, סקירה, תזמור) חוסם אחד עשר מתוך שלושה־עשר המחלקות
  3. אם למצב אין מה לומר, חלה ברירת המחדל המובנית

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

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

מחלקות פעולה וברירות מחדל מובנות

קטע בשם “מחלקות פעולה וברירות מחדל מובנות”
מחלקת פעולה ברירת מחדל מובנית
מחיקת קובץ שאל קודם
כתיבה מחוץ לעץ העבודה אפשר
יצירת קומיט אפשר
דחיפה למאגר מרוחק שאל קודם
פתיחת בקשת משיכה שאל קודם
פרסום סקירה או מיזוג שאל קודם
כתיבה למערכת מעקב חיצונית שאל קודם
גישה לרשת אפשר
קריאת סוד אפשר
התקנת חבילה אפשר
הרצת תהליך אפשר
שינוי מבנה סביבת העבודה אפשר
שליטה במתחם מבודד (תחנה) אפשר

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

בדיקת כלל עם בדיקת מה אם?

קטע בשם “בדיקת כלל עם בדיקת מה אם?”

לפני שינוי כלל, בדקו כיצד המדיניות הנוכחית כבר מכריעה אותו.

  1. באותו דף, גללו אל מה אם?
  2. בחרו פעולה (אחת משלושה־עשר המחלקות)
  3. אפשר למלא פקודה (למשל git push origin main), סוכן, מרחב ומצב
  4. קראו את התוצאה: ההחלטה, הסיבה ומקור:

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

קביעת חוגת האוטונומיה של מרחב

קטע בשם “קביעת חוגת האוטונומיה של מרחב”

החוגה היא לכל סוכן בכל מרחב, והיא משתלבת עם הכללים במקום להחליף אותם.

  1. פתחו את המרחב
  2. פתחו את ניהול משתתפים מכותרת המרחב
  3. תחת אוטונומיה בשורה של הסוכן, בחרו רמה:
רמה השפעה
ברירת מחדל אין הגדרה במרחב — מתנהג כמו פעולה באישור
הצעות בלבד כל כלי שעובר דרך שער נחסם לחלוטין, עם הודעה שאומרת לסוכן להציע את הפעולה במקום
פעולה באישור פעולות מסוכנות נתקלות בשער האישור שנכשל לחסימה
פעולה חופשית מאשר מראש כל דבר שלא הוכרע כ-deny קשיח

החוגה מגיעה רק אל מנגנון ההרצה המובנה. מתאם Claude Code מריץ את הכלים שלו מחוץ לשער הזה.

לדעת לאן מעקות הבטיחות אינם מגיעים

קטע בשם “לדעת לאן מעקות הבטיחות אינם מגיעים”

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

  • מתאם Claude Code מגדר את קריאות הכלים של עצמו רק בחלקן. Claude Code מופעל עם --dangerously-skip-permissions, ולכן קריאות הקריאה, הכתיבה והעריכה שלו לעולם אינן עוברות בשער. פקודות ה-bash שלו מגיעות לשער דרך hook שמסווג את שורת הפקודה, והדחיפות שלו עוברות בשער הדחיפה כמו של כל סוכן. גם משטח כלי ה-MCP שהוא קורא חזרה לתוכו, ופקודת המעטפת ש-Control Center מפעיל כדי להריץ אותו, מגודרים.
  • פועל הפלט של המצב עצמו (submit_plan, propose_orchestration) מוצמד ולעולם אינו ניתן לחסימה — אחרת מצב לא יוכל מבחינה מבנית להפיק את התוצר היחיד שלו.
  • האם ארגז החול מגבה את הכללים האלה תלוי במארח. במקום שבו cc_server מוצא מנוע הוא עוטף את ה-CLI של Claude Code ואת כלי ה-bash של מנגנון ההרצה, כך שלכלל שלא כתבתם יש בכל זאת רצפת מערכת הפעלה מתחתיו. ב-Windows אין כזו, וב-Linux או ב-WSL2 בלי bwrap ו-socat גם אין — שם מעקות הבטיחות יחד עם משטח הכלים של המצב הם כל האכיפה, ולא קו שני שלה. בדקו באיזה מקרה אתם נמצאים עם הגדרת מדיניות ארגז חול.