סוכן הקוד שלי ביקש אישור על כל צעד קטן
לעוזר ה-AI שלי הייתה בעיה משמעותית. הוא לא סירב לבקש אישור. הוא פשוט ביקש אישור יותר מדי פעמים.
הייתי נותן לו משימה פשוטה כמו קריאת קובץ PDF. העוזר היה מבצע מהלך אחד, מבקש אישור, מריץ את הפקודה, ואז מיד מבקש שוב עבור הצעד הקטן הבא. משימה אחת הפכה למסלול אינסופי של הודעות בקשה.
הודעות בקשת אישור הן הכרחיות. אתם רוצים שעוזר מקומי יעצור לפני שהוא מריץ פקודות, כותב קבצים או פותח אפליקציות. אבל עבודה אמיתית דורשת צעדים רבים. קריאת PDF כוללת בדיקה אם Python מותקן, מציאת ממיר, הרצת הממיר וקריאת הטקסט.
אם כל צעד בודד דורש אישור, אתם מפסיקים להעריך סיכונים. אתם מתחילים ללחוץ על ההפרעות רק כדי להעלים אותן. זה מאמן אתכם להתעלם ממערכת הבטיחות. זה מסוכן יותר מאשר חוסר בטיחות בכלל.
סדר העבודה הישן נראה כך:
- העוזר בוחר כלי
- המדיניות דורשת אישור
- המשתמש מאשר
- הכלי רץ
- העוזר מבקש שוב עבור הכלי הבא
העוזר פספס את כוונת המשתמש. לא אישרתם בדיקה קטנה אחת. אישרתם משימה שלמה.
שיניתי את אופן הפעולה של CliGate. כעת, ברגע שמאשרים את הפעולה הראשונה בצ'אט, המערכת מגדירה דגל (flag). זה מאפשר לצעדים הבאים להמשיך ללא סבבי אישור חדשים. העוזר עדיין מקבל את התוצאות האמיתיות כדי שיוכל להמשיך לעבוד.
הוספתי גם פתח מילוט: /safe. פקודה זו מחזירה את מצב האישור המפורש לפעולה.
תיקנתי גם באג שפה. כשהמערכת המשיכה משימה, היא לפעמים שינתה את שפת ההודעות. אם דיברתם בסינית, העוזר היה עובר לאנגלית בהודעה הבאה. כעת, העוזר בודק את ההודעה האמיתית האחרונה שלכם כדי לבחור את השפה הנכונה.
הפתרון הוא לא לבטל אישורים. הפתרון הוא לזכור מדוע המשתמש נתן אישור.
עבור כלים מקומיים, השתמשו באמון מוגדר משימה (task-scoped trust):
- בקשו אישור לפני חציית גבול משמעותי
- זכרו את האישור עבור המשימה הנוכחית
- ספקו דרך לחזור למצב קפדני (strict mode)
- אל תתנו להודעות מערכת לשנות את כוונת המשתמש
כך אני בונה אישורים ב-CliGate. זהו מישור הבקרה (control plane) המקומי שלי עבור Claude Code, Codex CLI, ו-Gemini CLI.
איך אתם מתמודדים עם עייפות מאישורים (approval fatigue)? אתם מאשרים לפי קריאת כלי, לפי משימה, או לפי סשן?
סוכן הקוד שלי ביקש רשות עבור כל צעד קטן
לאחרונה התחלתי להשתמש בסוכן קוד מבוסס AI, והחוויה הייתה מרתקת, אך גם מתסכלת מאוד בנקודה מסוימת.
בהתחלה, הכל היה נהדר. הוא כתב קוד, תיקן באגים והבין את ההקשר של הפרויקט שלי. אבל אז, משהו השתבש. הסוכן התחיל לבקש ממני אישור עבור כל פעולה קטנה שהוא ניסה לבצע.
"האם אני יכול לקרוא את הקובץ הזה?" "האם אני יכול להריץ את הפקודה הזו?" "האם אני יכול ליצור תיקייה חדשה?"
זה הרגיש כאילו אני עובד עם מתמחה (Junior Developer) שכל כך מפחד לעשות טעות, שהוא לא מעז לגעת בשום דבר בלי לבקש רשות. במקום שהסוכן יחסוך לי זמן, הוא הפך למקור של הפרעות מתמידות. זה נקרא "עייפות מאישורים" (Permission Fatigue).
הבעיה היא שהאיזון בין אוטונומיה לבין בקרה אבד. מצד אחד, אני רוצה לוודא שהסוכן לא מוחק לי את כל הדיסק הקשיח או מריץ פקודות מסוכנות. מצד שני, אם אני צריך לאשר כל ls או כל cat, אני לא באמת משתמש בסוכן – אני פשוט מנהל אותו ידנית.
איך פתרתי את זה?
הבנתי שהבעיה לא הייתה ביכולת של הסוכן, אלא בהגדרות שלו (System Prompt) או במדיניות ה-Tool Use שלו. כדי לפתור זאת, הייתי צריך להגדיר "רמות אמון" או "אזורי בטיחות".
- הגדרת משימות מורשות: במקום לבקש אישור על כל פקודה, הגדרתי שהסוכן יכול לבצע פעולות קריאה (Read) ופעולות בדיקה (Test) באופן אוטונומי לחלוטין.
- אישור מרוכז: במקום אישור לכל פקודה, הסוכן מציע "תוכנית עבודה" (Plan). אני מאשר את התוכנית כולה, ואז הוא מבצע את כל השלבים בבת אחת.
- הגבלת הרשאות (Sandboxing): כדי להרגיש בטוח לתת לו יותר חופש, הרצתי אותו בתוך סביבה מבודדת (Container/Docker). כשאתה יודע שהסוכן לא יכול להזיק למערכת ההפעלה המארחת, קל יותר לסמוך עליו.
הלקח שלמדתי
השימוש בסוכני AI הוא לא רק עניין של "איך לבנות אותם", אלא "איך לנהל אותם". המטרה היא להפוך את האדם מ"צוואר בקבוק" (Bottleneck) ל"מפקד" (Commander). אתה לא רוצה להיות מישהו שמאשר כל תנועת יד, אתה רוצה להיות מישהו שמאשר אסטרטגיה ומפקח על התוצאות.