מדריך קלוד קוד בעברית

תיעוד 54

לשמור על קלוד עובד לקראת מטרה

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

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

השתמשו במטרה לעבודה מהותית עם מצב סיום שאפשר לאמת:

  • העברת מודול ל-API חדש עד שכל אתר קריאה מתקמפל והבדיקות עוברות
  • מימוש מסמך עיצוב עד שכל קריטריוני הקבלה מתקיימים
  • פיצול קובץ גדול למודולים ממוקדים עד שכל אחד מהם מתחת לתקציב גודל
  • עבודה על צבר סוגיות מתויג עד שהתור ריק

#השוואה בין דרכים להשאיר סשן פעיל

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

גישהמתי מתחיל התור הבאמתי נעצר
/goalכשהתור הקודם מסתיים, או, בסשן אינטראקטיבי, כשמגיע הזמן לבדיקת מעקב בזמן סרק או לניסיון חוזר אוטומטיכשמודל מאשר שהתנאי מתקיים או קובע שהוא בלתי אפשרי, או כשתור נכשל בגלל שגיאה שעליכם לתקן, או כשאתם מריצים /goal clear
/loopכשחלף מרווח זמןכשאתם עוצרים אותו, או כשקלוד מחליט שהעבודה הסתיימה
הוק Stopכשהתור הקודם מסתייםכשהסקריפט או הפרומפט שלכם מחליט

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

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

[!TIP]

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

#שימוש ב-/goal

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

#הגדרת מטרה

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

/goal all tests in test/auth pass and the lint step is clean

הגדרת מטרה מתחילה תור מיד, והתנאי עצמו הוא ההנחיה. אין צורך לשלוח פרומפט נפרד. בזמן שהמטרה פעילה, מחוון ◎ /goal active מראה כמה זמן המטרה רצה.

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

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

#כתיבת תנאי יעיל

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

לתנאי שמחזיק לאורך הרבה תורים יש בדרך כלל:

  • מצב סיום אחד שאפשר למדוד: תוצאת בדיקה, קוד יציאה של בנייה, מספר קבצים, תור ריק
  • בדיקה מפורשת: איך קלוד צריך להוכיח זאת, למשל "npm test יוצא עם 0" או "git status נקי"
  • אילוצים שחשובים: כל דבר שאסור שישתנה בדרך לשם, למשל "אף קובץ בדיקה אחר לא משתנה"

התנאי יכול להיות באורך של עד 4,000 תווים.

כדי לתחום כמה זמן מטרה רצה, כללו בתנאי סעיף של תורים או זמן, למשל or stop after 20 turns. קלוד מדווח על התקדמות מול הסעיף הזה בכל תור, והמעריך שופט אותו לפי השיחה.

#בדיקת מצב

הריצו את /goal בלי ארגומנטים כדי לראות את המצב הנוכחי.

/goal

אם יש מטרה פעילה, המצב מציג:

  • את התנאי
  • כמה זמן היא רצה
  • כמה תורים הוערכו
  • את צריכת הטוקנים הנוכחית
  • את הנימוק האחרון של המעריך

מספר התורים והנימוק האחרון מופיעים אחרי שההערכה הראשונה רצה.

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

#ניקוי מטרה

הריצו את /goal clear כדי להסיר מטרה פעילה לפני שהיא נפתרת.

/goal clear

קלוד מדפיס Goal cleared: ואחריו את התנאי לאישור, או No goal set אם שום דבר לא היה פעיל.

stop, off, reset, none ו-cancel מתקבלים ככינויים של clear. הרצת /clear כדי להתחיל שיחה חדשה מסירה גם כל מטרה פעילה.

#חידוש עם מטרה פעילה

כשמחדשים סשן, קלוד קוד משחזר מטרה שעדיין הייתה פעילה כשהסשן הסתיים. קלוד קוד משחזר אותה בכל מסלול חידוש: --continue, --resume עם מזהה סשן, שם, או נתיב קובץ תמליל, ובורר הסשנים. לפני v2.1.239, קלוד קוד שיחזר את המטרה בכל מסלול חוץ מבורר claude --resume.

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

#הרצה לא אינטראקטיבית

/goal עובד במצב לא אינטראקטיבי, באפליקציית שולחן העבודה, ודרך Remote Control. הגדרת מטרה עם -p מריצה את הלולאה עד השלמה בהפעלה אחת:

claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"

עם פלט הטקסט המוגדר כברירת מחדל, התשובה הסופית של קלוד מודפסת כשהלולאה מסתיימת, ולכן מטרה שרצה הרבה תורים יכולה להיראות תקועה. הוסיפו --output-format stream-json --verbose כדי לפלוט כל הודעה בזמן שהלולאה רצה.

קטעו את התהליך עם Ctrl+C כדי לעצור מטרה לא אינטראקטיבית לפני שהיא נפתרת.

#איך ההערכה עובדת

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

  • עדיין לא מתקיים (Not yet met): קלוד ממשיך לעבוד ומתייחס לנימוק כהכוונה לתור הבא.
  • מתקיים (Met): קלוד קוד מנקה את המטרה ורושם רשומת הישג בתמליל.
  • בלתי אפשרי (Impossible): המעריך קבע שהתנאי לעולם לא יכול להתקיים. קלוד קוד מנקה את המטרה ורושם רשומת כישלון בתמליל יחד עם הנימוק. אין צורך לנקות אותה בעצמכם.

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

#כשתור נכשל

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

#שגיאות שעליכם לתקן מנקות את המטרה

אם תור נכשל בשגיאה שלא תיעלם עד שתתקנו אותה, קלוד קוד מנקה את המטרה ומדפיס אזהרה שמציינת את הסיבה. האזהרה מתחילה ב-Goal cleared after an unrecoverable error ומסתיימת ב-Run /goal again to continue. תקנו את הסיבה, ואז הגדירו את המטרה שוב עם /goal <condition>. ארבעה סוגי כשל מנקים את המטרה:

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

#שגיאות אחרות מנסות שוב או משהות את המטרה

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

  • ניסיון חוזר (Retry): אחרי כשל שנוטה להיעלם מעצמו, כמו שרת עמוס או חיבור שנפל, הודעה שמתחילה ב-Goal still active מציגה את ההמתנה לפני הניסיון הבא. אחרי שלושה ניסיונות חוזרים אוטומטיים, המטרה מושהית במקום זאת.
  • השהיה (Pause): אחרי כשל שניסיון חוזר רק היה חוזר עליו, כמו מגבלת קצב של API, מגבלת שימוש ב-claude.ai, או הוק שסיים את התור, הודעה שמתחילה ב-Goal paused מציינת את הסיבה. אם הסשן ממתין להמשיך אוטומטית כשמגבלת שימוש מתאפסת, קלוד ממשיך אז את העבודה לקראת המטרה.

שלחו הודעה בכל רגע כדי להתחיל את התור הבא מיד. כדי לכבות ניסיונות חוזרים אוטומטיים, הגדירו את CLAUDE_CODE_GOAL_CHECKIN_MINUTES ל-0, וזה מכבה גם את בדיקות המעקב.

#עבודה ברקע דוחה את ההערכה

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

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

  • כשתור מסתיים: קלוד קוד מעביר את בדיקת המעקב בסוף התור הבא שמסתיים כשהעבודה עדיין רצה. בסשן לא אינטראקטיבי, כמו סשן שהתחיל עם -p, זו הדרך היחידה שבה קלוד קוד מעביר בדיקות מעקב.
  • כשהסשן בסרק: בסשן אינטראקטיבי, קלוד קוד גם מתחיל תור בעצמו כדי להעביר את בדיקת המעקב, במקום לחכות לפרומפט הבא שלכם. אם העבודה ברקע נעצרה בלי לדווח על תוצאה, קלוד קוד מבקש מקלוד להמשיך לקראת המטרה. קלוד קוד מתחיל לכל היותר שלוש בדיקות מעקב בזמן סרק לכל מטרה בין הפרומפטים שלכם. בבדיקת המעקב השלישית בזמן סרק, קלוד קוד אומר שבדיקות המעקב בזמן סרק מושהות עד שתשלחו פרומפט נוסף. לפני v2.1.246, בדיקות מעקב בזמן סרק לא היו מוגבלות. בדיקות מעקב בזמן סרק דורשות Claude Code מגרסה v2.1.236 ואילך.

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

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

בדיקות מעקב דורשות Claude Code מגרסה v2.1.234 ואילך.

#מודל ההערכה והעלות

כדי להעריך במודל אחר, הגדירו את ANTHROPIC_DEFAULT_HAIKU_MODEL.

[!WARNING]

קלוד קוד קורא את ANTHROPIC_DEFAULT_HAIKU_MODEL בכל מקום שבו הוא משתמש במודל הקטן והמהיר, לא רק להערכת /goal. כשמגדירים אותו, קלוד קוד גם ממפה את הכינוי haiku למודל הזה, ומריץ עליו יצירת כותרת סשן וחלק ממשימות הרקע האחרות.

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

[!NOTE]

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

#דרישות

קלוד קוד הופך את /goal לזמין לפי אותו כלל אמון בסביבת העבודה כמו להוקים בקובצי הגדרות, כי המעריך הוא חלק ממערכת ההוקים. /goal גם אינו זמין כש-disableAllHooks הוא true אחרי שקדימות ההגדרות חלה, או כש-allowManagedHooksOnly מוגדר בהגדרות מנוהלות. בכל אחד מהמקרים, הפקודה אומרת לכם למה, במקום לא לעשות דבר בשקט.

#ראו גם