
OrcaRouter תשתית ניתוב: ניתוב מודע-סשן והסלמת גבול
- obsidianחדשQwen3.8 27B Uncensored (Aggressive)2026-08-15$0.40 / $4.21 לכל 1M טוקנים · 22 tok/s
- qwenחדשQwen: Qwen3.8 27B (free)2026-08-1343 tok/s
- deepseekחדשDeepSeek: DeepSeek V4 Pro 08132026-08-1253אינטליגנציה69כתיבת קוד
- grokחדשSpaceXAI: Grok 4.62026-08-1261אינטליגנציה77כתיבת קוד
- metaחדשMeta: Muse Spark 1.22026-08-0557אינטליגנציה72כתיבת קוד
- qwenQwen: Qwen3.8 Max2026-08-0358אינטליגנציה72כתיבת קוד
- deepseekDeepSeek: DeepSeek V4 Flash 07312026-07-3152אינטליגנציה69כתיבת קוד
- minimaxMiniMax: MiniMax-H32026-07-31minimax/minimax-h3
- qwenQwen: Qwen3.7 Flash2026-07-27$0.03 / $0.13 לכל 1M טוקנים · 273 tok/s
- orcaOrcaDub: OrcaDub 1.02026-07-27orca/dub
- anthropicAnthropic: Claude Opus 52026-07-2463אינטליגנציה78כתיבת קוד
- googleGoogle: Gemini 3.6 Flash2026-07-2152אינטליגנציה69כתיבת קוד
- googleGoogle: Gemini 3.5 Flash-Lite2026-07-2137אינטליגנציה49כתיבת קוד
- metaMeta: Muse Spark 1.12026-07-1653אינטליגנציה71כתיבת קוד
- kimiMoonshotAI: Kimi K32026-07-1560אינטליגנציה76כתיבת קוד
- openaiOpenAI: GPT-5.6 Luna2026-07-0952אינטליגנציה71כתיבת קוד
- openaiOpenAI: GPT-5.6 Terra2026-07-0957אינטליגנציה77כתיבת קוד
- openaiOpenAI: GPT-5.6 Sol2026-07-0961אינטליגנציה77כתיבת קוד
- grokxAI: Grok 4.52026-07-0856אינטליגנציה72כתיבת קוד
- tencentTencent: Hy32026-07-0642אינטליגנציה59כתיבת קוד
ORCAROUTER · ארכיטקטורת ניתוב
כל שער LLM שמאחסן הנחיות במטמון חייב להצמיד שיחה למודל אחד. כל שער שמצמיד שיחה מקבל את החלטת הניתוב שלו על סמך התור הכי פחות אינפורמטיבי של אותה שיחה. זהו דוח על הפשרה הזו, ועל מנגנון הדביקות המדורגת ש-OrcaRouter מספק כדי להיחלץ ממנה.
נושא: שער OrcaRouter LLM (Go / Gin / Redis) · רכיב: מנוע session affinity + Frontier Escalation · שיטה: הפעלה חוזרת של 400 סשנים מול קוד ההחלטה בייצור · תאריך: 14 באוגוסט 2026
תקציר — ניתוב מודלי שפה ברמת בקשה — דירוג כל בקשה באופן עצמאי ושיגורה למודל הזול ביותר המתאים — הוא המשטר שכמעט כל העבודות המפורסמות על ניתוב דנות בו. אבל הוא המשטר הלא נכון עבור התעבורה ששולטת כיום בנפח שער הגישה: הפעלות סוכן מרובות־סיבובים, שבהן ההנחיה היא 90% הקשר שהועבר הלאה ומטמון ההנחיה של הספק משלם עבור הרציפות. החלפת מודל באמצע השיחה מוותרת על הנחה של פי 10 על הקידומת המשותפת, ולכן שערי הגישה קובעים הפעלות. אבל קיבוע שנעשה בסיבוב 1 הוא קיבוע שנעשה בסיבוב עם הכי פחות ראיות, והוא נמשך לכל אורך חיי השיחה.
100 / 100 — הפעלות קשות-סמויות שציון הסיבוב הראשון שלהן אינו ניתן להבחנה מציון טריוויאלי
+16% — סחיפת ציון קושי כתוצאה מאורך התמליל בלבד, ברמת קושי משימה זהה
45% — מהעלות של always-frontier, עבור 67% מכיסוי הפניות החדות שלו
0.019 — המרווח בין השער ששוחרר לבין תקרת הציונים הריאליסטיים
1 שני משטרי ניתוב
שער LLM הממוקם מול ספקים רבים צריך לענות על שאלה אחת לכל בקשה: איזה מודל משרת את זה? ישנן שתי דרכים שונות מבחינה מבנית לענות על כך, והספרות והמציאות הייצורית התרחקו זו מזו בשאלה איזו מהן חשובה.
ניתוב ברמת בקשה מתייחס לכל בקשה כאל עצמאית. מערכת ניקוד אומדת את קושי השאילתה או את איכות התגובה הצפויה, והבקשה נשלחת לדגם הזול ביותר שצפוי לטפל בה. זהו המתווה של למעשה כל עבודת הנתבים שפורסמה: RouteLLM מאמן נתבים על נתוני העדפה שמגיעים ל-95% מאיכות GPT-4 עם 14% קריאות למודל חזקsup>[1]/sup>; FrugalGPT מפעיל מפל מודלים מזול ליקר עם בדיקת קבלה/דחייה ומדווח על הפחתת עלות של עד 98%sup>[2]/sup>; RouterArena בונה מדד של 8,400 שאילתות כדי להשוות נתבים בדיוק על הציר הזהsup>[3]/sup>. יחידת הניתוח היא השאילתה.
הסיבה שקיים ניתוב מודע-לסשן היא לא אלגנטיות. זה חשבון.
2 כלכלת המטמון שהופכת דביקות לחובה
בסשן סוכן מרובה-תורים, תור n, הפרומפט שלו הוא תור n−1, הפרומפט שלו ועוד דלתא. עד תור 10, הקידומת המועברת היא הרוב המכריע של טוקני הקלט. כל ספק גדול מתמחר כעת את הקידומת הזו בצורה שונה, בהתאם לשאלה אם מדובר במכת מטמון:
טבלה 1. סמנטיקת מטמון הנחיות לפי ספק. המטמון מזוהה על-פי תחילית מדויקת ועל-פי מפתח ההגשה — החלפת מודל או סיבוב מפתח הם קריאה קרה במחיר מלא.
OrcaRouter מקודד בדיוק את אורכי החיים האלה כ-TTL של pin: מפה לפי סוג ערוץ של חלונות מטמון של ספקים — 5 דקות עבור OpenAI, Anthropic ו-Gemini, 60 דקות עבור DeepSeek — עם ברירת מחדל של 5 דקות לספק שאינו ממופה. ה-pin של ערוץ+מפתח פוקע עם אותו חלון, מכיוון שלאינדקס מפתח מיושן אין ערך מטמון והוא רק מעוות את איזון העומס. המודל pin, בפריסה הנתמכת על-ידי Redis ועבור מזהה סשן הזכאי ל-pin ארוך, נמשך 30 יום — לא עבור ערך מטמון, שכבר מזמן נעלם, אלא עבור המשכיות פורמט הבקשה. מעבר מודל באמצע שיחה מאלץ המרת פורמט בקשה שעלולה להיות בלתי תואמת נתונים: בלוקי חשיבה ומזהי קריאות לכלים לא בהכרח שורדים תרגום בין סכמות הספקים.
הפרט שלא מוערך דיו
מטמוני prompt מקושרים למפתח API, לא למודל. שער שקובע את המודל אבל מאזן עומסים בין שלושה מפתחות באותו ערוץ עדיין קורא קר בשתיים מתוך שלוש פניות. זו הסיבה ש-pin הערוץ של OrcaRouter מאחסן {ChannelID, KeyIndex} במקום מזהה ערוץ, ולמה ה-pin נשמט כשאינדקס המפתח שנרשם כבר לא מצביע על מפתח פעיל — מפתח שהוגבר אבל סובב היה יוצר הטיה לכיוון מטמון קר תוך עקיפת האיזון, וזה הגרוע משני העולמות.
ההצמדות רכות לאורך כל הדרך: מזהה סשן שאינו ניתן לפתרון הוא פעולה ריקה, הצמדה לערוץ שהושבת או שאינו בריא חוזרת לבחירה מאוזנת רגילה, והצמדה לערוץ שמשקלו אפס במאגר מעורב מושמטת, כדי שמנהל שמנקז ערוץ לא יסוכל על ידי דביקות. הן לעולם לא מכשילות בקשה.
3 המלכודת: הדביקות משביתה את הנתב
להלן מצב הכשל. בנתיב הקוד שלפני ההסלמה, עבור ראוטר מודע-סשן על כל אסטרטגיה שאינה DSL, סיכת ה-session→model החזירה
זה היה נסבל אם תור 1 היה מייצג. אך הוא אינו כך באופן שיטתי, משתי סיבות מצטברות.
3.1 תור 1 הוא התור הפחות אינפורמטיבי.
סקלר הקושי (service/model_router_difficulty.go) הוא צירוף ליניארי משוקלל של שש תכונות לקסיקליות:
LogPromptTokens × 0.20, עם מכסה של log(8001) ≈ 8.99
ReasoningCueCount × 0.15, עם תקרה של 5
SystemPromptLogLen × 0.10 cap log(2001) ≈ 7.60
CodeKeywordDensity × 0.20 תקרה 5.0 (התאמות לכל 100 תווים)
HasTools × 0.15 כבר 0/1
MathMarkerCount × 0.20 תקרה 5
פתיח קצר ללא היסטוריה מקבל ציון נמוך כמעט מעצם הבנייה: מונח האסימון בעל המשקל 0.20 כמעט ברצפה שלו, ומונחי ההיגיון/מתמטיקה מופעלים על אוצר מילים שלמשתמש עדיין לא הייתה סיבה להשתמש בו. לכן, סשנים מתחייבים למודל מאגר-חלש ברגע של מינימום מידע — ועם נעילת מודל ל-30 יום מבוססת Redis, ההתחייבות הזו ארוכה.
איור 1.הקושי הממוצע של התור האחרון לפי תור השיחה, על פני 100 הפעלות קשות-סמויות ו-200 קלות באמת, שנוקדו על ידי מודד הייצור. בתור 1 — התור שבו נכתבת הסיכה הדביקה — שתי האוכלוסיות אינן נבדלות (0.210 לעומת 0.208). האוכלוסייה הקשה חוצה את הסף בתור 5. במדיניות מבוססת-פין בלבד, כל 100 ההפעלות הקשות-סמויות מוקצות למאגר הזול לפני שמתקיים ולו אחד מהראיות הללו.
3.2 אורך מתחזה לקושי
הבעיה השנייה עדינה יותר והיא מערערת את הפתרון המתבקש. אם פשוט מריצים מחדש את שער הקושי בכל תור, מריצים אותו על ציון שמחושב על פני התמליל המלא המאוחה. לציון הזה יש סחיפה מובנית כלפי מעלה: האיבר LogPromptTokens במשקל 0.20 עולה באופן מונוטוני עם אורך השיחה, ובכל הפעלת סוכן, האיברים HasTools במשקל 0.15 ו-SystemPromptLogLen במשקל 0.10 הם למעשה רצפים קבועים. הפעלה ארוכה ומשעממת נראית קשה יותר ויותר.

איור 2. ארטפקט הטיית האורך, שנמדד על 60 סשנים המורכבים כולם מעריכות טריוויאליות ("שנה את שם המשתנה הזה", "הוסף בדיקת nil"). ציון התמליל המלא נסחף ב-+16% על פני 25 תורות ברמת קושי קבועה; ציון התור האחרון (דלתא) יציב. הערכה מחודשת נאיבית של ציון התמליל המלא בכל תור הייתה מסלימה סשנים על חטא היותם ארוכים.
התיקון ש-OrcaRouter מספק הוא נפרד, דלתא-מחלץ (service/model_router_delta.go) שמדרג רק את הפנייה האחרונה — טקסט המשתמש החדש בתוספת כל תוצאות הכלים שהתווספו אחרי ההודעה האחרונה של העוזר — תוך שימוש באותם משקלים ומגבלות, אבל מאפס בכוונה את SystemPromptLogLen, שאינו חלק מהדלתא. הקו הכחול השטוח באיור 2 הוא המחלץ הזה.
4 עיצוב: דביקות מדורגת
הבריחה הנאיבית מנעילת תור-1 היא לנתב מחדש כל תור — שזה בסך הכול ניתוב ברמת בקשה, ומוותר על המטמון. התיקון הנאיבי בכיוון ההפוך הוא להפוך את ה-pin לזיכרון של "הסשן הזה נהיה קשה" — מה שלא יכול לבטא דה-אסקלציה ואינו ניתן להגבלה. העיצוב של OrcaRouter מסרב לשני אלה.
המסגור מחדש: סשן מקושר למודל בתוך שכבה, ו-Redis קטןמצב שכבההוא זיכרון ההסלמה היחיד. הקיבוע למודל לעולם אינו הזיכרון.
מאגרי דרגות. הדרגה החזקה היא מאגר ההסלמה שנקבע (escalation_pool, שברירת המחדל שלו היא strong_pool של הנתב). הדרגה הבסיסית היא AllowedModels בניכוי מאגר הדרגה החזקה; מודל שנמצא בשני המאגרים שייך לדרגה החזקה. בתוך הדרגה הבסיסית, חלוקת הקושי לרצועות weak/mid/strong של gated_adaptive ממשיכה לפעול בדיוק כבעבר.
סיכות בהיקף שכבה. מפתח קיבוע המודל של השכבה החזקה מקבל סיומת :t:strong; השכבה הבסיסית משאירה את המפתח הישן ללא שינוי. לכן הסלמה שומרת על סיכת הבסיס, כך שסשן שדרגתו הופחתה — או כזה שמתחדש לאחר שפג תוקף מצב השכבה — חוזר אל המודל המדויק שבו התחיל, ולא לבחירה שרירותית מחדש. סיכות חזקות מוגדרות עם TTL קצר של חלון הספק בלבד: סיכה חזקה של 30 יום תישאר בתוקף זמן רב יותר מאשר מצב השכבה של 4 שעות שהצדיק אותה.
השער רץ ראשון. ב־selectByStrategy (service/model_router.go:1374) הדרגה נקבעת מראש, קבוצת המועמדים מצומצמת למאגר של הדרגה, ורק אז נבדק ה-sticky pin — בתוך אותה דרגה. זהו התיקון המבני ל־§3: חישוב הקושי וטריגרי ההסלמה רצים בכל תור, לפני שה-pin יכול לקצר אותם.
4.1 שלוש מחלקות טריגר, מדורגות לפי אמון
טבלה 2. טריגרים להסלמה. שום אות מטושטש לא מסלים לבדו; רק בקשה מפורשת של לקוח מתחייבת ב-n=1, וגם היא מצייתת לתקרות.
שלושה אינווריאנטים היגייניים הם נושאי עומס. סטרייקים עוברים הסרת כפילויות לפי מזהה בקשה באמצעות טבעת חיץ, כך שניסיונות חוזרים מצד לקוח המשתלבים זה בזה אינם יכולים לספור פעמיים. כשל תשתית הוא לעולם לא כשל יכולת — תשובות 429, תשובות 5xx וגיבויי ערוץ לעולם אינן מזכות בסטרייק; רק אותות איכות שלאחר הצלחה נספרים. ו"תור" מוגדר כבקשה שהושלמה, חויבה בהצלחה, ובוצעה עליה הערכת סטרייק, כך שבקשות שנכשלו אינן מקדמות לא את דעיכת הסטרייקים ולא את מונה התורים הנקיים.
4.2 Resolve הוא טהור; commit הוא דחוי.
התכונה המבנית המשמעותית ביותר של המנוע היא ש-ResolveEscalation אינו כותב דבר. הוא מחזיר החלטה ורשימה של כוונות ממתינות. המפיץ מחיל את הכוונות הללו בבלוק שלאחר-ההצלחה שלו, על קריאה טרייה בתוך עסקת Redis WATCH. זה חשוב משום שהרזולובר רץ על נתיבים שלעולם אסור לשנות בהם מצב: רזולוציות ספקולטיביות של שרשרת-גיבוי, נקודות הקצה הדיאגנוסטיות לקריאה בלבד, ובקשות שמאוחר יותר מקבלות 403 או נכשלות במעלה הזרם. החלה חוזרת של הכוונות על מצב טרי גם פירושה שכותב מקביל מיושן אינו יכול לדרוס הסלמה שבוצעה, ושתי הסלמות זהות המתחרות ביניהן מתמזגות באופן אידמפוטנטי.
4.3 Caps, ולמה הם קושרים הכול
הסלמה חיובית-שגויה עולה (מחיר strong − base) × אסימוני פרק-חם שנותרו, והיא עולה בשקט — שום דבר לא נכשל. רדיוס הפיצוץ מוגבל על ידי מכסים החלים על כל מחלקה:
escalation_max_per_session (ברירת מחדל: 1). ביטול הסלמה ואיפוסי לקוח אינם מחזירים אותו, מה שסוגר את נתיב הניצול של לולאת האיפוס.
לכל נתב, מכסת נתח הסלמה (ברירת מחדל 20%) על פני חלון נע של 24–48 שעות של דליים יומיים של Redis, בתוספת מכסה חוצת-נתבים ברמת סביבת העבודה. בהגעה למכסה, כל ניתוב ההסלמה מדוכא — כולל בקשות מפורשות והגברות חד-פעמיות.
הסלמה יורדת רק בגבולות של מטמון קר, כך שחיובי שגוי מוגבל לפרק חם אחד.
הסיבה ש-Class A מציית למגבלות היא מסקנת מודל איומים, לא העדפת מדיניות: בשער API, מי שמחזיק באסימון סביבת העבודה שולט בכותרות. נתיב הפטור מהמגבלה, "הלקוח ביקש זאת", הוא ערוץ הוצאות ללא מדידה. §7 מודד מה קורה כשכל לקוח מנצל זאת לרעה.
4.4 דה-אסקלציה היא אסימטרית בעיצובה
הסלמה על סמך ראיות חיזוק; הפחתת הסלמה רק כשאינה כרוכה בעלות. סשן חזק חוזר לבסיס רק כאשר כל אלה: הסשן קר במטמון (בטל מעבר לחלון הספק שתועד בעת ההסלמה), הוא צבר ≥3 תורות מוערכות ללא תקלות, ודלתא הקושי האחרונה מתחת ל־T1.
5 שיטה
מדדנו את המנגנון על ידי הפעלה חוזרת של קורפוס מושבים סינתטי דרך קוד ההחלטה היצרני בפועל. כלי הבדיקה הוא בדיקת Go בחבילת השירות שקוראת ל-ResolveEscalation ול-CommitEscalationDecision בכל תור מול חנות שכבות המגובה ב-miniredis, עם מחשבוני הקושי האמיתיים, מפיקי ה-strike האמיתיים בצד הבקשה, ומנגנון מגבלת השיתוף האמיתי. שום דבר בנתיב ההחלטה אינו מיושם מחדש או מזויף, פרט לכיור אירועי הביקורת.
מה אמיתי ומה לא
אמיתי: כל החלטת ניתוב, ציון קושי, זיהוי תקיפות, כלל רצף, הערכת תקרה ומעבר מצב ב־Redis — אלה הן הפונקציות ששוחררו. סינתטי: התעבורה. הקורפוס מופק, לא נדגם מיומני ייצור. תערובת הארכיטיפים שלו (50% קשים) היא תערובת לחץ שנבחרה להפעיל את המנגנון, ולא הערכה של תעבורה אמיתית; סעיף 6.4 מדווח על הרגישות לבחירה זו, והיא גדולה. מספרי הדיוק הנקיים להלן משקפים קורפוס שמחלקותיו ניתנות להפרדה מעצם בנייתו, ויש לקרוא אותם כ"המנגנון מופעל במקום שתוכנן לפעול", לא כהערכת דיוק ייצור.
5.1 קורפוס
400 הפעלות, 3,968 פניות, מתוזרע ודטרמיניסטי. כל פנייה היא גוף בקשה מלא של chat-completions הנושא את ההיסטוריה המצטברת, מערך הגדרות של שני כלים, ו-prompt מערכת ריאלי — הצורה שבה סוכן קידוד שולח בפועל. חמישה ארכיטיפים, כל אחד נושא תווית אמת-קרקע:
טבלה 3.הרכב הקורפוס. "Needs strong" הוא אמת היסוד המשמשת לציוני הדיוק והכיסוי.
תורות קשים נושאים, בנוסף לפרוזה, dump מודבק של goroutine או קטע מקור בן 3–8 קילו-בייט, כי זה מה שתור איתור באגים קשה אמיתי מכיל. הפרט הזה התברר כבעל חשיבות עצומה — ראה סעיף 6.2.
5.2 מודל עלות
העלויות מחושבות ממחירי המחירון שפורסמו עם סמנטיקת מטמון לכל ספק; המודל מוצג במלואו כדי שאפשר יהיה לחלוק עליו.
טבלה 4. פרמטרים של מודל העלות. המחירים בדולר לכל 1M טוקנים, לפי רשימת אוגוסט 2026.
פנייה חמה עולה 0.1·p_in·prefix + write·p_in·delta; פנייה קרה עולה write·p_in·prompt. פנייה 1 היא תמיד כתיבת מטמון מלאה. פניית מעבר הדרג תחת מדיניות ההסלמה מחויבת במפורש כקרה, כך שהמנגנון משלם על פסילת המטמון שלו עצמו.
האיכות מדווחת ככיסוי פניות קשות — החלק של הפניות הקשות על-פי אמת-הבסיס שטופלו בפועל על-ידי המודל החזק — ולא כנתון דיוק. לא ביצענו הסקה במעלה-הזרם, ולכן אנו נמנעים מלהמציא נתוני דיוק.
6 תוצאות
6.1 המנגנון יורה במקום שבו תוכנן לירות
טבלה 5. תוצאות הסלמה לפי ארכיטיפ, מצב אוטומטי, קנרי 100 %, T2 = 0.70 (ברירת מחדל שנשלחה).
אפס תוצאות חיוביות שגויות ב-200 הסשנים הקלים, כולל 60 הארוכים, שבהם סקורר תמליל מלא היה גולש לרצועה הקשה. מחלקות הטריגר מתמחות בצורה נקייה וללא חפיפה: difficulty תופס עבודה עתירת חשיבה, strikes תופסים לולאות כישלון. שים לב שציון השיא של failure_loop הוא 0.262 — שער ה-difficulty אף פעם לא רואה את הסשנים האלה כלל. סוכן שתקוע בלולאת שגיאות קומפילציה אינו מייצר פרוזה דחוסה ברמזי חשיבה; הוא מייצר את אותה הנחיה קצרה עם stack trace שונה. ללא Class C strikes, כל אחד מאותם 60 סשנים היה נגרס על המודל הזול ללא הגבלת זמן.

איור 3. כאשר סשנים מסלימים, חלק לפי טריגר. הסלמות המונעות על ידי סטרייקים מרוכזות בחדות (תור 4, התור הראשון שבו שתי סטרייקים יכולים להצטבר בתוך חלון הדעיכה); הסלמות המונעות על ידי קושי מתפרסות על פני תורים 2–11 בעקבות התפלגות ההתחלה של הקורפוס. כלל הרצף של שני תורים רצופים פירושו שההסלמה המוקדמת ביותר האפשרית עקב קושי היא תור 2.
6.2 ממצא: השער שנשלח יושב על שפת צוק
הקורפוס הראשון שלנו הפיק אפס הסלמות המונעות מקושי. התורים הקשים — עמוסים במצבי מרוץ, אינווריאנטים, ניתוח מורכבות ואוצר מילים להוכחה — הגיעו לשיא של 0.658 מול שער של 0.70. הוספת עקבות המחסנית המודבקות, שתורי ניפוי שגיאות אמיתיים נושאים אותן בפועל, דחפה אותם ל-0.719. השער נחצה בפער של 0.019.

איור 4.לאן הולך תקציב הקושי בפועל, בממוצע על פני 855 תורות קשות ו-3,113 תורות קלות. תור קשה ריאלי מגיע ל-0.719 מתוך מקסימום דלתא תאורטי של 0.90. המונח CodeKeywordDensity תורם 0.069 מתוך התקציב שלו של 0.20 — הצפיפות הנמדדת היא 1.72 התאמות לכל 100 תווים מול תקרת רוויה של 5.0 — וה-0.10 של SystemPromptLogLen הוא אפס מבני במחלץ הדלתא. בערך שליש מהטווח הנומינלי של הציון אינו בר-השגה על ידי טקסט ריאלי.
סריקת הסף מאשרת שזו מצוקה, לא מדרון. על פני T2 מ-0.35 עד 0.65 התוצאה זהה — 200 מתוך 400 סשנים מסלימים, עם אפס פספוסים. בסף 0.70 ששוחרר הסיווג מתחיל לאבד סשנים; ב-0.75 הסלמה מונעת-קושי קורסת מ-122 סשנים ל-23.

איור 5. רגישות סף. כל הטווח 0.35–0.65 זהה מבחינה התנהגותית, מכיוון ששום טקסט דלתא ריאלי אינו נופל בו — התפלגות הציונים היא דו-מודית, כשפניות קלות מקובצות בסמוך ל-0.23 ופניות קשות בסמוך ל-0.72, ואין דבר ביניהן. ברירת המחדל המשולחת נמצאת בקצה העליון של המוד העליון.
השלכה הנדסית
T2 is calibrated for the full-transcript distribution the gated_adaptive bands were tuned on, and it is being reused as the delta extractor's threshold. The design document flags that the delta extractor “needs its own tuning”; this measurement quantifies how much. Either the delta gate needs a lower T2 of its own — anywhere in 0.45–0.60 buys identical behaviour with real margin — or the percentile-based threshold already scheduled for Phase 3 (“top X % of this router's recent traffic”) should land, which makes the escalation rate the operator's knob and sidesteps absolute calibration entirely.
6.3 עלות וכיסוי

איור 6. חמש מדיניויות על פני אותם 400 סשנים. משמאל: עלות לכל 1,000 סשנים (בסולם לוגריתמי). מימין: חלקם של תורות באמת קשות שטופלו על ידי המודל החזק.
טבלה 6. השוואת מדיניות. עלות לכל 1,000 הפעלות לפי המודל בטבלה 4.
כדאי להפריד בין שתי תוצאות. ראשית, דביקות סשן בלבד חוסכת 24% בבחירת מודל זהה (16.64 → 12.63) ו-35% על צמד המודלים המתקדמים (290.93 → 188.30). זהו כלכלת מטמון טהורה — אותם מודלים, אותו דבר בדיוק, רק ההיצמדות למפתח שונה. החיסכון גדול יותר על צמד המודלים המתקדמים מכיוון שפרמיית הכתיבה של 1.25× של Anthropic הופכת פניות קרות ליקרות באופן לא פרופורציונלי.
שנית, ההסלמה נוחתת במקום שבו מנגנון חילוץ צריך להיות: 45% מהעלות של שימוש תמידי במודל החזית עבור 67% מכיסוי הפניות הקשות שלו, כשהוא משרת את המודל החזק רק ב-21.4% מהפניות.
השליש החסר של הכיסוי אינו פגם; זהו מחירו של המחגר. כללי האימות שנותנים אפס חיוביים שגויים משמעם גם שהמנגנון אינו יכול לפעול בשלב הראשון של בעיה:
טבלה 7. זמן השהיה עד להסלמה — פניות קשות שטופלו במודל הזול לפני שמנגנון הראצ'ט מופעל.
שתי פניות הוא בדיוק מה שכלל רצף שתי הפניות הרצופות מגדיר, ופנייה אחת היא בדיוק מה ששתי תקיעות למחגר מגדירות. ההשהיה היא העיצוב, והיא אותו המאפיין שהפיק אפס תוצאות חיוביות שגויות. מי שרוצה חילוץ מהיר יותר — יש לו את כותרת Class A, שפועלת ב־n=1, וזו בדיוק הסיבה שפתח המילוט הידני שוחרר ראשון.
6.4 יחס הכותרת תלוי לחלוטין בתנועה שלך.
הקורפוס הוא קשה ב-50% מעצם בנייתו. תעבורת ראוטר אמיתית אינה כזו, והשוואת העלויות רגישה ביותר לכך. שקלול מחדש של העלויות הנמדדות לפי ארכיטיפ על פני טווח של שכיחויות של סשנים קשים:

איור 7.עלות לכל 1,000 הפעלות כפונקציה של כמה מהתעבורה שלך באמת זקוקה למודל החזק. התנהגות תוך-מחלקתית נשמרת בערכים הנמדדים; רק התמהיל משתנה.
טבלה 8.רגישות שכיחות, $ לכל 1,000 הפעלות.
בקצב ההסלמה היעד של מסמך העיצוב עצמו, שהוא ≤5 % מהסשנים, ההסלמה עולה 1.6× מהחשבון של הבריכה הזולה ו-12 % מהחשבון של הגבול. בתערובת הלחץ של 50 % זה עולה 6.7× מהחשבון של הבריכה הזולה. שני הדברים נכונים; הם עונים על שאלות שונות. הרלוונטי מבחינה תפעולית הוא הראשון, ולכן מכסת הנתח מוגדרת כברירת מחדל ל-20 % ולא ל“כבוי” — המכסה, לא דיוק ההדק, היא מה שבעצם מגבילה את החשבון.
6.5 המגבלות מחזיקות מעמד תחת התעללות עוינת
הרצנו מחדש את הקורפוס עם מנגנון מכסת השיתוף האמיתי — לא סטב, באקטים יומיים אמיתיים של Redis — תחת מודל האיום §8: כל לקוח שולח X-OrcaRouter-Tier: strong בכל פנייה.

איור 8. ניצול עוין של כותרות נגד מכסת החלק המוגבר של 20%. 20 הבקשות הראשונות אינן מוגבלות במכוון — רצפת ההתחממות מונעת את הקריאה של "הסלמה אחת מתוך 2" כ-50% ואת נעילת התכונה בנתב חדש — ולאחר מכן החלק מתכנס ונשמר. מצב סופי: 296 מתוך 1,439 בקשות נענו strong (20.6%), עם 1,143 בקשות מפורשות שנדחו ותועדו כאירועי denied_cap.
שארית החריגה של 0.6% היא ההתנהגות הרצויה של השוואת גדול-ממש על מונה עוקב מקורב, ומכסת ה-1 לכל פגישה מונעת מפגישות בודדות לצרוך את התקציב. כל סירוב נראה ללקוח בכותרת התשובה X-Orca-Session-Tier: base; reason=denied:share_cap ולמפעיל בטבלת הביקורת — אסקלציה מדוכאת אף פעם אינה שקטה.
7 מה היינו משנים
תן למחלץ הדלתא סף משלו. שימוש חוזר ב-T2 של התמליל המלא מותיר מרווח של 0.019 (§6.2). T2 ספציפי לדלתא בטווח 0.45–0.60 זהה התנהגותית על הקורפוס הזה עם מרווח ראש גדול בשני סדרי גודל. עבודת סף האחוזונים שכבר תוכננה מכסה זאת והיא התיקון הטוב יותר.
אל תניחו למונח צפיפות הקוד להישאר דקורטיבי. הוא תורם 0.069 מתוך התקציב של 0.20 על הטקסט הריאלי הצפוף ביותר שיכולנו לבנות, משום שמכסת הרוויה שלו של 5 התאמות ל-100 תווים מרמזת על מילת קוד אחת בערך כל עשרים תווים. או שתקבעו לו מכסה חדשה לפי התפלגות ייצור נמדדת, או שתחלקו מחדש את משקלו.
Class C הוא סוס העבודה של תעבורת הסוכנים, והיא הכי פחות מפותחת. אוכלוסיית ה-failure_loop בלתי נראית לשער הקושי (שיא של 0.262) ונתפסת כולה על ידי strikes. הפעלות סוכנים נכשלות בלולאה, לא בכך שהן נעשות קשות יותר מבחינה מילונית. היצרנים הנותרים בצד התגובה — וקרס לכידת הסטרימינג של Gemini המקורי, שעדיין חסר — שווים יותר מאשר כוונון קושי נוסף.
פרסמו את חביון ההסלמה. שני סבבי עבודה קשה על המודל הזול הם המחיר הכנה של מחגר מאמת, ומפעילים צריכים לראות זאת בלוח האנליטיקה לצד הדיוק, ולא לגלות זאת.
8 מגבלות
הקורפוס הוא סינתטי. הוא נבנה כדי להפריד בצורה נקייה, כך שתוצאה של אפס חיוביים שגויים מאפיינת את הסגוליות של המנגנון על קלט הניתן להפרדה, ולא את הדיוק שלו על תעבורת ייצור. מספר הדיוק האמיתי יכול להגיע רק מעבודת התיוג במצב הצל שהתכנון מפרט — צינור הטריגר המלא רץ, לא מנתב דבר, והחלטות מתויגות למפרע — עם שער עלייה לאוויר בדיוק תיוג של ≥70%.
מודל העלויות מניח 500 אסימוני פלט קבועים לכל פנייה, וזה מסתיר אפקט אמיתי: מודלי הקצה פולטים יותר אסימוני חשיבה, ולכן פרמיית הקצה האמיתית מוערכת בחסר. המודל גם ממדל חום מטמון ברמת בקשה כחלוקה אחידה של 1/N על פני חריצי מפתח; מאגר משוקלל היה משתמש במדד הרפינדאל Σw², וערוץ בעל מפתח יחיד לא היה מראה שום יתרון מטמון לזיקת סשן בשכבת הערוץ — אם כי עיגון שכבת המודל עדיין חשוב לאסטרטגיות אדפטיביות.
לא הרצנו הסקת מסקנות במעלה הזרם, לפיכך אין כל טענה לגבי דיוק או הצלחה במשימה. כיסוי פניות קשות הוא מדד חלופי לאיכות, והוא מניח שהמודל החזק אכן טוב יותר בפניות אלה — סביר עבור האב-טיפוסים שנבנו, אך לא אומת כאן.
לבסוף, מדד זה מתייחס למימוש של שער אחד. מצב הכשל של נעילה בסיבוב הראשון אמור להכליל לכל נתב מודע למטמון הנועל הפעלות, אך המספרים הספציפיים הם תכונות של הספים הללו, המשקלים הללו והמחירים הללו.
9 עבודה קשורה
ניתוב ברמת בקשה מכוסה היטב. FrugalGPTsup>[2]/sup> הציג את מפל ה-LLM — שליחת שאילתה למודל הזול, מתן ציון לתשובה, והסלמה בביטחון נמוך — ודיווח על הפחתת עלויות של עד 98% בדיוק זהה. RouteLLMsup>[1]/sup> מאמן נתבים על נתוני העדפות מ-Chatbot Arena ומדווח על 95% מאיכות GPT-4 עם 14% קריאות למודל חזק, ועם נתבים שמועברים בין זוגות מודלים ללא אימון מחדש. RouterArenasup>[3]/sup> מספק את התשתית החסרה להערכה: 8,400 שאילתות על פני תחומים ורמות קושי, שמקבלות ציונים על דיוק, עלות, אופטימליות ניתוב, עמידות ותקורת הנתב.
מה שאף אחד מאלה לא מתייחס אליו הוא השיחה כיחידת הניתוב. מפל מסלים בקשה ושוכח; הפנייה הבאה מריצה שוב את אותו מודל זול על אותה משימה שכעת ידועה כקשה. נתב שאומן על העדפות מעניק ציון לשאילתה, לא למסלול. הפער שהדוח הזה מתייחס אליו הוא מה נתב צריך לזכור בין פניות, כמה זמן, ומה צריך להיות רשאי לשנות את דעתו — שאלה שהופכת לדחופה רק כאשר מטמון הנחיות הופך את השכחה ליקרה.
OrcaRouter כולל רתמת RouterArena מובנית (eval/) שמבצעת בדיקות ביצועים על חמשת האסטרטגיות ברמת הבקשה — cheapest, quality, balanced, linucb, gated_adaptive — מול מערך הנתונים הפתוח, מבלי לשנות את המאגר העליון (upstream). המנגנון ברמת הסשן המתואר כאן הוא אורתוגונלי לחמשת האסטרטגיות ומשתלב עם כולן.
10 סיכום
שמירת ה-Prompt במטמון שינתה את הכלכלה של ניתוב LLM בדרך שספרות הניתוב עדיין לא השיגה. ברגע שהמשכיות שווה הנחה של פי 10 על רוב טוקני הקלט שלך, נתב חייב לנעול — וברגע שהוא נועל, הוא מקבל את ההחלטה בתור שבו הוא יודע הכי פחות, וחי עם ההחלטה הזו לכל אורך השיחה. ניתוב ברמת בקשה אינו סובל מהבעיה הזאת ומשלם על כך בהחטאות מטמון; הערכה מחדש נאיבית לכל תור מחזירה את ההחטאות ומוסיפה עליהן ארטפקט של הטיית אורך.
דביקות מדורגת פותרת את זה על ידי הפרדה בין שני דברים שנראים כמו אחד: איזה מודל משרת את הסשן הזה (הסיכה, יציבה בתוך דרג) ולאיזו דרג שייך הסשן הזה (פיסת מצב קטנה, מוגבלת, מאומתת ופגת תוקף). בשחזור שלנו, הפרדה זו משחזרת 87% מהסשנים שהקושי שלהם אינו ניתן לזיהוי בתור 1, עם אפס תוצאות חיוביות שגויות על 200 סשנים קלים, בעלות של 45% מעלות תמיד-חזית — ומחזיקה במכסה הוצאה של 20% נגד לקוחות שמנסים באופן פעיל להביס אותה.
החולשות הכנות של המנגנון הן כיול, לא ארכיטקטורה: {{1}}שער קושי שנעשה בו שימוש חוזר מהתפלגות שלא כווננה עבורו{{/1}}, {{2}}מונח תכונה שאינו יכול להגיע לתקציב שלו{{/2}}, ו-{{3}}שני תורות של חביון הצלה בלתי נמנע{{/3}}. אלה ניתנות לפתרון. הטענה הארכיטקטונית — ש{{4}}זיכרון ההסלמה חייב להיות נפרד מהפין{{/4}}, ש{{5}}שום אות עמום אינו יכול להסלים לבדו{{/5}}, וש{{6}}המכסים חייבים לחול על הבקשה המפורשת של הלקוח עצמו, משום שהלקוח מחזיק בטוקן{{/6}} — היא החלק שהיינו שומרים.
11 מקורות
1. LMSYS Org. RouteLLM: מסגרת קוד פתוח לניתוב LLM חסכוני. a href="https://www.lmsys.org/blog/2024-07-01-routellm/">u>lmsys.org/blog/2024-07-01-routellm//u>/a> · קוד: a href="https://github.com/lm-sys/RouteLLM">u>github.com/lm-sys/RouteLLM/u>/a>
2. Chen, Zaharia & Zou. FrugalGPT: כיצד להשתמש במודלי שפה גדולים תוך הפחתת עלויות ושיפור ביצועים. arXiv:2305.05176. a href="https://arxiv.org/abs/2305.05176">u>arxiv.org/abs/2305.05176/u>/a>
3. Lu, Liu, Yuan, Cui, Zhang, Liu & Xing. RouterArena: פלטפורמה פתוחה להשוואה מקיפה של נתבי LLM. arXiv:2510.00202. a href="https://arxiv.org/abs/2510.00202">u>arxiv.org/abs/2510.00202/u>/a>
4. OpenAI. מטמון הנחיות ב-API. a href="https://openai.com/index/api-prompt-caching/">u>openai.com/index/api-prompt-caching//u>/a> — מטמון אוטומטי, קידומת של ≥1,024 טוקנים במרווחים של 128 טוקנים, פינוי לאחר 5–10 דקות של חוסר פעילות, עד שעה; הנחה על קלט שמור במטמון לפי דרגת המודל. תמחור: a href="https://openai.com/api/pricing/">u>openai.com/api/pricing//u>/a>
5. Anthropic. שמירת הנחיות במטמון. a href="https://platform.claude.com/docs/en/build-with-claude/prompt-caching">u>platform.claude.com/docs/en/build-with-claude/prompt-caching/u>/a> — קריאות מטמון מתומחרות ב-0.1× מהקלט הבסיסי, כתיבות ב-1.25× (TTL של 5 דקות) או 2× (TTL של שעה), והמטמון מתרענן בעת שימוש. תמחור: a href="https://www.anthropic.com/pricing">u>anthropic.com/pricing/u>/a>
6. DeepSeek. DeepSeek API מציגה מטמון הקשר (Context Caching) על הדיסק. a href="https://api-docs.deepseek.com/news/news0802/">u>api-docs.deepseek.com/news/news0802//u>/a> — אוטומטי, מחויב לפי פגיעות מטמון בפועל, הפחתה בסדר גודל בפגיעה.
7. Google. מטמון הקשר של Gemini API. a href="https://ai.google.dev/gemini-api/docs/caching">u>ai.google.dev/gemini-api/docs/caching/u>/a> — מטמון מרומז ומפורש עם TTL במחיר אחסון.
8. קוד המקור של OrcaRouter, במאגר זה: service/session_affinity.go (הצמדות, TTLs, מפתחות בהיקף שכבה) · service/session_escalation.go (המנוע) · service/model_router.go:1374 (selectByStrategy: צמצום שכבות לפני קריאת ההצמדה) · service/model_router_difficulty.go (משקלים ומגבלות) · service/model_router_delta.go (מחלץ דלתא) · service/escalation_strikes.go (יצרנים בצד הבקשה) · service/escalation_caps.go (מגבלות שיתוף) · docs/features/frontier-escalation.md (עיצוב, סבבי סקירה 1–4).
שחזוריות. רתמת המדידה היא מבחן Go בחבילת השירות המפעיל את ResolveEscalation / CommitEscalationDecision מול miniredis, בתוספת צינור ניתוח וגרפים ב-Python. יצירת הקורפוס מזורעת (rand.NewSource(20260814)) וההרצה המלאה היא דטרמיניסטית: 400 סשנים, 3,968 פניות, שלושה ניסויים (הרצה חוזרת ראשית, הרצת מגבלה אדוורסרית, סריקת סף בת 9 נקודות). הגרפים משתמשים בפלטת צבעים קטגורית מאומתת ל-CVD; כל גרף מזווג עם הטבלה הבסיסית שלו. לא ניגשנו לנתוני ייצור, ואף חלק מהניתוח הזה לא הועלה למאגר.
השוואות במאמר הזה1
זוהה מתוך המאמר הזה · בנצ'מרקים: Artificial Analysis · מתעדכן יומית
