AI Briefing/בלוג
harness engineering·1 באוקטובר 2026·5 דקות קריאה

Harness engineering: מה נשבר כש-OpenAI נתנו ל-Codex לכתוב מיליון שורות

OpenAI בנו מוצר שלם בלי שורת קוד ידנית. הקוד התחיל להיסחף, התיקון הראשון נכשל, ומשם הגיע harness engineering. מה לבדוק אצלכם.

  1. 01כל טעות חוזרת של ה-agent הופכת ל-linter, לא לשורה נוספת ב-prompt.
  2. 02AGENTS.md של 100 שורות בערך, שמפנה לתיקיית docs/. לא מדריך ענק.
  3. 03כל הודעת שגיאה של linter צריכה להגיד ל-agent איך לתקן.

סוף אוגוסט 2025: ריפו ריק ושלושה מהנדסים

סוף אוגוסט 2025. צוות פנימי ב-OpenAI דוחף commit ראשון לריפו ריק. את ה-scaffold כותב Codex CLI עם GPT-5: מבנה תיקיות, CI, כללי פורמט, package manager, framework. אפילו את AGENTS.md, הקובץ שמסביר ל-agent איך לעבוד בריפו, כתב Codex. לצוות היה חוק אחד: אף בן אדם לא כותב שורת קוד. לא באפליקציה, לא בטסטים, לא ב-CI ולא בתיעוד.

חמישה חודשים אחר כך יש בריפו בערך מיליון שורות ובסביבות 1,500 PRs ממוזגים. הצוות גדל משלושה מהנדסים לשבעה. הקצב עמד על 3.5 PRs למהנדס ביום, ועלה כשהצוות גדל, לא ירד. ההערכה שלהם היא שזה לקח עשירית מהזמן שהיה לוקח לכתוב ביד. ריאן לופופולו פרסם את זה בפברואר 2026, ומאז כולם מדברים על harness engineering.

אבל זה לא סיפור הצלחה נקי. החלק ששווה ללמוד ממנו הוא מה נשבר בדרך.

אפס שורות ידניות לא אומר אפס עבודה. העבודה פשוט עברה מכתיבת קוד לבניית הסביבה (credit: OpenAI)
אפס שורות ידניות לא אומר אפס עבודה. העבודה פשוט עברה מכתיבת קוד לבניית הסביבה (credit: OpenAI)

כמה חודשים פנימה: Codex מעתיק את עצמו

בגדול, Codex לומד מהריפו שהוא עובד בו. יש בריפו pattern? הוא ישכפל אותו, גם את הטובים וגם את הגרועים. בריפו ש-agents כתבו בו כל שורה אין קוד ותיק שמישהו כתב בזהירות ושמחזיק את הסגנון. כל קיצור דרך שנכנס פעם אחת הופך לתבנית שה-agent הבא מעתיק, ואז ה-agent שאחריו.

בירגיטה בקלר מ-ThoughtWorks כתבה ב-martinfowler.com על אותה תופעה אצל צוותים אחרים. עוזרי קוד בלי מגבלות שוכחים קונבנציות, חוזרים על אותן טעויות, ושוחקים לאט את העקביות של הקוד. זה לא באג ספציפי של OpenAI. ככה זה נראה בכל מקום שנותנים ל-agent לכתוב הרבה.

איך המנגנון עובד
איך המנגנון עובד

מבחוץ הכל ירוק

וזה החלק המעצבן. הקוד מתקמפל, הטסטים עוברים, וגרף ה-PRs נראה מעולה. אף alert לא קופץ כשהארכיטקטורה מתפרקת לאט. ב-Habitat Thinking, שמתעדים את הרעיון של בקלר, ניסחו את זה בשני משפטים: “The code continues to compile and pass tests. The degradation is quiet.”

המספרים מבחוץ מספרים אותו סיפור. דו״ח DORA מצא שיותר אימוץ AI הולך יחד עם יותר throughput בהעברת תוכנה, וגם עם יותר חוסר יציבות. Apiiro ספרו יותר מ-10,000 ממצאי אבטחה חדשים בחודש בקוד ש-AI כתב עד יוני 2025, פי 10 מדצמבר 2024. בקיצור, הקצב עולה והאיכות נשחקת, וה-dashboard מראה רק את הקצב.

הסתייגות: אלה המספרים של OpenAI על מוצר פנימי שלהם, עם גישה למודל הכי טוב שלהם ובלי לקוח שמשלם. את ה״עשירית מהזמן״ הם העריכו בעצמם, ואין להם קבוצת ביקורת. אני לוקח מהפוסט את המנגנונים. את היחסים לא הייתי מביא למצגת להנהלה.

כל המספרים כאן מצוינים, ואף אחד מהם לא מודד סחף בקוד. בגלל זה הוא לא נראה מבחוץ (OpenAI)
כל המספרים כאן מצוינים, ואף אחד מהם לא מודד סחף בקוד. בגלל זה הוא לא נראה מבחוץ (OpenAI)

התיקון הראשון: יום שישי של ניקיון

התגובה הראשונה של הצוות הייתה אנושית לגמרי. כל יום שישי, 20% מהשבוע, הם ניקו ידנית את מה שהם קראו לו AI slop. זה לא החזיק. אחרי 3.5 PRs ביום למהנדס, יום ניקיון בשבוע הוא דלי מול צינור פרוץ.

התיקון השני היה לכתוב יותר הוראות. AGENTS.md אחד גדול, עם כל הכללים. גם זה נפל, והם תיארו בדיוק למה: הקובץ אוכל את ה-context, כשהכל מסומן כחשוב שום דבר לא חשוב, והוא מתיישן מהר יותר ממה שמישהו מעדכן אותו.

רגע, למה שזה בכלל יעבוד? Augment ניסחו את זה טוב: לכתוב ל-agent ״תעקוב אחרי ה-coding standards שלנו״ זה ציות הסתברותי. לחבר linter שחוסם את ה-PR זו אכיפה דטרמיניסטית. שני התיקונים הראשונים של OpenAI נשארו בצד ההסתברותי.

הסיבה האמיתית: מה שה-agent לא רואה, לא קיים

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

אז הם הזיזו את הכללים פנימה. AGENTS.md התכווץ לבערך 100 שורות שמשמשות מפה לתיקיית docs/, וה-docs/ הפכה למקור האמת. את הגבולות בין השכבות אוכפים linters מותאמים, ש-Codex כתב בעצמו, והודעות השגיאה שלהם כוללות הוראת תיקון. ככה ה-agent קורא את השגיאה ומתקן לבד. מעל זה רצות משימות Codex ברקע, שסורקות את הריפו מול רשימת עקרונות שכתובה בריפו ופותחות PRs קטנים של refactor. זה garbage collection במקום יום שישי.

הם עצמם ניסחו את השינוי בתפקיד ככה:

what changes when a software engineering team’s primary job is no longer to write code, but to design environments, specify intent, and build feedback loops that allow Codex agents to do reliable work. — OpenAI, Harness engineering: leveraging Codex in an agent-first world

את הכלל שמאחורי זה מייחסים למיטשל השימוטו (HashiCorp, Terraform), שכתב בפברואר 2026 שכל טעות של agent מקבלת תיקון קבוע בסביבה, כדי שאותה טעות לא תחזור. אדי אוסמני נותן את הקרדיט על השם לויב טריוודי. זה שעדיין מתווכחים מי המציא את השם זה סימן טוב, לא רע.

שני התיקונים הראשונים נשארו בצד ההסתברותי. רק כשהכלל עבר ל-CI, ה-agent התחיל לתקן את עצמו (OpenAI, Augment)
שני התיקונים הראשונים נשארו בצד ההסתברותי. רק כשהכלל עבר ל-CI, ה-agent התחיל לתקן את עצמו (OpenAI, Augment)

מה לבדוק אצלכם השבוע

לא צריך מיליון שורות כדי להגיע לאותה נקודה. מספיק agent שפותח PRs כמה שבועות. הנה מה לבדוק:

זה linter הגבולות הכי פשוט שיש. הוא חוסם גישה ישירה ל-DB מחוץ לשכבה המותרת, ואומר ל-agent מה לעשות במקום:

check_boundaries.py
import pathlib, re, sys
IMPORT_DB = re.compile(r'^\s*(from|import)\s+app\.db\b', re.M)
ALLOWED = ('app/repo/', 'app/db/')
bad = [p for p in pathlib.Path('app').rglob('*.py')
if not str(p).startswith(ALLOWED) and IMPORT_DB.search(p.read_text())]
for p in bad:
print(f'{p}: direct import of app.db outside the repo layer.\n'
' FIX: add a function in app/repo/ and call it from here.\n'
' WHY: docs/architecture.md#data-access')
sys.exit(1 if bad else 0)

תחברו אותו ל-pre-commit ול-CI, ותבדקו כמה PRs הוא תופס בשבוע הראשון. החלק המעניין בקובץ הזה הוא לא ה-regex, אלא שלוש השורות שמסבירות ל-agent מה לעשות אחרי שנחסם.

מקורות

  1. Harness engineering: Leveraging Codex in an agent-first world · 2026-06-05
  2. Harness Engineering · 2026-08-27
  3. Agent Harness Engineering · 2026-07-12
  4. Harness Engineering for AI Coding Agents: Constraints That Ship Reliable Code | Augment Code
  5. What Is Harness Engineering for AI Agents? | Milvus - Milvus Blog

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

עוד מונחים

כל המונחים →
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 ראשון.