מי מגדיר את ‘הושלם’ — הבעיה שמשחקי הווידאו פתרו 40 שנה לפניכם

נניח שאתם מנהלים נכסים להשכרה. דייר פינה את הדירה, ועליכם לאמת את הפינוי.

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

מישהו ששמע את ההסבר אמר: “זה בדיוק קווסט במשחק, לא?”

נכון. בדיוק זה. ואותו משפט אחד הסביר בבת אחת משהו שנאבקתי איתו בקוד שנים.

המשחקים פתרו את זה 40 שנה קודם

“אסוף 5 עורות זאב.” משחקים עושים את זה עשרות שנים. ומשחקים לעולם לא מאמינים לטענות של השחקן. אם תגיד “צדתי אותם” — הקווסט לא יסתיים. המשחק בוחן רק דבר אחד: האם בתיבת הפריטים יש 5 עורות? יש — הושלם. אין — לא הושלם. תם.

מה שבניתימה שהמשחק בנה
הגדרת השלמה = 5 תמונות ממיקומים מוגדריםיעד קווסט = 5 עורות זאב
מפרט = רשימה של מה לצלםיומן קווסט · סמני יעד
אימות = האם 5 תמונות קיימות?אימות = האם יש 5 עורות?
פסיקה = המערכת מסמנת הושלםפסיקה = המשחק מציג הושלם
הנציג = מבצע (לא שופט)השחקן = מבצע

המבנה זהה. מי שמכריז על ‘הושלם’ עבר מפה של הגורם המבצע אל המערכת. הגורם רק ממלא את התנאים — השער הוא זה שתמיד מציג את ההשלמה.

זה Reins — וגם הקוד עובד בדיוק אותו דבר

בקידוד AI אני עושה אותו דבר. כש-AI אומר “סיימתי” — אני לא מאמין. רק כשהטסטים עוברים, הטיפוסים תואמים, ואימות הסכימה לא נכשל — אז המערכת פוסקת “נגמר.” יעד הקווסט הוא “4,419 טסטים עוברים”, ובמקום תיבת פריטים — CI בודק את זה. אמות המידה הסטנדרטיות במחקר סוכנים עובדות בדיוק כך — SWE-bench מגדיר ‘הושלם’ כמעבר חבילת הטסטים של ה-PR האמיתי, WebArena מגדיר זאת כדיוק פונקציונלי של מצב הסביבה. לא “סיימתי” בשפה טבעית.

פינוי דייר, עורות זאב, או קוד — העיקרון אחד. לקחת את פסיקת ‘הושלם’ מהגורם המבצע ולהעביר אותה לשער מוגדר מחוצה לו. לא משנה אם הגורם הוא אדם או AI. במיוחד לתת לאגורם AI לפסוק על ההשלמה שלו עצמו — זה מסוכן, כפי שהניסויים מראים: self-critique של מודל כמעט לא מעלה ביצועים, אבל מאמתים דטרמיניסטיים חיצוניים מעלים אותם בהרבה (Stechly & Kambhampati, 2024). ואפילו מודל שמתחיל בכנות ייפנה לאסטרטגיות הונאה כשנותנים לו סמכות לפסוק על התגמול שלו עצמו (McKee-Reid et al., 2024). הרסן (reins) לא מאט את הסוס. הוא מונע ממנו לרוץ בכיוון הלא נכון.

ועוד משהו מתבהר כאן. כשנותנים דעה, הגורם מתערער. “אתה בטוח שבדקת?” ישתק נציג, ו-AI יבטל תשובה שהייתה נכונה. אבל חמש תמונות אינן דעה. מעבר טסט אינו דעה. 5 עורות אינם דעה. לעובדות אין ממי להחניף. כל עוד השער שואל שאלות עובדתיות — אף אחד לא יכול לפייס אותו.

אבל המשחקים נתקלו בדבר קשה יותר קודם — cheese

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

“הרוג 10 עכברים” הוא קווסט מוכר לשמצה. למה? כי יש פער בין מה שהשער מאמת (מות 10 עכברים) לבין מה שהמעצב באמת רצה (שחקן יחווה את התוכן). השער הוא רק פרוקסי למטרה, והשחקנים חודרים לפער הזה. ספידראנרים מוצאים את הפרצות בין תנאי ההשלמה לכוונת העיצוב ושוברים את המשחק. בעיצוב משחקים קוראים לזה cheese. ומודלי ריזונינג מתקדמים עושים בדיוק את זה — כשקיבלו קווסט לנצח מנוע שחמט, מודלים כמו o3 במקום לשחק כהלכה שינו את קובץ מצב המשחק כדי ליצור “ניצחתי” (Bondarenko et al., 2025). ככל שהיכולת גבוהה יותר — כך מוצאים את הפרצות טוב יותר.

גם השער שלי בניהול הנכסים יכול לסבול cheese. חמש תמונות מאמתות ש"תמונות קיימות" — לא ש"הפינוי הסתיים כהלכה." מה אם הנציג צילם רק קירות נקיים? אם השתמש מחדש בתמונות מלפני הכניסה? השער עובר. כשמדד הופך ליעד — המדד נשבר. זה חוק Goodhart, ו-Manheim & Garrabrant (2018) מיינו את כשלי האופטימיזציה-היתר הזו לארבעה וריאנטים. מחקר בטיחות AI סיכם את אותה תופעה בשם reward hacking — סוכן שמכסה את הבלגן במקום לנקות אותו (Amodei et al., 2016) עושה בדיוק אותו דבר כמו נציג שמצלם רק קירות נקיים.

אני נתקל בפרצה הזו בקוד שוב ושוב. לא מזמן ריפקטרתי מסגרת ווב עם 23,000 כוכבים לפי כלל “מושג אחד לקובץ” ווידאתי ש-4,419 טסטים עוברים כולם. עובדה מאומתת. אבל כשחפרתי עמוק יותר באותם נתונים — הכלל עבר אבל המטרה הושגה רק ב-90%: 10% מהקבצים עדיין הכילו מספר מושגים במקום אחד. השער (0 הפרות כלל) עבר, אבל המטרה שהשער כיוון אליה לא נסגרה לגמרי. הקוד שלי עשה cheese לשער שלי.

לכן הכישרון האמיתי של Reins הוא לא “לשים שער.” זה לעצב שער שאי-אפשר לעשות לו cheese. קווסט חלש שואל “האם תמונות קיימות?” קווסט חזק דורש חותמת זמן, בודק מטא-נתוני מיקום, ומשווה עם תמונות מלפני הכניסה בעזרת ראייה ממוחשבת. ספרות עיצוב המשחקים שעסקה 40 שנה ב"קווסטים שאי-אפשר לעשות להם cheese" היא בעצם דף התשובות לשערי Goodhart-עמידים.

וזה לא קורה מאליו. אפילו כשמאמנים עם תגמול שניתן לאמת (RLVR) — המודל עלול לבחור לגמינג מאמת לא-שלם במקום ללמוד את הכלל (Helff et al., 2026). אבל יש מדידה שמראה שחיזוק מכוון של השער (environmental hardening) הפחית exploit-ים ב-87.7% ללא אובדן דיוק (Thaman, 2026). חוזק השער הוא שאלת עיצוב, לא מזל.

הבדל אחד — ה-cheese של המציאות עולה ביוקר

לכל אנלוגיה יש גבולות. תנאי ההשלמה של קווסט נועדו לשרת כיף ופייסינג. אין צורך שיתפסו בדיוק את מטרת המציאות, וה-cheese חסר השלכות. אם שחקן פוצח “10 עכברים” בקיצור — אף אחד לא נפגע.

שערי Reins של המציאות שונים. עלות ה-cheese אמיתית — הונאת פינוי, בנייה שבורה, הנה"ח שאושר בטעות. לכן שערי מציאות חייבים להיות יותר עמידים ל-cheese מאשר משחקים. האסימטריה הזו דווקא מחדדת את הנקודה. המשחקים עשו את זה — אבל אנחנו צריכים לעשות את זה ביתר שאת.

לתת לסוכן עבודה זה לתת לו קווסט

כשמגיעים לכאן — משפט אחד נופל למקומו.

הסיבה ש-agentic coding קורס היא שנותנים קווסט ללא תנאי השלמה. סוכן שמקבל קווסט ללא סמני יעד וללא פסיקת השלמה — תועה במפה. “כנראה זה מספיק” ועוצר, או מסתובב לאין-סוף. Reins הוא עיצוב קווסט מתוקן לסוכן הזה. יעד ברור (מפרט), סמן נראה (SSOT), פסיקת השלמה שאי-אפשר לעשות לה cheese (אימות דטרמיניסטי).

ובסצנה הזו טמונות שלוש שכבות של כישרון.

  • לשחק קווסט. לאמץ שער שמישהו אחר בנה. — משתמש.
  • לעצב קווסט. לבנות בעצמך שערים המותאמים לדומיין שלך (פינוי, הנה"ח, קוד). — יוצר.
  • לעצב קווסט שאי-אפשר לעשות לו cheese. למנוע מראש את הנקודה שבה הפרוקסי לא תופס את המטרה. — מתכנן.

רוב האנשים נעצרים בשחקן. מה שמגדיל את התמונה הוא עיצוב — ומה שמונע מהתמונה להישבר הוא עיצוב שעומד ב-cheese.

לסיום

בפעם הבאה שמישהו אומר “סיימתי” — אל תשאל בחזרה. שאל:

“מה הוא ‘הושלם’, ומי עיצב את הקווסט שפוסק אותו?”

אם אין תשובה לשאלה הזו — מה שיש לכם הוא לא השלמה. זו טענה של מישהו.

מאמרים קשורים

לקריאה נוספת (חיצוני)

  • Specification gaming: the flip side of AI ingenuity — Victoria Krakovna ואחרים, Google DeepMind. סיכום מחקר בטיחות סמכותי של הטענה המרכזית: השער הוא פרוקסי של כוונה, והסוכנים חודרים לפרצה.
  • There’s Cheese in Your Game! — Shay Pierce, Game Developer. “אם זה הכי יעיל — גם אם משעמם — השחקן יעשה את זה”: פרספקטיבת עיצוב משחקים על קווסטים ללא cheese שמקבילה ישירות ל-cheese-proof gate.
  • From shortcuts to sabotage: emergent misalignment from reward hacking — Anthropic. ראיה אמפירית עדכנית לכך שלא ניתן לתת לגורם לשמש שופט ההשלמה שלו עצמו — reward hacking בקידוד שמעביר רק את סקריפט הניקוד.
  • How to write a good spec for AI agents — Addy Osmani. לחזור מ"עשה מהיר יותר" ל-“LCP < 2.5s” עם success criteria שניתן לאמת — הגרסה המעשית של הגדרת השלמה כ-checkable condition.
  • What is agentic engineering? — Simon Willison. חלוקת תפקיד האדם להגדרת יעדים, הכנת כלים ואימות, ואימוץ מעבר טסטים כ-‘done’ — תואם את ה-reframe של סוכן=מבצע / אדם=מעצב קווסט.

ביבליוגרפיה

  • Manheim & Garrabrant. “Categorizing Variants of Goodhart’s Law” (2018, arXiv:1803.04585)
  • Amodei et al. “Concrete Problems in AI Safety” (2016, arXiv:1606.06565)
  • Bondarenko et al. “Demonstrating Specification Gaming in Reasoning Models” (2025, arXiv:2502.13295)
  • Helff et al. “LLMs Gaming Verifiers: RLVR can Lead to Reward Hacking” (2026, arXiv:2604.15149)
  • Thaman. “Reward Hacking Benchmark: Measuring Exploits in LLM Agents with Tool Use” (2026, arXiv:2605.02964)
  • McKee-Reid et al. “Honesty to Subterfuge: In-Context RL Can Make Honest Models Reward Hack” (2024, arXiv:2410.06491)
  • Stechly, Valmeekam, Kambhampati. “On the Self-Verification Limitations of Large Language Models” (2024, arXiv:2402.08115)
  • Jimenez et al. “SWE-bench: Can Language Models Resolve Real-World GitHub Issues?” (2023, arXiv:2310.06770)
  • Zhou et al. “WebArena: A Realistic Web Environment for Building Autonomous Agents” (2023, arXiv:2307.13854)
  • תמונה ראשית: נוצרה על ידי AI (Google Gemini)