אל תתחתן עם המודל שלך
ניתוב LLM, להיט לוהט כרגע
רוב צוותי ההנדסה בוחרים מודל שפה ונשארים איתו. ספק אחד, מודל אחד, כל המשימות. זה כמו לשכור אדם אחד שיעשה את הקידוד, הכתיבה השיווקית והמיסים שלך רק כי הוא היה טוב בראיון הראשון.
בכל רגע נתון, מודל אחד טוב יותר בקוד, אחר טוב יותר בהקשר ארוך ומבולגן, ואחר הוא סוס העבודה הזול והמשעמם ביותר לסיווג. השמות משתנים. צורת הבעיה לא. התייחסות למודל אחד כאילו הוא מצטיין בכל דבר פירושה שאתה או משלם יותר מדי על משימות פשוטות או מקבל תוצאות נחותות במשימות מתמחות.
ראיתי צוות שורף אלפי דולרים על ניתוח סנטימנט באמצעות מודל שעולה 30 דולר למיליון טוקנים, כשלמודל של 0.50 דולר היה עושה את העבודה באותה מידה. עיצוב JSON פשוט, משימות סיווג בסיסיות – הכל עבר דרך הספק הפרימיום שלהם. הדבר היחיד שהתחמם היה החשבון של AWS.
יש דרך טובה יותר, והיא לא מסובכת במיוחד.
האצלה על פני התמסרות
מה אם תוכל לנתב בקשות למודל שהכי מתאים למשימה הספציפית הזו? השתמש במפלצת הכוח היקרה שלך לדברים הקשים, אבל הורד את הניתוח והעיצוב הפשוטים למשהו זול יותר. קבל את היתרונות של ספקים מרובים בלי צורך לנהל אותם ידנית בבסיס הקוד שלך.
Mastra מאפשרת לך לבנות בדיוק מערכת כזו. אתה מגדיר סוכנים מומחים לסוגי עבודה שונים, ואז יוצר סוכן נתב שמבין איזה מומחה צריך לטפל בכל בקשה. מזהי המודלים להלן הם דוגמאות, לא טבלת דירוג. החלף אותם במודלים הנוכחיים שמנצחים בהערכות שלך ומתאימים לתקציב שלך.
תחשוב על זה ככה: יש לך שלושה מומחים בצוות.
import { Mastra } from '@mastra/core';import { Agent } from '@mastra/core/agent';import { openai } from '@ai-sdk/openai';import { anthropic } from '@ai-sdk/anthropic';import { google } from '@ai-sdk/google';
export const claudeAgent = new Agent({ id: 'claude-agent', instructions: 'You are an expert engineer. Write bugs? You are fired.', model: anthropic(process.env.CODE_MODEL ?? 'claude-sonnet-4-5'),});
export const geminiAgent = new Agent({ id: 'gemini-agent', instructions: 'You are a creative writer. Be weird.', model: google(process.env.LONG_CONTEXT_MODEL ?? 'gemini-3-pro-preview'),});
export const gptAgent = new Agent({ id: 'gpt-agent', instructions: 'You are a helpful assistant. Be boring.', model: openai(process.env.GENERAL_MODEL ?? 'gpt-5.2'),});לכל אחד יש תפקיד. סוכן הקוד שלך צריך להיות המודל שעובר את הערכות הקוד הספציפיות ל-repo שלך. סוכן ההקשר הארוך שלך צריך להיות זה ששורד את המסמכים האמיתיים שלך בלי להפוך את האמצע למרק. הסוכן הכללי שלך צריך להיות זול, אמין ומשעמם בצורה הטובה ביותר.
כאן זה נהיה מעניין. אתה מוסיף נתב שפועל כפרוקסי חכם:
export const routerAgent = new Agent({ id: 'router-agent', name: 'The Boss', instructions: `You are an intelligent router. - Coding -> Claude - Poetry -> Gemini - Facts -> GPT
Do not do the work yourself. Delegate.`, model: openai(process.env.ROUTER_MODEL ?? 'gpt-5-mini'), // Use a cheap model for routing! agents: { claudeAgent, geminiAgent, gptAgent, },});
export const mastra = new Mastra({ agents: { routerAgent, claudeAgent, geminiAgent, gptAgent },});הנתב עצמו רץ על מודל קל משקל כי הוא רק מקבל החלטות לאן לנתב תעבורה. אתה לא משלם תעריפי פרימיום רק כדי להחליט איזה מודל פרימיום אחר להשתמש. גם את זה כדאי למדוד; נתב גרוע בשקט הופך חיסכון לניתובים שגויים.
כשמישהו מבקש מימוש של bubble sort, הנתב מזהה שזו עבודת קוד ומעביר אותה למומחה הקוד שלך. בקשת כתיבה יוצרתית? זה הולך למודל שבחרת לקול ולטווח. שאלה עובדתית על אירועים היסטוריים? נתב אותה לסוכן הכללי, רצוי עם שליפה כשטריות או ציטוט חשובים.
היתרונות המעשיים
יעילות עלות חשובה יותר ממה שאתה חושב. מודל ניתוב קטן שמקבל החלטות האצלה עולה שבריר מהרצת כל בקשה דרך הספק היקר ביותר שלך. לאורך זמן, במיוחד בקנה מידה, זה מצטבר לכסף אמיתי. אתה משלם על האינטליגנציה הכבדה רק כשאתה באמת צריך אותה.
האיכות משתפרת כשאתה מתאים מודלים למשימות. המנצח משתנה מחודש לחודש, ממשימה למשימה ומצורת פרומפט. לכן שכבת הניתוב צריכה להתבסס על ההערכות שלך, לא על איזה מודל היה להיט בטוויטר בשבוע שכתבת את האינטגרציה.
עמידות הופכת לתועלת צדדית. כש-OpenAI חווה אחת מההשבתות התקופתיות שלה (וזה קורה), הנתב שלך יכול להפנות תעבורה לספקים אחרים. אתה לא תקוע בלי יכולת לפעול ומחכה ש-API ספציפי יחזור לאוויר.
זה לא עניין של להיות חכם סתם בשביל הכיף. זה על בניית מערכות שהגיוניות גם מבחינה פיננסית וגם מבחינה טכנית. לא היית משתמש באותו פטיש לכל משימת בנייה, וכנראה שלא כדאי להשתמש באותו מודל שפה לכל משימת AI.
היופי בגישה הזו הוא שקוד האפליקציה שלך לא משתנה. אתה עדיין פשוט קורא לסוכן הנתב שלך. המורכבות של ההחלטה באיזה מודל להשתמש לאיזו משימה חיה במקום אחד, מוגדרת פעם אחת, במקום מפוזרת בכל בסיס הקוד שלך בשלל לוגיקה תנאית.
משאבים
קראו את הסדרה
- ניתוב LLM (פוסט זה)
- אבטחה ומעקות בטיחות
- אינטגרציות MCP וכלים
- זרימות עבודה וזיכרון