AI Briefing/בלוג
same engineering·12 בנובמבר 2026·5 דקות קריאה

Same engineering: אותן משימות, ציון אחר, ואף מודל לא השתנה

ב-DeepSWE v1.1 שינו רק את ה-execution וה-grading, ומשימות זזו ב-36 נקודות. איך מודדים את זה אצלכם בלי לבלבל רעש עם שיפור

יש שורה אחת בטבלה של DeepSWE v1.1 שכדאי לקרוא פעמיים. המשימה היא claude-code-by-agents-recursive-delegation. בגרסה הקודמת של ה-benchmark היא נפתרה ב-11% מההרצות, ובגרסה החדשה ב-47%. קפיצה של 36.1 נקודות.

אף מודל לא השתנה בשביל זה. Datacurve, שמחזיקים את DeepSWE, אמרו את זה כבר בכותרת: “Updated execution and grading for the same engineering tasks”. אותן משימות. מה שהשתנה זה איך מריצים אותן ואיך בודקים אם הן נפתרו.

ובאותה טבלה, באותו עדכון: eicrud-keyset-pagination-cursor ירדה מ-42% ל-22%, ו-go-git-worktree-merge-conflicts ירדה מ-67% ל-50%. koota-entity-snapshot-rollback נשארה בדיוק על 97%.

same engineering זה לא מונח. זה ניסוי

טוב, צריך להגיד את זה מההתחלה: אף אחד לא טבע את “same engineering”. זה חצי משפט מכותרת של בלוג, והוא נדבק כי הוא מתאר משהו שאין לו שם טוב. הניסוי שמאחוריו הוא אחד הכלים הכי שימושיים שיש למי שמריץ agents. מקבעים את העבודה, משנים רק את המערכת שמסביב למודל, ומודדים כמה הציון זז.

מה כן נכנס פה: אותו task set, אותו ground truth, אותם מודלים. רק שני דברים משתנים:

ומה לא: זה לא benchmark חדש ולא מודל חדש. זה גם לא עוד תחום “engineering” שמחכה ל-job title. בפועל זה A/B על התשתית, לא על המודל. והתוצאה של DeepSWE אומרת שהתשתית לבד מזיזה משימות בעשרות נקודות.

המשימות נקראות על שם repos אמיתיים כמו httpx, helm ו-fastapi, אז התזוזה היא על עבודה אמיתית ולא על תרגילי צעצוע (credit: Datacurve DeepSWE)
המשימות נקראות על שם repos אמיתיים כמו httpx, helm ו-fastapi, אז התזוזה היא על עבודה אמיתית ולא על תרגילי צעצוע (credit: Datacurve DeepSWE)

36 נקודות בלי לגעת במודל

בגדול, לכל משימה בטבלה יש שני אחוזים ו-delta. רגע, תסתכלו על גודל ה-delta: +2.8%, -5.6%, +8.3%, -11.1%, +36.1%. כמעט הכול כפולות של 2.78, כלומר 1 מתוך 36. נראה שרוב המשימות רצו 36 פעם לכל גרסה. dynamodb-toolbox-lazy-recursive-schemas, שעלתה מ-60% ל-89%, מסתדרת יפה עם 45 הרצות.

עכשיו החשבון שאף אחד לא עושה בראש. עם 36 הרצות ואחוז פתרון סביב 50%, סטיית התקן של התוצאה היא בערך 8.3 נקודות. סטיית התקן של ההפרש בין שתי ריצות כאלה כבר מגיעה ל-11.8. אז הירידה של 8.3% ב-kysely-window-grouping-helpers וב-abs-stepped-slices קטנה מסטיית תקן אחת. רעש.

ה-36.1 של claude-code-by-agents זה סיפור אחר, עם z של בערך 3.4. זה לא מזל. משהו ב-execution או ב-grading באמת השתנה בשביל המשימה הזו. ויש גם משימות שאף harness לא הצליח להזיז: bandit-structured-nosec-directives עברה מ-3% ל-0%, ו-gql-incremental-graphql-delivery מ-6% ל-3%.

הסתייגות: אני קורא את שתי העמודות בטבלה כגרסה הקודמת מול v1.1. את מספר ההרצות אני מסיק מגודל הצעדים, לא מהתיעוד. אם Datacurve הריצו n אחר, ה-z יזוזו. העיקרון לא זז: delta בלי n הוא לא מספר.

איך המנגנון עובד
איך המנגנון עובד
חמש המשימות שזזו הכי הרבה זזו לשני הכיוונים, בלי שאף מודל השתנה. רק ה-execution וה-grading (DeepSWE v1.1)
חמש המשימות שזזו הכי הרבה זזו לשני הכיוונים, בלי שאף מודל השתנה. רק ה-execution וה-grading (DeepSWE v1.1)

ככה מריצים same engineering אצלכם

קודם כל, תקבעו את ה-task set בקוד: hash לכל משימה ב-repo, ולא “הרשימה מהשבוע שעבר”. חוץ מזה, תנו ל-harness ול-grader גרסאות נפרדות. ב-v1.1 של DeepSWE עודכנו גם ה-execution וגם ה-grading, ולכן מהטבלה לבד אי אפשר לדעת איזה מהשניים הזיז כל שורה. אצלכם, תשנו אחד בכל פעם.

אחר כך N הרצות לכל משימה. ריצה אחת היא הטלת מטבע. Datacurve הריצו 36, ונראה לי ש-10 זה המינימום שאפשר להסתכל עליו ברצינות. ולפני שמישהו כותב בסלאק “שיפרנו ב-15%”, בודקים את ה-delta מול הרעש:

compare_runs.py
import csv, math, sys
def load(path):
with open(path) as f:
return {r['task']: (int(r['passes']), int(r['runs'])) for r in csv.DictReader(f)}
old, new = load(sys.argv[1]), load(sys.argv[2])
for task in sorted(old.keys() & new.keys()):
(a, n1), (b, n2) = old[task], new[task]
p1, p2 = a / n1, b / n2
p = (a + b) / (n1 + n2)
se = math.sqrt(p * (1 - p) * (1 / n1 + 1 / n2)) or 1e-9
z = (p2 - p1) / se
verdict = 'REAL' if abs(z) >= 2 else 'noise'
print(f'{task:45} {p1:4.0%} -> {p2:4.0%} {p2 - p1:+6.1%} z={z:+.1f} {verdict}')

שומרים CSV עם העמודות task,passes,runs לכל גרסה, ומריצים python3 compare_runs.py v1_0.csv v1_1.csv. על המספרים של DeepSWE, בהנחה של 36 ו-45 הרצות, רק שתיים מחמש התזוזות הגדולות עוברות z≥2. ה-+19.4 של dateutil-rfc5545-timezone-interop וה–19.4 של eicrud נראים דרמטיים בטבלה. סטטיסטית, שניהם עדיין יכולים להיות מזל.

ה-+19.4 וה--19.4 נראים דרמטיים, אבל הם מתחת לסף z=2. רק שתיים מחמש עוברות (DeepSWE v1.1, חישוב שלנו)
ה-+19.4 וה–19.4 נראים דרמטיים, אבל הם מתחת לסף z=2. רק שתיים מחמש עוברות (DeepSWE v1.1, חישוב שלנו)

מתי לא לטרוח

אם ה-grader שלכם דטרמיניסטי, למשל schema שעובר או לא או unit test אמיתי, חלק גדול מהתזוזה נעלם, כי אין מה לפרש. CoLab עושים בדיוק את החלוקה הזו ב-AutoReview: AI בודק שרטוטים דו-ממדיים, ו-deterministic geometry checks מוצאים בעיות DFM בתלת-ממד. איפה שאפשר לכתוב כלל, הם כותבים כלל. ככה הם מנסחים את המטרה:

no engineering leader is trying to deploy agents for their own sake. What they want is engineering work that comes out more consistent and easier to review

— CoLab Software, על agents להנדסת תכן

“more consistent” זה בדיוק מה ש-same engineering מודד. מה שכן, יש מקרים שזה בזבוז זמן. אם יש לכם 5 משימות וריצה אחת לכל אחת, לא תראו כלום. ואם אתם בוחרים בין שני ספקים עם פער של 30 נקודות על 50 משימות, לא צריך z-test כדי להחליט.

מה לנסות השבוע

ואם ריצה שנייה של אותו config זזה אצלכם ב-10 נקודות, כל “שיפור” של 8 שדיווחתם ברבעון האחרון היה סתם רעש.

מקורות

  1. DeepSWE v1.1 – Updated execution and grading for the same engineering tasks · 2026-06-24
  2. Agentic AI Engineer Explained | Career Guide & Key Skills
  3. AI Agents for Engineering Design: 5 Types & How to Evaluate
  4. What are AI Agents?- Agents in Artificial Intelligence Explained - AWS

איך נכתב הפוסט: נוסח על ידי הסוכן שלנו מתוך 4 מקורות, ונערך ואושר על ידי קובי אלמוג.

עוד מונחים

כל המונחים →
3/4

ChatGPT מקרוב: הפיצ'רים שמהנדסים משאירים כבויים

Projects, memory, canvas, deep research, agent ו-connectors ב-ChatGPT: מה כל אחד עושה, איפה הוא נופל, ומה להפעיל כבר השבוע.

1/5

Claude Code בפרקטיקה, חלק 1: CLAUDE.md קצר, הרשאות קשוחות

שלושת קבצי ה-CLAUDE.md, auto memory, הרשאות ב-settings.json ופקודות שכדאי שיהיו באצבעות. צעד אחרי צעד, לצוות אמיתי.

2/5

Claude Code בפרקטיקה, חלק 2: hooks, MCP ו-skills, מה הולך לאן

CLAUDE.md אומר מה חייב, skill איך, MCP מה אפשר, hook אוכף. PreToolUse שחוסם commit ל-main, formatter אוטומטי, שרת MCP ו-SKILL.md ראשון.