|
gil sapir
Getting your Trinity Audio player ready...
|
שלוש ערכות הפיתוח שרוב הצוותים שוקלים היום לבניית סוכנים לא מתחרות על אותו דבר. כל אחת נבנתה סביב פרימיטיב אחר, וההבדל ביניהן הוא לא רשימת תכונות אלא צורת העבודה שהן מתאימות לה.
הניתוח שעליו מבוססת הסקירה הזאת פורסם החודש על ידי אנובהאב בפרסום Data Science Collective. הוספנו לו אימות מול התיעוד הרשמי, ובנקודה אחת מרכזית התיעוד סותר את המאמר. נגיע לזה.
הפרימיטיב של כל אחת
LangGraph בנויה סביב גרף. מגדירים סכמת מצב, האובייקט המוקלד הזה זורם דרך הצמתים מההתחלה עד הסוף, וצ'קפוינטר שומר אותו בכל שלב. לפי הניתוח, LangChain 1.0 הגיעה לזמינות כללית ב-22 באוקטובר 2025, והקריאה הסטנדרטית create_agent שם היא עטיפה מעל אותו מנוע גרף. הוויכוח הישן על LangChain מול LangGraph נסגר.
ה-Agents SDK של OpenAI בנויה סביב מסירה. היחידה האטומית היא סוכן שמעביר משימה לסוכן אחר. הערכה בנויה מתשעה אבני בניין, בהן Agents, Handoffs, Tools, Guardrails, Sessions ו-Realtime. MCP הוא אזרח מהשורה הראשונה, ויכולות הקול מגיעות מובנות.
ה-Agent SDK של אנתרופיק בנויה סביב מעטפת. התזה היא לתת לסוכן מחשב. הוא מקבל Bash, Read, Write, Edit, Glob ו-Grep, ומעליהם מערכת hooks במחזור חיים: PreToolUse, PostToolUse ו-Stop. סוכני משנה נפתחים עם חלון הקשר משלהם. אנתרופיק שינתה את השם מ-Claude Code SDK בסוף 2025, כדי לשקף שהמעטפת משמשת גם למחקר, לווידאו ולניהול ידע ולא רק לקוד.
אמונה מ-2025 שכדאי להיפטר ממנה
ההנחה שה-Agents SDK של OpenAI כופה עליכם מודלים של OpenAI מיושנת בערך בשנה ורבע. המאגר הרשמי תומך גם ב-100 מודלים אחרים דרך LiteLLM.
pip install "openai-agents[litellm]"
מרגע שההגבלה הזאת ירדה מהשולחן, שלוש הערכות מתחרות על הארכיטקטורה בלבד.
עבודה ראשונה: קול בזמן אמת
צוות שבונה סוכן קולי לתמיכה בחיובים עובד מול תקציב זמן קשיח, סביב חצי שנייה, וחייב לטפל בהפרעה של המשתמש באמצע משפט. לעטוף מודל טקסט בשכבת דיבור לטקסט וטקסט לדיבור זה איטי מדי, כי ההשהיה מצטברת בכל קפיצה ברשת.
כאן ה-Agents SDK של OpenAI מנצחת בלי תחרות. משפחת המודלים בזמן אמת מזרימה טוקנים של אודיו ישירות, והמחלקה RealtimeAgent עוטפת את זה. לא ל-LangGraph ולא ל-Agent SDK של אנתרופיק יש פרימיטיב מקביל באמצע 2026.
לבנות את זה באחת השתיים האחרות אומר לכתוב בעצמכם ניהול WebSocket, זיהוי פעילות קולית וסמנטיקה של הפרעות. זה כבר לא פרויקט סוכן, זה פרויקט מדיה.
עבודה שנייה: תהליך עסקי ארוך עם אישור אנושי
תהליך החזר כספי שצריך בדיקת הונאה, אישור של אדם מעל סכום מסוים, וכתיבה למסד נתונים בסוף. הוא חייב לשרוד קריסה ולהמתין שעות בלי לאבד הקשר.
זו הטריטוריה של LangGraph. הצירוף של צ'קפוינטרים עם הפרימיטיב interrupt נותן בדיוק את זרימת הבקרה הזאת: הצומת שמחכה לאישור כותב את המצב, המערכת יכולה להיכבות, וכעבור שעות קריאה עם Command(resume=...) ואותו מזהה שרשור ממשיכה מאותה נקודה בלי להריץ מחדש את בדיקת ההונאה.
מבחינת ראיות מהשטח, אובר מדווחת על חיסכון של כ-21,000 שעות פיתוח בכלים הפנימיים שלה Validator ו-AutoCover. שווה לדעת שהנתון פורסם על ידי לאנגצ'יין, החברה שמוכרת את המסגרת, בשיתוף אובר, ושהוא נמדד על פלטפורמה שמשרתת כ-5,000 מהנדסים. החיסכון הגיע בעיקר מייצור אוטומטי של בדיקות ולא מניהול שיחות עם לקוחות.
התיקון: מה שהמאמר אומר על עמידות, והמה שהתיעוד אומר
המאמר טוען ששחזור אמיתי אחרי קריסה מחייב את LangGraph Platform בתשלום או מימוש עצמאי של PostgresSaver. התיעוד הרשמי לא תומך בזה, וזה הבדל שנוגע לכיס.
מה שנכון: הצ'קפוינטר שמופיע בקטע הראשון של עמוד ההתמדה, זה שרוב הצוותים מעתיקים ביום הראשון, שומר הכול ב-RAM.
from langgraph.checkpoint.memory import InMemorySaver
checkpointer = InMemorySaver()
התיעוד של לאנגצ'יין אומר במפורש, תחת כותרת נפרדת, ש-MemorySaver ו-InMemorySaver מחזיקים צ'קפוינטים בזיכרון ושכשהתהליך עולה מחדש כולם נמחקים. ההנחיה שלו לייצור היא להחליף אותם, ושתי החלופות שהוא נוקב בהן הן חלק מהחבילה הפתוחה ולא מוצר בתשלום: PostgresSaver למסד נתונים, ו-SqliteSaver לקובץ מקומי בפיתוח.
כלומר ההחלפה היא שורה אחת ולא שדרוג. מה שכן עולה כסף הוא התשתית מאחוריה ומי שמתחזק אותה.
עבודה שלישית: קבצים ופקודות מעטפת
צוות שבונה סוכן להגירת קוד במאגר גדול צריך שהסוכן יקרא קבצים, יערוך אותם, יריץ בדיקות ויתקן לפי שגיאות הידור. Bash ו-Edit הם כל העבודה.
כאן ה-Agent SDK של אנתרופיק מתאימה ישירות.
pip install claude-agent-sdk
הכלים מובנים, ומעליהם מערכת hooks שמשמשת כמשטח בקרה בתוך לולאת הסוכן ולא סביבה. hook מסוג PreToolUse יכול לחסום פקודה הרסנית לפני שהיא רצה ולהחזיר החלטת דחייה. PostToolUse יכול להריץ מסדר קוד או בדיקת תקינות אחרי כל עריכה. סוכני משנה מקבילים את העבודה בהקשר מבודד, כך שלוג שגיאות ארוך שנשלח לסוכן משנה לא מזהם את חלון ההקשר הראשי.
המחיר הוא נעילה למודלים של אנתרופיק. הפריסה כן אפשרית דרך Bedrock, Vertex ו-Azure Foundry, אבל המודל עצמו נשאר שלהם. לצוות עם כלל נוקשה נגד נעילת ספק זה פוסל, והחלופה היא LangGraph עם בנייה עצמית של הפרימיטיבים האלה.
עבודה רביעית: תזמור כבד של MCP
לוח בקרה תפעולי ששואל שאלה אחת ומושך תשובות מכמה שרתי MCP של ספקים שונים. רוב הזמן הוא תזמור, ומיעוטו סינתזה.
כאן יש תיקו בין OpenAI לאנתרופיק. שתיהן מתייחסות ל-MCP כפרימיטיב מהשורה הראשונה שמתנהג כמו פונקציה מקומית. LangGraph תומכת, אבל לפי הניתוח הארגונומיה דורשת יותר קוד דבק, וצוותים בסוף עוטפים שרתי MCP כלים ביד.
ההכרעה בין השתיים היא לפי אילוצים משניים. מעקב מובנה, מעקות בטיחות ומסירה לסוכנים מומחים מטים לכיוון OpenAI, וגם הרצון לנתב שאלות פשוטות למודל זול יותר דרך LiteLLM. מחזור החיים של ה-hooks ובידוד קפדני של סוכני משנה מטים לכיוון אנתרופיק.
מה שהושמט מההשוואה, ולמה זה סימן טוב
הכותב הוציא מההשוואה את CrewAI, מסגרת שרוב הקוראים מצפים למצוא ברשימה כזאת. הנימוק שלו: כשניסה לאמת את הגרסה הנוכחית שלה ואת מקרי הבוחן הארגוניים שלה, הראיות לא החזיקו ברמה שבה החזיקו של השלוש האחרות, והוא העדיף להוציא אותה על פני לרפד את ההשוואה במקורות חלשים.
השוואה שמוציאה את האופציה הפופולרית בגלל מקורות חלשים אמינה יותר מאחת שכוללת את כולם. רוב טבלאות ההשוואה בתחום עושות את ההפך, ומרוויחות מזה שורה נוספת.
איך לבחור, בלי להשוות תכונות
השאלה המעשית היא לא כמה מודלים נתמכים אלא מי מחזיק את המצב כשהתהליך מת.
תהליך שנגמר בתוך שניות לא צריך עמידות בכלל, ומי שמשלם עליה שם קונה ביטוח שלא יגיש. תהליך שעוצר וממתין לאדם חי מחייב מנגנון עצירה והמשך שכותב את המצב למקום קבוע. ואם ההחלטה בסוף נשמרת רק בזיכרון של התהליך, מה שיש לכם הוא אב טיפוס, וזה בסדר גמור כל עוד קוראים לזה בשם.
כתבנו כאן בעבר על המילה שהתעשייה משתמשת בה כדי לדעת אם AI עובד ועל הפריצה לחשבונות דרך הסוכן של OpenAI, ובשני המקרים הפער היה בין מה שהוצהר לבין מה שנמדד. מי שרוצה להתחיל להתנסות יכול להתקין את קלוד קוד מקומית, וגם הסוכן שרץ מהנייד כבר לא מדע בדיוני.
ולפני שמריצים משהו מול לקוחות, שווה לפתוח את הקוד ולבדוק איזה צ'קפוינטר מוגדר שם בפועל. אם עדיין כתוב שם InMemorySaver, מה שיש לכם זה לא סוכן עמיד אלא הדגמה שעובדת עד ההפעלה מחדש הראשונה.
מבוסס על ניתוח שפרסם Anubhav ב-Data Science Collective, ספטמבר 2026. התנהגות הצ'קפוינטר אומתה מול תיעוד ההתמדה הרשמי של לאנגצ'יין, שסותר את המאמר בנקודה הזאת, ונתון 21,000 השעות אומת מול פרסומי לאנגצ'יין ומסד ה-LLMOps של ZenML.





