גבול הרתמה ו-Reins Image: AI generated

ב-31 במרץ 2026 פרסמה Anthropic בטעות את מפות המקור של חבילת npm של Claude Code (v2.1.88). הסיבה: שורה אחת חסרה ב-.npmignore.1 59.8 מגה-בייט של מפות מקור חשפו כ-512,000 שורות TypeScript לא-ממוסכות, כ-1,900 קבצים. Anthropic הגדירה את הפרשה כ"שגיאת אריזה בפרסום, לא פרצת אבטחה, טעות אנושית", והמליצה למשתמשים להיצמד (pin) לגרסה v2.1.87.

כשבדקו את קוד המקור שנחשף, התברר כי פונקציה בודדת בקובץ אחד (print.ts) מנתה 3,167 שורות.2

סוכן הקוד הנמכר ביותר בעולם — הכלי שמתוכנן לתת לנו את המושכות על הקוד — לא הרכיב מושכות על הקוד שלו עצמו.

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

“Reins Engineering — זה בסך הכל הנדסת רתמה, לא?”

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

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

ראשית — השניים אינם ניגודים

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

המושכות מחוברות לרסן. הן אינן מחוץ למיתקן אלא חלק ממנו. לכן, אם שואלים “האם הרתמה ו-Reins הם ברורות שונות, ניגודיות?” — התשובה היא לא. שניהם חלקים של אותה מיתקנה.

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

לכן צריך לשנות את השאלה. לא האם הם ניגודים, אלא היכן הם נפרדים.

היכן Reins הופך לאפשרי — שלוש שכבות של לולאה

לפני שמוצאים את נקודת הפרידה, צריך להבין היכן Reins הופך לאפשרי בכלל. מבחינת שכבות הלולאה — שלוש יש.

① לולאת צ'אט       LLM → אדם → LLM              הכל הסתברותי. Reins בלתי-אפשרי.
② לולאת סוכן       LLM → ביצוע → תצפית → LLM    ביצוע דורך על קרקע דטרמיניסטית → Reins אפשרי.
③ לולאת Reins      ② + מאמת מתוכנן + מַחְגֵּר    Reins מושלם.

בלולאת הצ’אט אין היכן להניח רסן. טרם עלינו על הסוס. LLM עונה, האדם קורא, וחוזר ל-LLM — אין שלב אחד דטרמיניסטי. אין ברזל שניתן לנעוץ בו את האות.

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

זו הסיבה המדויקת להצלחה המוחצת של Claude Code. Bash, קלט/פלט קבצים, הרצת טסטים — שערים דטרמיניסטיים שנכנסו ללולאה (כמעט במקרה), ויצרו “Reins חלקי” שלא היה קיים בעידן הצ’אט.

זו לא רק טענתי. Holistic Agent Leaderboard של פרינסטון הראה כי אותו מודל בדיוק משיג הפרשים של עשרות נקודות אחוז בדיוק — רק בגלל החלפת הפיגום, ב-21,730 ריצות סוכן.3 המודל קבוע; מה שהשתנה הוא המבנה שעוטף אותו. Addy Osmani מסכם בשורה אחת: “מודל בסדר + רתמה מצוינת > מודל מצוין + רתמה גרועה.” הוא מציין גם שאותו Opus משיג ציון גבוה יותר בתוך רתמה מותאמת מאשר בתוך Claude Code.4

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

אולם ② הוא הסנף המקרי בלבד של Reins. Reins Engineering היא ההשלמה המכוונת של אותו סנף. לקחת שערים שנכנסו למקרה, ולהחליף אותם במאמתים מתוכננים, מַחְגֵּרים, והפרדת-החלטה-מביצוע — כדי להעלות ② אל ③. שיח הרתמה מוכיח את Reins, אך אינו מחליף אותו.

שלושה צירים

שני אנשים עובדים עם אותו סוס.

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

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

כאן שלושה צירים:

  • פונקציה. הרתמה חוסמת — גבולות מה-לא-לעשות. Reins מוביל — לאן ללכת ומתי להסתיים.
  • אורך חיים. הרתמה מיוצרת פעם אחת ומשמשת לכל משימה. Reins מתוכנן מחדש לכל משימה.
  • בעלות. הרתמה מסופקת על-ידי הספק. Reins נכתב על-ידי האדריכל.

לולאת Claude Code זהה לכל פרויקט שלי. זו הרתמה. Anthropic ייצרה אותה, היא שווה לכל המשתמשים. אך “פינוי שוכר = חמש תמונות של מקומות מוגדרים” — הגדרת הסיום — כתבתי אני, עבור התחום הזה, בעצמי. שום רתמה לא כוללת זאת. זהו Reins.

התלות זורמת בכיוון אחד בלבד

אם השניים היו אחד, לא ניתן היה לנתק אחד מהשני. בואו ננסה.

רתמה יש, Reins אין. הסוכן פועל. ממשיך לפעול. אך הוא מתועה. אין סמן מטרה, אין שיפוט סיום — נודד בשדה ללא כיוון, ואז עוצר כי “נראה שזה מספיק”. כבר מכירים זאת. קוראים לזה vibe coding.

Reins יש, רתמה אין. זה בכלל לא אפשרי. מחזיקים מושכות, אך אין רסן לחבר אליו. אין להיכן לשלוח אות. רק מחזיקים חבל לאוויר.

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

החפיפה היא תא אחד בלבד

האם אין חפיפה כלל? יש. בדיוק תא אחד.

שער האימות המבוצע. CI רץ בתוך לולאת הסוכן. משטח האכיפה הזה שייך לשני הצדדים — הוא גם חלק מהרתמה, וגם מה-ש-Reins מניח עליו. כאן נולדת השאלה “זה לא רתמה?”. נכון — בתא הבודד הזה, שניהם מצביעים על אותו דבר.

אך מחוצה לו, השניים נפרדים.

   רתמה בלבד            חפיפה               Reins בלבד
─────────────────  ─────────────────  ─────────────────
 סנדבוקס·הרשאות    שער אימות            הגדרת הסיום
 חיווט כלים         (בדיקה מבוצעת)      עיצוב הגנת cheese
 ניהול הקשר                              ניתוח פרוקסי↔מטרה
 (חסימה ללא כיוון)  (משטח אכיפה)        (כוונה ללא מצע)

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

מדוע השאלה “קבוצת חלק?” שגויה

“אם כך, האם Reins הוא קבוצת חלק של הרתמה?”

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

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

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

נקודת הפרידה האמיתית — cheese

עד כה דיברנו על מבנה. אולם המקום שבו Reins נפרד בצורה מכרעת משיח הרתמה הוא אחר. cheese.

מעצבי משחקים יודעים. “הרוג 10 עכברים” הוא קווסט מפורסם לרעה. פער קיים בין מה שהשער בודק (10 עכברים מתים) ומה שהמעצב באמת רצה (שחקן חווה תוכן) — והשחקן מנצל את הפער. זה נקרא cheese. זו בדיוק התופעה שחוקרי בטיחות AI מכנים “specification gaming (גיימינג של מפרט)” — סוכן מירוצי סירות שבוחר בנקודות ניקוד במקום לחצות קו סיום, סוכן טטריס שמשהה לצמיתות את המשחק כדי לא להפסיד.5

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

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

הרוכב הוא אותו אדם. אוחז ב-Reins.

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

כאן הוא השטח הייחודי של Reins Engineering שאינו קיים בשיח הנדסת הרתמה ו-agentic engineering. אלה מדברים על ייצור רתמה טובה יותר. Reins מדבר על לאיזה דלת לשלוח את המסע הזה, מבלי שישבר.

ועוד פעם — חזרה לאירוע הדלף

עכשיו נחזור לאירוניה הראשונית. עכשיו ברור מדוע הוא ראיה ולא לעג.

הסוס היה גאון. Opus הוא עוצמה הסתברותית בפני עצמה. האוכף עבד — Claude Code היא הרתמה הטובה בעולם, ומספרי HAL מוכיחים זאת. ובכל זאת, בסיס הקוד שהרתמה ייצרה דרף בדיוק לפי מצב הכשל הצפוי. פונקציה בודדת, 3,167 שורות. קיר 200 נקודות הקצה מתגלם בקוד. אפילו הדלף עצמו — שורה חסרה ב-.npmignore — פירושה שלא היה שער על תוצרי הפרסום.

החברה שייצרה את הרתמה הטובה בעולם לא הרכיבה אותה על האורווה שלה עצמה.

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

אז

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

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

בפעם הבאה שמישהו שואל “זה בסופו של דבר רתמה, לא?”, ענה כך:

“הרתמה היא מה שהספק מספק; Reins הוא מה שאני מתכנן עבור הקווסט הזה. אין Reins ללא רתמה, אבל רתמה ללא Reins — רק מתועה. אפילו הכלי שנועד לתת לנו מושכות לא הרכיב מושכות על הקוד שלו עצמו — כי Reins אינו משהו שיש לך, הוא משהו שאתה מפעיל.”

קריאה קשורה

לקריאה נוספת

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


  1. עובדות האירוע (2026-03-31, v2.1.88, מפות מקור Bun חסרות ב-.npmignore, ~512K שורות·~1,900 קבצים, עמדת “human error / לא פרצת אבטחה”, המלצה לppin ל-v2.1.87) אומתו בצלבה: The Register (“Anthropic accidentally exposes Claude Code source code”, 2026-03-31), InfoQ, VentureBeat. ↩︎

  2. פונקציה בודדת של 3,167 שורות ב-print.ts אומתה ב-claudefa.st, “Claude Code Source Leak: Everything Found”. ↩︎

  3. Kapoor, Narayanan et al., “Holistic Agent Leaderboard: The Missing Infrastructure for AI Agent Evaluation” (Princeton), arXiv:2510.11977 — 9 מודלים × 9 בנצ’מרקים, 21,730 ריצות סוכן. מבודד את השפעת הסקאפולד. לוח תוצאות חי: hal.cs.princeton.edu. ↩︎

  4. Addy Osmani, “Agent Harness Engineering” — “מודל בסדר + רתמה מצוינת > מודל מצוין + רתמה גרועה.” אותו Opus משיג ציון גבוה יותר ברתמה מותאמת מאשר ב-Claude Code. ↩︎

  5. Krakovna et al., Google DeepMind, “Specification gaming: the flip side of AI ingenuity”; אוסף דוגמאות: V. Krakovna, “Specification gaming examples in AI” (לולאת ניקוד CoastRunners, השהיה נצחית בטטריס). “התנהגות המספקת את המפרט המילולי של המטרה מבלי להשיג את התוצאה המכוונת.” ↩︎

  6. Marilyn Strathern (1997), “‘Improving ratings’: audit in the British University system,” European Review 5(3):305–321 — מקור “כאשר מדידה הופכת למטרה, היא חדלה להיות מדידה טובה” (ניסוח מחדש של הטענה של Goodhart מ-1975 דרך Hoskin). ↩︎