תתחילו מהרמה של הפרויקט, לא מהרמה של כל החשבון. פרויקט אחד בשם ׳מיילים ללקוחות׳ עם שלושה משפטים על העסק, וזהו. הנחיה על כל החשבון תשפיע גם על השיחה שבה אתם מתכננים חופשה.
הנחיה קבועה מול פרומפט חד-פעמי: system prompt, פרויקטים ו-Gems
אם אתם פותחים כל שיחה באותם שלושה משפטים על העסק, יש לזה מקום קבוע. השאלה היא מה שמים שם, ומה משאירים להודעה עצמה.
המדריך הזה מבוסס על תיעוד ה-system prompt של Anthropic, על תיעוד הודעות המפתח של OpenAI, ועל מרכזי העזרה של Claude, ChatGPT ו-Gemini, יחד עם מה שראיתי אצל עסקים שכתבו הנחיה קבועה ואז שכחו ממנה. הוא מיועד למי שעדיין מעתיק את אותה הקדמה לכל שיחה, למי שכבר יש לו Project ורוצה שהוא באמת יעבוד, ולמי שכותב system prompt למוצר.
להתחיל לקרוא ↓שני סוגי טקסט שנכנסים למודל
פרומפט חד-פעמי הוא מה שאתם מקלידים עכשיו, למשימה הזאת. הנחיה קבועה היא טקסט שנטען לפני כל שיחה בלי שתקלידו אותו: מי אתם, איך לכתוב, מה אסור. המודל רואה את שניהם כטקסט. ההבדל הוא מי כותב אותו ומתי.
כשאתם שולחים הודעה, המודל מקבל חבילה אחת: ההנחיה הקבועה, קבצים שצירפתם למקום הקבוע, ההיסטוריה של השיחה, וההודעה עצמה. הוא לא יודע מה נכתב היום ומה לפני חודש. הוא רואה טקסט ומייצר המשך. לכן הנחיה קבועה עובדת: היא פשוט תמיד שם.
התיעוד של Anthropic מסביר את הרעיון על הדוגמה הפשוטה ביותר: הגדרת תפקיד ב-system prompt ממקדת את ההתנהגות והטון של המודל, וגם משפט אחד עושה הבדל. הרעיון זהה בכל הכלים, גם אם השם משתנה: system prompt, Project instructions, Custom Instructions, Gem.
מקור רשמי: Anthropic, System prompts ↗איפה זה יושב בכל כלי
בכל כלי יש שתי רמות: הנחיה שחלה על כל השיחות בחשבון, והנחיה שחלה רק על פרויקט או על עוזר ספציפי. ב-API יש רמה שלישית, שהמפתח שולט בה בקוד. השם משתנה, המבנה לא.
כמה פרטים ששווה לדעת ממרכזי העזרה. ב-Claude, פרויקטים זמינים גם בחשבון חינמי, עם תקרה למספר הפרויקטים, וההנחיות של פרויקט חלות רק על השיחות בתוכו. ב-ChatGPT, ההנחיות הכלליות מוגבלות במספר תווים שתלוי בתוכנית, והנחיות של פרויקט גוברות עליהן בתוך הפרויקט. ב-Gemini, Gem הוא עוזר עם שם והנחיות, ואפשר לצרף לו קבצים כידע.
על GPTs: מרכז העזרה של OpenAI כותב שהם מתכננים להוציא אותם משימוש ולהחליף אותם במנגנון אחר. מי שמתחיל היום, שיבנה על Projects.
| הכלי | לכל השיחות | לפרויקט או לעוזר אחד | ב-API |
|---|---|---|---|
| Claude | הנחיות פרופיל בהגדרות | Project instructions, יחד עם קבצי הפרויקט | הפרמטר system בבקשה |
| ChatGPT | Custom Instructions בהגדרות | Project instructions, שגוברות על ההנחיות הכלליות | הודעת developer או הפרמטר instructions |
| Gemini | אין מקבילה מתועדת להנחיה כללית קבועה | Gem: שם, הנחיות וקבצי Knowledge | הפרמטר system_instruction |
תפרידו פרויקטים לפי סוג עבודה: ניסוח ללקוחות, כתיבה שיווקית, ניתוח קבצים. לכל אחד הנחיה משלו. פרויקט אחד גדול עם הנחיה שמנסה לכסות הכל יוצא מרוח לכל דבר.
ב-API הפרדת התפקידים היא מבנית: ה-system prompt או הודעת ה-developer מקבלים עדיפות על הודעת המשתמש, ו-OpenAI מתארים את זה כמו הגדרת פונקציה מול הארגומנטים שלה. תשמרו את הטקסט של ההנחיה בקוד, עם גרסה, ולא בשדה שמישהו עורך ביד במסך.
מה שייך להנחיה הקבועה ומה שייך להודעה
כלל אחד: מה שנכון לכל שיחה שתפתחו בפרויקט הזה, שמים בהנחיה הקבועה. מה שנכון רק למשימה של עכשיו, שמים בהודעה. אם אתם לא בטוחים, זה שייך להודעה.
רוב ההנחיות הקבועות שראיתי נכשלות בכיוון אחד: הן מכילות יותר מדי. מישהו הדביק לשם את כל תיאור החברה, את המחירון ואת המשימה של אתמול. מהיום השני, חצי מההנחיה מתנגשת עם מה שמבקשים בפועל, והמודל בוחר לבד למה להקשיב.
מבחן פשוט לכל משפט: האם הוא היה נכון גם בשיחה של שבוע שעבר, וגם בזו של שבוע הבא? אם כן, הוא נשאר. אם הוא מתאר את הלקוח הספציפי, את הקובץ הספציפי או את הדד-ליין, הוא יורד להודעה.
| שייך להנחיה הקבועה | שייך להודעה |
|---|---|
| מי אתם ומה העסק עושה, במשפט | מי הלקוח בשיחה הזאת ומה קרה איתו |
| איך אתם כותבים: משלב, פנייה, אורך ברירת מחדל | אורך חריג או טון חריג למקרה הזה |
| מה אסור אף פעם: להמציא מחיר, להבטיח בשם העסק | מה אסור הפעם: לא להזכיר את ההנחה הקודמת |
| מתי לשאול במקום לנחש | התשובות לשאלות האלה |
| מסמכי ייחוס יציבים: מחירון, שאלות נפוצות, דוגמאות טון (כקבצים) | הקובץ של הלקוח, המייל שצריך לענות עליו |
איך כותבים אחת לעסק קטן: קול, איסורים, שאלות
שלושה חלקים, בסדר הזה: איך לכתוב, מה לא לעשות אף פעם, ומה לשאול לפני שעונים. עשרה עד חמישה עשר משפטים. אם יצא עמוד, חצי ממנו שייך להודעה או לקובץ.
החלק הראשון הוא הקול. לא ׳מקצועי וידידותי׳, כי כל עסק בעולם כותב את זה. במקום תיאור, דוגמה: שתיים או שלוש שורות ממייל שכתבתם ואהבתם, עם הערה ׳ככה׳. המודל לומד מדוגמה טוב יותר מאשר מתואר. ההנחיות של Google ליצירת Gem מפרטות את אותם ארבעה חלקים: תפקיד, משימה, הקשר ופורמט.
החלק השני הוא האיסורים, וכאן צריך משמעת. מרכז העזרה של OpenAI ממליץ להעדיף הנחיות חיוביות וקונקרטיות על פני רשימת איסורים ארוכה. שלושה או ארבעה איסורים שבאמת כואבים: להמציא מחיר, להבטיח מועד, לכתוב בשם העסק דבר שלא נאמר. לא עשרים.
החלק השלישי הוא הכי מוזנח: מתי לשאול. ׳אם לא ברור לך מי הלקוח או מה המטרה, תשאל שאלה אחת לפני שאתה כותב׳. משפט אחד כזה חוסך את רוב הטיוטות שנזרקות.
תכתבו את ההנחיה כמו שהייתם מסבירים לעובד חדש ביום הראשון: מה אנחנו, איך אנחנו מדברים עם לקוחות, מה אסור לעשות בלי לשאול. אם אתם לא יודעים מה לכתוב, תבקשו מהמודל לראיין אתכם ולנסח.
כל איסור בהנחיה הוא תוצאה של טעות שקרתה. תוסיפו איסור רק אחרי שראיתם את הטעות פעמיים. ככה ההנחיה נשארת קצרה ומשקפת את הבעיות האמיתיות שלכם, ולא בעיות שדמיינתם.
ב-system prompt של מוצר, תגדירו במפורש את שפת התשובה במקום לסמוך על זיהוי. Anthropic ממליצים על זה בתיעוד הרב-לשוני שלהם, וזה נכון במיוחד לעברית עם מונחים באנגלית. תוסיפו הנחיה מפורשת מה לעשות כשחסר מידע: לשאול, להחזיר שדה ריק, או לעצור, לפי מה שהמערכת שמסביב יודעת לטפל בו.
הנחיה קבועה לעסק קטן, להעתקה
התבנית הזאת נכנסת כמו שהיא ל-Project instructions ב-Claude או ב-ChatGPT, להנחיות של Gem, או לפרמטר system ב-API. תמלאו את הסוגריים, תמחקו מה שלא רלוונטי, ותשאירו אותה קצרה.
על העסק: אני [השלם את המידע כאן: שם העסק ומה הוא עושה, במשפט אחד]. הלקוחות שלי הם [השלם את המידע כאן: מי הם ומה חשוב להם]. איך לכתוב: עברית מדוברת וברורה, בפנייה [השלם את המידע כאן: זכר / נקבה / רבים], משפטים קצרים, בלי סימני קריאה ובלי סיסמאות. דוגמה לטון שאני רוצה: [השלם את המידע כאן: הדביקו שתיים או שלוש שורות ממייל שכתבתם] אף פעם לא: להמציא מחירים, תאריכים או נתונים שלא נתתי. להבטיח משהו בשם העסק. להשתמש במילים [השלם את המידע כאן: מילים שאסורות אצלכם]. לפני שאתה עונה: אם לא ברור לך [השלם את המידע כאן: מי הלקוח / מה המטרה / מה כבר נאמר], תשאל שאלה אחת קצרה במקום לנחש. ברירת מחדל לתשובה: [השלם את המידע כאן: אורך, מבנה, מה להשמיט].
למה קצר מנצח
הנחיה ארוכה לא מדויקת יותר. היא רק נותנת למודל יותר משפטים לבחור ביניהם כשהם מתנגשים. כל משפט שנשאר צריך להצדיק את עצמו: מה הוא מונע, או מה הוא מוסיף, שלא היה קורה בלעדיו.
יש לזה גם צד טכני. ב-ChatGPT, ההנחיות הכלליות מוגבלות במספר תווים לפי התוכנית. ב-Claude, מרכז העזרה מציין שהקשר לא עובר בין שיחות בתוך פרויקט אלא אם הוא נוסף לידע של הפרויקט, ולכן מה שצריך להיזכר צריך להיות בהנחיה או בקבצים, ולא באיזו שיחה קודמת. שני הכללים דוחפים לאותו מקום: הנחיה קצרה, קבצים ליד, ומשימה בהודעה.
- משפט שמתאר מה המודל כבר עושה לבד, כמו ׳תהיה מנומס׳, יורד
- משפט שנכון רק לחלק מהשיחות בפרויקט יורד להודעה, או שהפרויקט מתפצל לשניים
- מידע שנכון אבל ארוך, כמו מחירון או מדיניות ביטולים, עובר לקובץ בפרויקט
- איסור שלא ראיתם את ההפרה שלו בפועל, יורד עד שתראו
איך בודקים שינוי בהנחיה
לפני שמשנים משהו בהנחיה הקבועה, תשמרו שלוש עד חמש הודעות אמיתיות מהעבודה. אחרי השינוי, תריצו אותן שוב ותשוו. שינוי שמשפר הודעה אחת ומקלקל שתיים אחרות הוא לא שיפור.
ב-Gemini יש לזה חלון מובנה: כשעורכים Gem אפשר להזין הודעה בחלון התצוגה המקדימה ולראות את התשובה לפני שמירה, ומרכז העזרה מזכיר שהתצוגה לא שומרת לבד. ב-API, OpenAI כותבים את זה ישירות: להוסיף מקרי בדיקה ובדיקות הערכה לפני ששינוי בפרומפט עולה לייצור.
- תאספו שלוש עד חמש הודעות אמיתיות שאתם שולחים בפרויקט הזה, כולל אחת קשה
- תריצו אותן עם ההנחיה הנוכחית ותשמרו את התשובות במסמך, עם תאריך
- תשנו דבר אחד בהנחיה. לא שלושה
- תריצו את אותן הודעות שוב ותשוו זו ליד זו
- אם השתפר בכולן, תשמרו. אם השתפר בחלק, תשאלו אם המשפט החדש שייך להודעה ולא להנחיה
פרויקט אחד, שלוש הודעות שאתם שולחים כל שבוע. פעם בחודש תריצו אותן ותראו אם התשובות עדיין נשמעות כמוכם. אם לא, משהו בהנחיה או בקבצים התיישן.
תנהלו את ההנחיה במסמך נפרד עם תאריכים: מה שיניתם ולמה. כשמשהו נשבר בעוד חודשיים, תדעו איזה שינוי עשה את זה.
סט בדיקות קטן עם תשובות צפויות, שרץ על כל שינוי ב-system prompt לפני מיזוג, כמו בדיקות על קוד. תבדקו גם מקרי גבול: הודעה ריקה, הודעה באנגלית, הודעה שמנסה לשנות את ההנחיה. ההנחיה צריכה להחזיק גם שם.
מה עושים עם זה מחר בבוקר
תפתחו פרויקט אחד, בכלי שאתם כבר עובדים איתו, למשימה שהכי חוזרת אצלכם. תדביקו את התבנית מפרק 05, תמלאו אותה בעשר דקות, ותריצו את ההודעה של היום. תשוו למה שקיבלתם אתמול בלי הנחיה.
- תבחרו משימה אחת חוזרת: מענה ללקוחות, סיכומי פגישות, פוסטים
- תפתחו לה פרויקט או Gem, ותמלאו את התבנית. קצר
- תצרפו קובץ אחד יציב, כמו מחירון או שאלות נפוצות, אם יש
- תשמרו שלוש הודעות בדיקה במסמך, עם התשובות של היום
הנחיה קבועה אחת, לפרויקט אחד. אל תגעו בהנחיות של כל החשבון בשבוע הראשון. תעבדו עם הפרויקט שבוע, ותראו איזה משפט חסר.
תעברו על ההנחיות שכבר יש לכם ותמחקו כל משפט שלא הצליח לעבור את המבחן מפרק 03. רוב ההנחיות שראיתי מתקצרות בחצי בלי לאבד כלום.
תפרידו בקוד בין system prompt קבוע, מסמכי הקשר שנטענים לפי הצורך, והודעת המשתמש. תוסיפו גרסה ל-system prompt, ותריצו את סט הבדיקות על כל שינוי. ככה ההנחיה מפסיקה להיות טקסט שמישהו ערך פעם ואף אחד לא זוכר למה.
שאלות שאני שומע על זה
מה ההבדל בין Custom Instructions לבין Project instructions ב-ChatGPT?
לפי מרכז העזרה של OpenAI, Custom Instructions חלות על כל השיחות בחשבון, והנחיות של פרויקט חלות רק בתוך הפרויקט וגוברות על הכלליות. לעסק, הרמה של הפרויקט היא כמעט תמיד המקום הנכון.
צריך לכתוב את ההנחיה הקבועה באנגלית?
לא. הכלים המרכזיים מבינים הנחיות בעברית. אם המוצר שאתם בונים עונה בעברית, כדאי לכתוב בהנחיה במפורש ׳תענה בעברית׳, במקום לסמוך על זיהוי אוטומטי.
כמה זמן ההנחיה מחזיקה?
כל עוד העסק לא השתנה. תבדקו אותה כשמשנים מחירון, טון או קהל, ופעם בכמה חודשים עם שלוש הודעות הבדיקה. שחרור של מודל חדש הוא סיבה להריץ את הבדיקה, ולא סיבה לשכתב.
- Anthropic, System prompts
- Anthropic, Multilingual support
- Claude Help Center, What are projects
- Claude Help Center, How can I create and manage projects
- Claude Help Center, Understanding Claude's personalization features
- OpenAI Help, Custom Instructions for ChatGPT
- OpenAI Help, Projects in ChatGPT
- OpenAI Help, Creating and editing GPTs
- OpenAI, Prompt engineering
- Google, How to use Gems
- Google, Use Gems in Gemini Apps
- Google, Tips for creating custom Gems
- Google AI for Developers, System instructions in the Gemini API
