Models

בחירת מודל: מחרוזת provider:model

הדרך הפשוטה ביותר לבחור מודל היא מחרוזת בפורמט provider:model, בדיוק כפי שראינו בדוגמת ה-createAgent בפרק הקודם ("anthropic:claude-sonnet-5") — LangChain מפענח את המחרוזת, יוצר ברקע instance של המודל המתאים, ומחבר אותו ל-agent.

הקיצור הזה מספיק לרוב המקרים: אין צורך לייבא SDK ספציפי לספק, ואין צורך לנהל בעצמכם client נפרד לכל ספק — LangChain עושה זאת עבורכם מאחורי הקלעים.

החלפת ספק בלי לשנות קוד

כיוון שה-agent מקבל רק את המחרוזת (או instance מודל), מעבר מספק אחד לאחר — למשל מ-Anthropic ל-OpenAI — הוא לרוב שינוי של שורה אחת, בלי לגעת בלוגיקת ה-agent, בכלים, או בקוד שמריץ אותו.

זה שימושי במיוחד בזמן פיתוח והשוואת מודלים: אפשר להריץ את אותו agent מול כמה ספקים ולהשוות תשובות, latency ועלות, בלי לשכתב את הקוד בכל פעם.

קונפיגורציה של מודל: temperature, max tokens ועוד

כשצריך שליטה מעבר לבחירת מודל בלבד — למשל temperature נמוך לתשובות עקביות, או הגבלת maxTokens — יוצרים instance מודל מפורש עם initChatModel, ומעבירים אותו ל-createAgent במקום מחרוזת.

TypeScript
import { initChatModel } from "langchain/chat_models";

const model = await initChatModel("anthropic:claude-sonnet-5", {
  temperature: 0.2,
  maxTokens: 1024,
});

const agent = createAgent({ model, tools: [getWeather] });

בחירת מודל דינמית בזמן ריצה

לפעמים רוצים agent שיבחר מודל שונה בהתאם להקשר — למשל מודל קל וזול לשאלות פשוטות, ומודל חזק יותר לשאלות מורכבות. LangChain תומך בהעברת פונקציה במקום ערך קבוע לשדה model, כך שהבחירה מתבצעת בזמן ריצה על סמך מצב השיחה.

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

TypeScript
const agent = createAgent({
  model: ({ messages }) => {
    const lastMessage = messages.at(-1)?.content ?? "";
    const isSimpleQuery = lastMessage.length < 100;

    return isSimpleQuery
      ? "anthropic:claude-haiku-4-5"
      : "anthropic:claude-sonnet-5";
  },
  tools: [getWeather],
});

סיכום: איך לבחור מודל בפרקטיקה

להתחלה ולפרוטוטייפ מהיר — מחרוזת provider:model מספיקה. כשצריך שליטה על פרמטרים — עוברים ל-instance מפורש עם initChatModel. וכשהעלות או ה-latency הופכים לשיקול משמעותי בהיקף production — שווה לשקול בחירה דינמית לפי סוג הבקשה.

בפרק הבא נעבור לצד השני של ה-createAgent — tools — ונראה איך להגדיר כלים איכותיים שהמודל, מכל ספק שנבחר, יידע להשתמש בהם נכון.