---
title: "ניסוי עם מבחנים נסתרים הכריע את מה שחודשים של כוונון לא הכריעו"
author: "יותם פרום"
mode: developer
type: post
date: 2026-10-20
url: https://yotamfromm.dev/developer/blog/hidden-tests-trial/
category: "workflows עם AI"
series: "השוואות וניסויים"
series_order: 5
tags: ["ניסויים", "מבחנים-נסתרים", "זרימת-עבודה", "מדידה"]
lang: he
---

# ניסוי עם מבחנים נסתרים הכריע את מה שחודשים של כוונון לא הכריעו

> Opus פשוט עבר את אותם מבחנים נסתרים כמו מערך ה-multi-agent שלי: 7 דקות ו-2.46$ מול 149 דקות ו-14.88$ בארבעה באגים אמיתיים. ניסוי אחד הכריע מה שחודשים של כוונון לא הכריעו, ומה אפשר לשכפל ממנו.

אם אתה מכוונן מערך agents בלי למדוד אותו מול חלופה פשוטה, כדאי לראות מה קרה לי כשמדדתי. ניסוי אחד עם tests נסתרים הכריע בערב אחד שאלה שחודשים של כוונון תהליך לא הכריעו, והפוסט מראה איך הוא נבנה ומה אפשר לשכפל ממנו.

במשך חודשים כיווננתי מערך מרובה agents: הפקודה `/work`, עם מכונת שלבים, מסלולים, יומן ושכירויות של משימות. הכוונון לא הכריע אם המערך כולו משתלם. ואז בדקתי עם tests נסתרים: tests שה-agent לא רואה, ושרק הם קובעים אם המשימה הצליחה.

## השאלה

האם המערך המכוונן מוציא תוצאה טובה יותר מ-Opus פשוט, ואם כן, האם ההפרש שווה את הזמן ואת הכסף? הניסוי נרשם מראש, והמדד היה אחד: עוברים את ה-tests הנסתרים או לא.

## ההגדרה

הניסוי הראשון, ב-2026-10-14, רץ על ארבעה באגים אמיתיים ב-orchestration של הכלים שלי. את אותם ארבעה באגים נתתי לשלושה מערכים:

- `/work`, המערך המלא.
- Opus לבד.
- Opus ועוד review אחד של Codex.

ב-2026-10-15 בדקתי שכבה קלה יותר, `/task`: פעם עם Opus ככותב, פעם עם Haiku ככותב, ופעם עם reviewer Opus טרי במקום Codex. בכל תא הייתה הרצה אחת בלבד.

## הזרימה

1. **הרצת ארבעת הבאגים.** כל שלושת המערכים עברו את ה-tests הנסתרים. ההבדל היה רק במחיר: `/work` לקח 149 דקות ו-14.88$, Opus לבד 7 דקות ו-2.46$, ו-Opus עם review של Codex 27 דקות ו-6.30$.
2. **בדיקת השכבה הקלה.** עם Opus ככותב: 7.5 דקות ו-3.20$, ארבעה מתוך ארבעה tests נסתרים. עם Haiku ככותב: 6.5 דקות ו-2.92$, גם כן ארבעה מתוך ארבעה. reviewer Opus טרי במקום Codex לקח 10 דקות ו-4.72$, ולא הוסיף דבר.
3. **מטרות מרובות חלקים.** ב-2026-10-19 חזרתי על ההשוואה עם מטרות גדולות יותר. הפוסט הזה לא מביא את הפירוט של אותו ניסוי, רק את הטווחים המסכמים שרשמתי אחריו.
4. **מה השתבש בדרך.** ה-build של השכבה הקלה עצמה חרגה בכשבע שעות, כי סבבי review ותיקון המשיכו לרדוף אחרי עקיפות של תחביר מעטפת בשער נוחות. התיקון הוא כלל: סבב review אחד על רכיבי נוחות, אחר כך מתעדים את הגבולות, ומדווחים על הזמן שחלף ברגע שעוברות כשעתיים.
5. **ההחלטה.** ב-2026-10-20 פרשתי את `/work` ואת `/task`. במקומם יש workflow אחד, `/drive`.

## המספרים

| מערך | זמן | עלות | tests נסתרים |
|---|---|---|---|
| `/work` | 149 דקות | 14.88$ | עבר |
| Opus לבד | 7 דקות | 2.46$ | עבר |
| Opus ועוד review של Codex | 27 דקות | 6.30$ | עבר |
| `/task`, Opus כותב | 7.5 דקות | 3.20$ | 4 מתוך 4 |
| `/task`, Haiku כותב | 6.5 דקות | 2.92$ | 4 מתוך 4 |
| `/task`, reviewer Opus טרי | 10 דקות | 4.72$ | ללא תוספת |

ברישום מ-2026-10-20 סיכמתי שני ניסויים, משימות בודדות ב-2026-10-14 ומטרות מרובות חלקים ב-2026-10-19: אותה איכות ב-tests הנסתרים, בפי 1.1 עד 2.8 פחות זמן ובפי 1.6 עד 2.6 פחות עלות לטובת Opus הפשוט. הטווחים האלה צרים מהפער בארבעת הבאגים שבטבלה, ואין לי כאן את הפירוט שמסביר למה.

## מה השתנה אצלי

`/drive` שומרת את מה שהמדידה לא הפריכה, ומוותרת על מכונת השלבים, המסלולים, היומן והשכירויות:

1. מעריכים את גודל המטרה. שאלה או עריכה של שורה נעשות מיד.
2. מעגנים אותה בספרייה שלי.
3. סיעור מוחות, ואז תוכנית עם שניים עד חמישה tests שאפשר להריץ לכל צעד.
4. build, ואחריו ה-agent המוביל מריץ בעצמו כל test.
5. review אחד של כל השינוי, ממשפחת models אחרת.

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

## הסתייגויות

- בכל תא הייתה הרצה אחת (n=1). הטווחים מראים כיוון, ואינם מתיימרים להיות אמידה סטטיסטית.
- ארבעה באגים ב-orchestration של הכלים שלי אינם מייצגים כל סוג עבודה. ייתכן שבמשימות אחרות, או במטרות גדולות מאוד, התמונה אחרת.
- מדדתי רק עמידה ב-tests הנסתרים. לא מדדתי נוחות תחזוקה, ולא מה reviewer היה תופס מעבר למה שה-tests מכסים.
- ה-reviewer הטרי לא הוסיף דבר בניסוי הזה, ולכן אין לי מספר לתועלת של review שמוצא באג אמיתי.

## מה אפשר לקחת מזה

1. **קבע מראש מה נחשב הצלחה, והסתר את ה-tests מה-agent.** ניסוי שנרשם מראש עם tests נסתרים הכריע בערב אחד את מה שחודשים של כוונון לא הכריעו.
2. **לפני שמוציאים כסף על הרצות, בדוק שה-tests עדיין משקפים את העבודה.** ב-2026-10-21 תכננתי ניסוי אחר, על ערימת ההוראות שלי, ולא הרצתי אותו: ארבעת ה-tests שלו היו תיקוני באגים בפרויקט שכבר פרש. מערך tests שנבנה על פרויקט כזה לא מודד שום דבר עכשווי.
3. **ברכיב נוחות, סבב review אחד, ואז מתעדים את הגבולות.** ה-build חרג בכשבע שעות כשהסבבים המשיכו לרדוף אחרי עקיפות. דווח על הזמן שחלף ברגע שעוברות כשעתיים.
4. **כשמפשטים, שמור את מה שהמדידה לא הפריכה.** `/drive` שומרת test לכל צעד, אימות של ה-agent המוביל ו-review בין-משפחתי אחד, ומוותרת על מכונת השלבים, המסלולים, היומן והשכירויות.
5. **כתוב ליד כל מספר כמה הרצות עומדות מאחוריו.** כאן n=1 לכל תא, ולכן הטבלה היא כיוון ולא הוכחה.
