Harness ראשון ב-15 דקות: ולידציה, קוווטות ולוגים
בניית מעטפת הבקרה המינימלית לכל סוכן: סכימת קלט קשיחה, תקרת צעדים ועלות, ולוג לכל קריאת מודל — בלי להוסיף ספריות כבדות.
למה זה 15 דקות ולא חודש
Harness זה לא מוצר שקונים, זה שלושה מנגנונים שכותבים בעצמם מעל לולאת הסוכן. פריימוורקים נחמדים, אבל הגרסה המינימלית היא קוד שלכם, בלי תלויות, והיא מכסה 80% מהכשלים שרואים בפרודקשן.
חלק 1: ולידציה (5 דקות)
סכימה קשיחה לקלט של המשתמש ולפלט של המודל. Zod ב-TypeScript, Pydantic בפייתון:
const AgentOutput = z.object({
action: z.enum(["reply", "call_tool", "done"]),
content: z.string(),
tool: z.string().optional(),
});
const parsed = AgentOutput.safeParse(raw);
if (!parsed.success) {
// מחזירים למודל את השגיאה המובנית ומבקשים פלט תקין.
// לא מתקנים בשקט, לא ממשיכים עם חצי נתונים.
}
הכלל: שגיאה נדחית, לא מתוקנת. תיקון שקט של פלט לא תקין מסתיר באגים ומזרים נתונים שגויים במורד הצינור. מחזירים את השגיאה למודל כהודעה מובנית — הוא יודע לתקן את עצמו טוב יותר מהקוד שלכם ינחש.
חלק 2: קוווטות (5 דקות)
סוכן בלי תקרה הוא סוכן שנכנס ללולאה אינסופית — עד שנגמר האשראי. שלוש תקרות לכל ריצה:
const limits = {
maxSteps: 15, // מספר מקסימלי של איטרציות בלולאה
maxCostUsd: 0.25, // עלות מצטברת לריצה
maxDurationMs: 60_000, // זמן ריצה מקסימלי
};
בכל איטרציה בודקים את שלושתן. חריגה → עצירה מסודרת: תשובת fallback ("לא הצלחתי להשלים את הבקשה, [פעולה ברורה]") ולא קריסה. המספרים תלויים במשימה, אבל תקרת צעדים בסדר גודל של 10–20 מכסה כמעט כל דבר סביר.
חלק 3: לוגים (5 דקות)
כל קריאת מודל וכל כלי נרשמים כאירוע עם: timestamp, model, קלט, פלט, מספר טוקנים (קלט ופלט בנפרד), latency ועלות מחושבת. זה שלד של trace — וזה כל מה שצריך כדי לענות על השאלה "למה הסוכן עשה את זה".
מי שרוצה ללכת רחוב יותר: הסטנדרט בשוק הוא OpenTelemetry עם ה-GenAI semantic conventions — מדדי gen_ai.client.operation.duration ל-latency ו-gen_ai.client.token.usage לטוקנים — כך שכל backend של telemetry יודע לקלוט. LangSmith נותן את זה מהקופסה אם אתם כבר בעולם של LangChain. אבל קובץ JSON append-only לכל trace עדיין עדיף על כלום, והרבה פרויקטים חיים איתו חודשים.
מה לא לעשות
- לא להתחיל מפריימוורק guardrails כבד לפני שיש לכם בעיה אמיתית.
- לא לתקן פלט לא תקין בשקט.
- לא לרוץ בלי תקרת עלות "כי זה רק דמו".
- לא לסמוך על הלוגים של הספק במקום לוג משלכם — אתם צריכים את הטוקנים לכל קריאה, לא חשבונית בסוף החודש.
מתי להרחיב
כשיש מדדים שמצדיקים: אם הלוגים מראים שהסוכן נכנס ללולאות גם עם התקרות — מוסיפים בקרת כלים (רשימת כלים מותרת לפי שלב). אם יש כשלים מפלט לא תקין — מחמירים את הסכימות. ההרחבה נובעת מנתונים, לא מ-FOMO.
רוצה להעמיק את הנושא אצלך בצוות?
סדנאות מעשיות והרצאות שמבוססות על הניסויים מהשטח — כולל קוד חי ותרגול.
בואו נדבר