מבוא ל-LangChain
מה זה LangChain ולמה בכלל צריך פריימוורק
LangChain הוא פריימוורק בקוד פתוח לבניית אפליקציות מבוססות LLMרשת נוירונים ענקית, עם מיליארדי פרמטרים, שאומנה לחזות מהו הטוקן הבא ברצף טקסט. מתוך LLM, יסודות ה-AI., ובפרט agentsLLM שמופעל בלולאה, עם מטרה וסט כלים, ובכל סיבוב מחליט אם להפעיל כלי נוסף או לסיים ולהחזיר תשובה. מתוך AI Agents, Agents והלולאה האגנטית. — הוא לא מודל שפה בפני עצמו, אלא שכבת תשתית שמתווכת בין הקוד שלכם לבין ספק המודל, הכלים, והלוגיקה שמריצה את הלולאה האגנטיתהמחזור של סוכן: תצפית, תכנון ופעולה, כשה-harness מבצע את הכלי ומוסיף את התוצאה לקונטקסט לפני הסיבוב הבא. מתוך AI Agents, Agents והלולאה האגנטית..
כבר ראינו בנושא ה-LLM איך קוראים ל-API של מודל שפה ישירות מקוד (system/user messages, tool calls, טיפול בשגיאות) — LangChain לוקח את כל אותם רכיבים חוזרים ועוטף אותם בממשק אחיד, כדי שלא תצטרכו לכתוב מחדש את אותה לולאת tool-calling, ניהול היסטוריה וטיפול בשגיאות בכל פרויקט מחדש.
LangChain לעומת קריאה ישירה ל-API
קריאה ישירה ל-SDK של ספק (כמו @anthropic-ai/sdk) עובדת מצוין לשימוש חד-פעמי, אבל ברגע שרוצים agentLLM שמופעל בלולאה, עם מטרה וסט כלים, ובכל סיבוב מחליט אם להפעיל כלי נוסף או לסיים ולהחזיר תשובה. מתוך AI Agents, Agents והלולאה האגנטית. אמיתי — עם tool callingמנגנון שבו המודל מחליט בעצמו אם ומתי להפעיל פונקציה בקוד שלכם, מקבל את התוצאה כ-context ועונה על בסיסה. מתוך LLM, יסודות ה-AI., ניהול context, retries, streamingהצגת התקדמות בזמן אמת בזמן שהסוכן עובד, במקום מסך ריק עד שהכול מסתיים. מתוך LangChain, Streaming. ותמיכה בכמה ספקי מודלים במקביל — צריך לבנות את כל התשתית הזו בעצמכם, ולתחזק אותה בנפרד לכל ספק.
LangChainפריימוורק בקוד פתוח לבניית אפליקציות מבוססות LLM ו-agents, שעוטף רכיבים חוזרים בממשק אחיד. מתוך LangChain, מבוא ל-LangChain. מספק ממשק אחיד (מחרוזת model כמו "anthropic:claude-sonnet-5" או "openai:gpt-4o") שמאפשר להחליף ספק מודל כמעט בלי לשנות קוד, וכולל מהקופסה את מנגנוני ה-retry, streaming ו-tool calling שאחרת היינו צריכים לבנות ידנית.
LangChain Core מול LangGraph
לאקוסיסטם של LangChainפריימוורק בקוד פתוח לבניית אפליקציות מבוססות LLM ו-agents, שעוטף רכיבים חוזרים בממשק אחיד. מתוך LangChain, מבוא ל-LangChain. שני חלקים משלימים: LangChain עצמו נותן את אבני הבניין ברמה גבוהה — מודלים, כלים, ופונקציה מרכזית בשם createAgent שמרכיבה מהם agentLLM שמופעל בלולאה, עם מטרה וסט כלים, ובכל סיבוב מחליט אם להפעיל כלי נוסף או לסיים ולהחזיר תשובה. מתוך AI Agents, Agents והלולאה האגנטית. שלם בקריאה אחת; LangGraph, לעומת זאת, הוא שכבה נמוכה יותר שמאפשרת להגדיר את זרימת הבקרה (control flow) כגרף מפורש — שימושי כשצריך לוגיקה מותאמת אישית שחורגת מלולאת agent סטנדרטית.
בנושא הזה נתמקד ב-LangChain וב-createAgent — הדרך המהירה והנפוצה ביותר להרכיב agent עובד. ברגע שמכירים את אבני הבניין האלה, המעבר ל-LangGraph (במידת הצורך) הוא הרחבה טבעית ולא התחלה מאפס.
בונים על מה שכבר למדנו ב-AI Agents
בנושא AI Agents למדנו את המושגים agentLLM שמופעל בלולאה, עם מטרה וסט כלים, ובכל סיבוב מחליט אם להפעיל כלי נוסף או לסיים ולהחזיר תשובה. מתוך AI Agents, Agents והלולאה האגנטית., subagentסוכן שהסוכן הראשי מפעיל לחלק מוגדר מהמשימה, עם קונטקסט נפרד משלו; מבחינת ההורה זו עוד קריאת כלי. מתוך AI Agents, Subagents — האצלת משימות., harnessהתוכנה שמריצה את הלולאה: שולחת את הקונטקסט למודל, מבצעת (או מסרבת לבצע) את מה שביקש, ומחזירה את התוצאה. מתוך AI Agents, מבוא לאקוסיסטם: מה יש מסביב ל-LLM., skillחבילת הוראות עבודה למשימה מסוג ידוע: לא פעולה בודדת כמו tool, אלא תהליך שלם עם שלבים וכללים. מתוך AI Agents, Skills — יכולות ארוזות מראש. ו-tool ברמה עקרונית, בלי תלות בפריימוורק ספציפי — ובפרט את הרעיון שה-harness הוא השכבה שעוטפת את המודל: system prompt, כלים זמינים, ומידלוור שקובע איך הכול מתנהג יחד (ראו פרק ה-Harness בנושא AI Agents).
LangChainפריימוורק בקוד פתוח לבניית אפליקציות מבוססות LLM ו-agents, שעוטף רכיבים חוזרים בממשק אחיד. מתוך LangChain, מבוא ל-LangChain. הוא בדיוק מימוש קונקרטי של אותו harness: כשקוראים ל-createAgent ומעבירים לו model, tools ו-middlewareהמנגנון ב-LangChain שמאפשר להתערב בלולאה האגנטית עצמה; המימוש הקונקרטי של ה-harness. מתוך LangChain, Middleware., בפועל בונים את אותו "הארנס" שכבר הכרנו — הפעם כאובייקט אמיתי בקוד, לא רק כמושג. כל מה שנלמד בפרקים הבאים על models, tools, memoryאחסון חיצוני לקונטקסט, כמו קובץ, מסד נתונים או אינדקס וקטורי, שהסוכן כותב אליו וקורא ממנו ב-session חדש. מתוך AI Agents, Memory — מה שורד מעבר לשיחה. ו-middleware הוא מימוש ישיר של המפה שכבר ראינו שם.
מה נלמד בהמשך הנושא
בפרק הבא נבנה agentLLM שמופעל בלולאה, עם מטרה וסט כלים, ובכל סיבוב מחליט אם להפעיל כלי נוסף או לסיים ולהחזיר תשובה. מתוך AI Agents, Agents והלולאה האגנטית. ראשון עם createAgent ונריץ אותו בפועל. אחר כך נעבור פרק אחר פרק על models, tools, structured outputסכימה שמתארת את צורת התשובה הסופית, כך שה-agent מחזיר אובייקט שתואם לה ולא רק טקסט חופשי. מתוך LangChain, Structured Output., streamingהצגת התקדמות בזמן אמת בזמן שהסוכן עובד, במקום מסך ריק עד שהכול מסתיים. מתוך LangChain, Streaming., memoryאחסון חיצוני לקונטקסט, כמו קובץ, מסד נתונים או אינדקס וקטורי, שהסוכן כותב אליו וקורא ממנו ב-session חדש. מתוך AI Agents, Memory — מה שורד מעבר לשיחה., middlewareהמנגנון ב-LangChain שמאפשר להתערב בלולאה האגנטית עצמה; המימוש הקונקרטי של ה-harness. מתוך LangChain, Middleware., מערכות רב-סוכניות (multi-agent) ו-Deep Agentsהרכבה מוכנה מראש של middleware למשימות ארוכות: תכנון, האצלה לתת-סוכנים וגישה לסביבת עבודה. מתוך LangChain, Multi-Agent Systems & Deep Agents., ונסיים בפרק על תצפית (observability) עם LangSmithכלי התצפית הרשמי של LangChain, ששולח כל הרצה של agent כ-trace מלא בלי לשנות את הקוד. מתוך LangChain, Observability & Production. והרצה בסביבת production.
כל הדוגמאות בנושא הזה כתובות ב-JavaScript/TypeScript, בהתאם לתיעוד הרשמי של LangChainפריימוורק בקוד פתוח לבניית אפליקציות מבוססות LLM ו-agents, שעוטף רכיבים חוזרים בממשק אחיד. מתוך LangChain, מבוא ל-LangChain..
שאלות נפוצות
האם LangChain קשור לספק מודלים מסוים?
לא. LangChain הוא שכבת תשתית שעובדת מול ספקים רבים דרך אותו ממשק, וזה בדיוק היתרון של מחרוזת ה-provider:model. המודל עצמו רץ אצל הספק שבחרתם, ו-LangChain רק מתווך את הקריאות אליו ומריץ סביבן את הלולאה.
האם יש LangChain גם ב-Python?
כן. LangChain קיים גם ב-Python וגם ב-JavaScript/TypeScript, והמושגים זהים: agents, tools, memory ו-middleware. שמות פונקציות ופרטי API עשויים להיות שונים בין השפות, ולכן כשעובדים ב-Python כדאי להיעזר בתיעוד של אותה שפה ולא להעתיק קוד מהדוגמאות כאן.
מתי כדאי להתחיל ישר עם LangGraph?
כשכבר ברור שהזרימה שאתם צריכים היא לא לולאת agent רגילה — למשל תהליך עם שלבים קבועים והסתעפויות שאתם רוצים לשלוט בהן במפורש, או כמה סוכנים עם מעברים מוגדרים ביניהם. ברוב המקרים עדיף להתחיל עם createAgent ולעבור ל-LangGraph רק כשנתקלים במגבלה, כי המעבר הוא הרחבה ולא שכתוב.