Cursor: ניהול הקשר ועבודה מול קוד-בייס גדול
הדרך לתוצאות עקביות ב-Cursor (קרסר / קורסור) היא לשלוט בהקשר שהמודל רואה. הזריקו את הקבצים הנכונים עם @-mentions, תנו לאינדקס לעשות את העבודה הגסה, והשתמשו ב-Composer למשימות רב-קבציות. ככל שההקשר ממוקד יותר — הפלט מדויק יותר והעלות בטוקנים נמוכה יותר.
מאת צוות Core-Code · נבדק בפועל על Cursor (גרסת 2026) · עודכן ב-2026-06-03.
מהם @-mentions ומתי להשתמש בכל אחד?
@-mentions הם הדרך הישירה להגיד ל-Cursor בדיוק על מה להסתכל, במקום להסתמך על ניחוש אוטומטי. הם מזריקים תוכן ספציפי להקשר של הבקשה — קובץ, תיקייה, דוקומנטציה או אפילו תוצאות חיפוש. זו הדרך המהירה ביותר לשפר דיוק בקוד-בייס גדול.
@Files— מצמיד קובץ אחד או כמה קבצים מדויקים (למשל הקומפוננטה שעורכים + ה-types שלה).@Folders— מזריק תיקייה שלמה כשצריך תמונה רחבה (למשל@src/features/auth).@Docs— מושך דוקומנטציה של ספרייה שאינדקסתם (Next.js, Stripe וכו') כדי שהמודל יעבוד מול ה-API הנכון.@Code/@Git— קטע קוד ספציפי או diff/commit כהקשר לשינוי.
עיקרון אצבע: ככל שתצמידו הקשר מדויק יותר, כך יקטן הסיכוי שהמודל "ימציא" קוד שלא תואם את הפרויקט. לפי התיעוד הרשמי של Cursor, ה-@-mentions הם המנגנון המומלץ להוספת הקשר ידני לבקשה (מקור: https://docs.cursor.com/context/@-symbols/overview).
עדכן את @Files src/features/cart/CartSummary.tsx כך שיציג מע"מ,
לפי הטיפוסים ב-@Files src/features/cart/types.ts
ובהתאם ל-@Docs Stripe (Tax).
השלימו את הפְּרוֹמְפְּט נכון
Edit the cart total to add VAT. Best way to give Cursor context:
איך עובד אינדוקס הקוד-בייס (codebase indexing)?
אינדוקס הוא תהליך רקע שבו Cursor יוצר embeddings — ייצוג וקטורי — של קבצי הקוד שלכם, ושומר אותם כדי לשלוף קטעים רלוונטיים סמנטית בזמן בקשה. כך המודל "מכיר" את הפרויקט בלי שתעלו אליו כל קובץ ידנית. זהו הבסיס לתשובות מודעות-הקשר.
האינדוקס מתרענן כשהקוד משתנה. בריפו גדול שווה לחכות שהאינדוקס הראשוני יסתיים לפני עבודה כבדה — אחרת השליפה חלקית. כדי לשמור על דיוק ומהירות, החריגו תיקיות לא רלוונטיות בעזרת .cursorignore (התחביר זהה ל-.gitignore):
node_modules/
.next/
dist/
build/
coverage/
*.lock
*.png
*.pdf
מדוע זה משנה: כשהאינדקס נקי, השליפה הסמנטית מחזירה את הקבצים הנכונים יותר, וגם זמן האינדוקס יורד. כפי שמדגיש אנדריי קרפתי (Andrej Karpathy), חוקר AI ואחד מ-founding members של OpenAI: "The hottest new programming language is English" — אבל ה"שפה" הזו עובדת רק כשהמודל מקבל את ההקשר הנכון לעבוד מולו (מקור: https://x.com/karpathy/status/1617979122625712128).
מה זה Composer ו-agent mode, ולמה הם משנים משחק?
Composer הוא מצב העריכה הרב-קבצי של Cursor: במקום להציע קטע בצ'אט, הוא מתכנן שינוי, נוגע במספר קבצים יחד, מריץ פקודות ומאמת תוצאה. במצב agent הוא פועל אוטונומית יותר — מחפש קבצים בעצמו, עורך, ומריץ טסטים עד שהמשימה מסתיימת. זה המנוע לעבודה מורכבת.
ההבדל המעשי מול צ'אט רגיל:
- צ'אט — שאלה אחת, תשובה אחת, שינוי ממוקד. מהיר וחסכוני בטוקנים.
- Composer / agent — משימה שלמה ("הוסף עמוד הגדרות עם טופס ו-validation"), פריסה על כמה קבצים, הרצת פקודות. חזק יותר, אך יקר יותר בטוקנים ודורש פיקוח.
טיפ מנוסה: גם ב-agent mode הצמידו @-mentions לנקודות הכניסה הנכונות. סקר Stack Overflow Developer Survey 2024 מצא ש-76% מהמפתחים משתמשים או מתכננים להשתמש בכלי AI בתהליך הפיתוח — כלומר שליטה בכלים כאלה כבר אינה אופציונלית למתכנת מקצועי (מקור: https://survey.stackoverflow.co/2024/ai).
איך עובדים נכון בריפו גדול (monorepo / עשרות אלפי שורות)?
בריפו גדול הבעיה אינה יכולת המודל אלא רעש בהקשר: יותר מדי קוד לא רלוונטי דוחק את החשוב. הפתרון הוא לצמצם את שדה הראייה — להצביע ידנית על הקבצים הנכונים, לפרק משימות, ולתחזק .cursorignore הדוק. דיוק נובע מהקשר ממוקד, לא מהקשר גדול.
עקרונות עבודה שמחזיקים בקנה מידה:
- התחילו מהקובץ, לא מהשאלה — פתחו את הקובץ הרלוונטי או הצמידו אותו ב-
@Filesלפני שאתם מנסחים את הבקשה. - משימה אחת בכל פעם — בקשות קטנות וברורות מנצחות בקשת-ענק אחת; קל יותר לאמת ולתקן.
- הצמידו "אמת" אחת — קובץ schema/types או
.cursorrulesשמגדיר קונבנציות, כדי שהפלט יישאר עקבי (ראו עקרון DRY — אל תכפילו ידע). - נקו את ההקשר — פתחו צ'אט/Composer חדש בין משימות לא קשורות כדי לא לגרור הקשר ישן.
כלל מנוסה: אם המודל מתחיל "להמציא" קבצים או פונקציות שלא קיימות, זה כמעט תמיד סימן שההקשר חסר או רועש — לא שהמודל "טיפש". הצמדה ידנית של הקבצים הנכונים פותרת את רוב המקרים.
איך חוסכים טוקנים בלי לפגוע בדיוק?
חיסכון בטוקנים מתחיל בצמצום הקשר מיותר: הצמידו רק את הקבצים שצריך, העדיפו @Files ספציפי על @Folders שלם, וסגרו צ'אטים ארוכים שצברו היסטוריה. הקשר מהודק חוסך עלות וגם משפר דיוק — כי המודל לא "מתפזר" על קוד לא רלוונטי.
טכניקות מעשיות:
- ספציפיות לפני רוחב —
@Filesשל 2-3 קבצים עדיף על@Foldersשל 200 קבצים. - פיצול שיחות — היסטוריית צ'אט ארוכה נספרת בכל בקשה; פתחו שיחה חדשה למשימה חדשה.
.cursorignore— מונע גרירת קבצים ענקיים (lockfiles, נכסים בינריים) להקשר.- בחירת מצב לפי משימה — לשאלה נקודתית השתמשו בצ'אט; שמרו את agent mode למשימות שבאמת דורשות אותו.
לפי המחקר האקדמי על אופטימיזציה למנועים גנרטיביים (Princeton GEO, KDD 2024), הקשר ממוקד ועובדתי מניב פלט מדויק יותר ממודלים — עיקרון שתקף גם לעבודה מול קוד (מקור: https://searchengineland.com/generative-engine-optimization-framework-introduced-research-paper-435855). כלומר: פחות הקשר נכון מנצח יותר הקשר רועש, גם בטוקנים וגם באיכות.
שאלות נפוצות
מצאתם את התשובות המהירות בבלוק ה-FAQ למעלה — אינדוקס וקטורי, ההבדל בין Composer לצ'אט, מתי להפעיל אינדוקס על ריפו ענק, ומדוע נפגע הדיוק בקוד-בייס גדול. אם אתם מתחילים את המסלול, המשיכו אל מסלול Cursor המלא לסדר הנכון של השיעורים.
שאלות נפוצות
איך Cursor יודע על שאר הקבצים בפרויקט?
Cursor (קרסר) בונה אינדקס וקטורי (embeddings) של הקוד-בייס ברקע, ושולף ממנו קטעים רלוונטיים סמנטית לפי השאלה שלכם. בנוסף, אפשר להצביע ידנית בעזרת @-mentions על קבצים, תיקיות או דוקומנטציה מסוימים, כדי להזריק הקשר מדויק לבקשה ולא להסתמך רק על השליפה האוטומטית.
מה ההבדל בין Composer ל-chat רגיל ב-Cursor?
צ'אט רגיל עונה ומציע קטעים; Composer (ו-agent mode) עורך מספר קבצים יחד, מריץ פקודות ומבצע משימה מקצה-לקצה. לשינוי רב-קבצי בחרו Composer; לשאלה ממוקדת או הסבר נקודתי הצ'אט מהיר וזול יותר בטוקנים.
האם להפעיל אינדוקס על ריפו ענק?
כן, אבל בזהירות. הוסיפו קובץ `.cursorignore` כדי להחריג את node_modules, את תיקיות ה-build וה-dist, ואת הקבצים הבינריים. כך האינדקס נשאר ממוקד בקוד שלכם בלבד, השליפה הסמנטית מדויקת יותר, ואתם חוסכים גם זמן אינדוקס וגם טוקנים בכל בקשה ובקשה.
למה Cursor מחזיר תשובה לא מדויקת בקוד-בייס גדול?
ברירת המחדל היא שליפה אוטומטית, שלא תמיד מביאה את הקובץ הנכון ולעיתים גוררת קוד לא רלוונטי. הצמדת @-mentions לקבצים הרלוונטיים, פירוק הבקשה למשימות קטנות, וצמצום ההקשר המיותר משפרים את הדיוק בצורה דרמטית — במיוחד בריפו של עשרות אלפי שורות קוד ומעלה.
קשור
סיימתם את השיעור?
סמנו כהושלם כדי לעקוב אחרי ההתקדמות שלכם במסלול.