פרק 4
עבודה עם Agent: הסוכן האוטונומי של קרסור
Agent הוא עוזר הפיתוח של קרסור שמסוגל לבצע משימות תכנות מורכבות באופן עצמאי, להריץ פקודות בטרמינל ולערוך קוד. הגישה אליו מתבצעת בחלונית הצד באמצעות קיצור המקשים Cmd+I.
עבור היקפי עבודה גדולים יותר, כגון פיתוח תכונה שלמה או ביצוע מיגרציה, ניתן ליצור פרויקט (Project): סוכן מתאם מתכנן את העבודה ומאציל אותה לסוכנים אחרים.
#כיצד Agent עובד
סוכן בנוי משלושה רכיבים:
- הנחיות (
Instructions): ה-system prompt והחוקים (rules) שמנחים את התנהגות הסוכן. - כלים (
Tools): עריכת קבצים, חיפוש בקוד, הרצה בטרמינל ועוד. - מודל (
Model): מודל הסוכן שנבחר עבור המשימה.
קרסור מתזמר את הרכיבים הללו עבור כל מודל נתמך, ומבצע התאמה ייעודית של ההנחיות והכלים עבור כל מודל מוביל. כאשר יוצאים מודלים חדשים, קרסור מטפל באופטימיזציות הייעודיות למודל כדי לאפשר התמקדות מלאה בפיתוח.
#כלי העבודה של הסוכן (Tools)
הכלים הם אבני הבניין של הסוכן. הם משמשים לחיפוש בקוד וברשת לאיתור מידע רלוונטי, עריכת קבצים, הרצת פקודות בטרמינל ועוד.
אין מגבלה על מספר קריאות הכלים שסוכן יכול לבצע במהלך משימה.
#חיפוש קבצים ותיקיות (Search files and folders)
חיפוש קבצים לפי שם, קריאת מבנה תיקיות ואיתור מילות מפתח או תבניות מדויקות בתוך קבצים.
#רשת (Web)
יצירת שאילתות חיפוש וביצוע חיפושים ברשת.
#שליפת חוקים (Fetch Rules)
שליפת חוקים ספציפיים על בסיס סוג ותיאור.
#קריאת קבצים (Read files)
קריאה חכמה של תוכן קבצים. הכלי תומך גם בקובצי תמונה מסוג .png, .jpg, .gif, .webp ו-.svg, ומצרף אותם להקשר השיחה לניתוח על ידי מודלים בעלי יכולות ראייה.
#עריכת קבצים (Edit files)
הצעת עריכות לקבצים והחלתן באופן אוטומטי.
#הרצת פקודות מעטפת (Run shell commands)
הרצת פקודות בטרמינל ומעקב אחר הפלט. כברירת מחדל, קרסור משתמש בפרופיל הטרמינל הראשון שזמין.
כדי להגדיר את פרופיל הטרמינל המועדף:
- פתחו את פלטת הפקודות (
Cmd/Ctrl+Shift+P). - חפשו "Terminal: Select Default Profile".
- בחרו את הפרופיל הרצוי.
#דפדפן (Browser)
שליטה בדפדפן לצורך צילום מסך, בדיקת אפליקציות ואימות ויזואלי של שינויים. הסוכן יכול לנווט בין עמודים, לבצע אינטראקציה עם רכיבים וללכוד את המצב הנוכחי לניתוח.
#יצירת תמונות (Image generation)
יצירת תמונות מתוך תיאור טקסטואלי או תמונות ייחוס. שימושי ליצירת סקיצות ממשק, נכסים למוצר והמחשת דיאגרמות ארכיטקטורה. התמונות נשמרות כברירת מחדל בתיקיית assets/ של הפרויקט ומוצגות ישירות בצ'אט.
#שאלת שאלות (Ask questions)
הצגת שאלות הבהרה במהלך ביצוע משימה. בזמן שהסוכן ממתין לתשובה, הוא ממשיך לקרוא קבצים, לבצע עריכות או להריץ פקודות. התשובה משתלבת מיד עם הגעתה.
#סיכום כלי העבודה
| כלי | ייעוד מרכזי | התנהגות ותכונות עיקריות |
|---|---|---|
Search files and folders | איתור קוד וקבצים | חיפוש שמות, קריאת היררכיית תיקיות ואיתור מחרוזות |
Web | מידע חיצוני | יצירת שאילתות וחיפוש באינטרנט |
Fetch Rules | טעינת כללים | שליפת חוקי פרויקט לפי סוג ותיאור |
Read files | קריאת תוכן | תמיכה בקבצי טקסט ובתמונות עבור מודלי ראייה |
Edit files | שינוי קוד | הצעת שינויים והחלתם על הקבצים |
Run shell commands | טרמינל | הרצת פקודות עם מעקב פלט בפרופיל ברירת המחדל |
Browser | בדיקות ויזואליות | ניווט, אינטראקציה עם אלמנטים ולכידת מצב מסך |
Image generation | יצירת נכסים | שמירה בתיקיית assets/ והצגה בתוך השיחה |
Ask questions | שאלות הבהרה | עבודה רציפה במקביל להמתנה לתשובת המשתמש |
#נקודות שחזור (Checkpoints)
נקודות שחזור שומרות צילומי מצב של בסיס הקוד במהלך סשן עבודה עם הסוכן. הסוכן יוצר אותן באופן אוטומטי לפני ביצוע שינויים משמעותיים, ולוכד את מצב כל הקבצים ששונו.
אם הסוכן פנה לכיוון שגוי, לוחצים על נקודת שחזור בציר הזמן של השיחה כדי לצפות בתצוגה מקדימה של הקבצים באותו רגע, ולאחר מכן מבצעים שחזור שמחזיר את כל הקבצים לאותו מצב. ניתן לבצע שחזור גם מכפתור Restore Checkpoint בבקשות קודמות, או מכפתור ה-+ בעת ריחוף מעל הודעה. שחזור של נקודת שחזור מחזיר קבצים בלבד, ואינו מסיר הודעות מהשיחה.
נקודות שחזור מועילות עבור עבודה מחקרית, שכתוב קוד מורכב ופיתוח איטרטיבי שבו נדרשות נקודות חזרה בטוחות.
נקודות השחזור נשמרות מקומית ונפרדות מ-Git. השתמשו בהן רק לביטול שינויים של הסוכן, והשתמשו ב-Git לבקרת גרסאות קבועה.
| מאפיין | נקודות שחזור (Checkpoints) | מערכת Git |
|---|---|---|
| שימוש ייעודי | ביטול שינויים של הסוכן בלבד | בקרת גרסאות קבועה לפרויקט |
| מיקום אחסון | נשמרות מקומית ונפרדות מ-Git | מאגר גרסאות מקומי ומרוחק |
| השפעה על הצ'אט | שחזור מחזיר קבצים בלבד ואינו מסיר הודעות מהשיחה | אינו קשור להיסטוריית השיחה |
#הודעות בתור והיגוי חי (Queued messages)
בזמן שהסוכן עובד, עומדות לרשותכם שתי דרכים לתקשר איתו: הוספת הודעה לתור שממתינה לסיום המשימה הנוכחית, או שליחת הודעת המשך שמנווטת את הסבב הפעיל בקריאת הכלי הבאה של הסוכן.
#שימוש בתור (Using the queue)
- בזמן ש-
Agentעובד, הקלידו את ההוראה הבאה שלכם. - לחצו על
Enterכדי להוסיף אותה לתור. - ההודעות מופיעות לפי הסדר מתחת למשימה הפעילה.
- גררו כדי לשנות את סדר ההודעות בתור לפי הצורך.
- הסוכן מעבד אותן ברצף לאחר הסיום.
#קיצורי מקשים
בזמן ש-Agent עובד:
- לחיצה על
Enter: מוסיפה את ההודעה לתור (ממתינה עד שהסוכן יסיים את המשימה הנוכחית). - לחיצה על
Cmd+Enter: שולחת את ההודעה מיד ועוקפת את התור.
#שליחה מיידית (Immediate messaging)
כאשר משתמשים ב-Cmd+Enter כדי לשלוח מיד, ההודעה מוצמדת להודעת המשתמש האחרונה בצ'אט ומעובדת באופן מיידי ללא המתנה בתור:
- ההודעה מוצמדת לתוצאות הכלים ונשלחת מיד.
- נוצרת תגובתיות מהירה לצורך עדכונים דחופים.
- מתאים למצבים שבהם צריך לקטוע את עבודת הסוכן או לכוון אותה מחדש.
#היגוי סוכן פועל (Steer a running agent)
ניתן לשלוח הודעת המשך כדי לכוון את הסוכן בזמן עבודתו, מבלי לקטוע אותו. מקלידים הודעת המשך ולוחצים על Send now, או לוחצים פעמיים על Enter. ההודעה נמסרת בקריאת הכלי הבאה של הסוכן במקום לעצור את הפעולה באמצע, מה ששומר על העבודה שכבר נעשתה ומחזיק את הסוכן ממוקד במשימה.
אפשרות זו זמינה באתר cursor.com/agents ונכנסת בהדרגה לשימוש ב-Agents Window. לחיצה על Tab מוסיפה את ההודעה לתור לסיום הסבב במקום לשלוח אותה מיד.
בממשק שורת הפקודה (CLI):
- לחיצה על
Enterבזמן שהסוכן עובד מכוונת את הריצה הפעילה בנקודת עצירה בטוחה. - לחיצה נוספת על
Enterקוטעת את הסבב.
#טבלת דרכי תקשורת עם סוכן פעיל
| פעולה | קיצור מקשים או כפתור | התנהגות המערכת | מתי להשתמש |
|---|---|---|---|
| הוספה לתור | Enter (או Tab באתר וב-Agents Window) | המתנה לסיום המשימה הפעילה וביצוע לפי הסדר | הנחיות המשך שאינן דורשות התערבות מיידית |
| שליחה מיידית | Cmd+Enter | הצמדה להודעה האחרונה ועיבוד מיידי ללא תור | צורך בקטיעה דחופה או בשינוי כיוון מוחלט |
| היגוי חי | Send now או לחיצה כפולה על Enter | מסירה בקריאת הכלי הבאה בלי לעצור פעולה באמצע | תיקון כיוון קל תוך שמירה על רצף העבודה |
| היגוי ב-CLI | Enter ראשון להיגוי, Enter שני לקטיעה | עצירה בגבול בטוח או עצירה מוחלטת | עבודה דרך מסוף ה-CLI |
#שיחות צד (Side chats)
פתחו שיחת צד (side chat) כדי לשאול שאלה או לחקור נושא צדדי בלי לקטוע את השיחה הראשית. הקלידו /side או /btw בשדה הקלט של הצ'אט, עם השאלה שלכם לאחר מכן לפי הצורך, או השתמשו בכפתור הפלוס בראש חלונית הצ'אט.
שיחת צד היא שיחת סוכן קבועה. היא משתמשת בשרשור האב כהקשר ייחוס מוסתר ומחזיקה תמליל נפרד משלה. אזכור של שיחת הצד באמצעות @ בשרשור הראשי מחזיר את ההקשר הזה בחזרה.
#הגדרת יעדים באמצעות goal/
הסוכן מתייחס לכל הודעה רגילה כאל משימה חדשה. שימוש בפקודת /goal מאפשר להגדיר יעד ארוך טווח שעליו לפעול למענו עד להשלמתו המלאה:
/goal fix all flaky tests and make CI greenהתנהגויות ושילובים של יעדים:
- עצירה ב-
CLI: לחיצה עלCtrl+Cמשהה את פעולת היעד. - שילוב עם מצב מותאם אישית (
Custom Mode): מומלץ כאשר רוצים שהסוכן יפעל לפי נוהל עבודה קבוע. - שילוב עם מיומנות
loop/המובנית: מאפשר ביצוע בדיקות תקופתיות קבועות בזמן שהסוכן חותר לעבר המטרה. - זמינות: פקודת
/goalנכנסת לשימוש בהדרגה. אם אינה מופיעה, נסו לפתוח צ'אט חדש.