אינטגרציה בין מערכות מתקלקלת בשקט. ב-24 בספטמבר 2026 גרסה v20.0 של Graph API של מטא כבר אינה שמישה. חלק מהקריאות שלכם לא יחזירו שגיאה בכלל. מטא מתעדת בדיוק מה קורה במקום זה: "once a version is no longer usable, any calls made to it will be defaulted to the next oldest, usable version". הקריאה מצליחה, והתשובה כבר יכולה להיות אחרת.
הבהרה לפני שנמשיך: כל האמור כאן מתייחס ל-Graph API. ל-Marketing API של מטא יש לוח גרסאות משלו, ולכן אם אתם עובדים מולו צריך לבדוק אותו בנפרד.
בואו נהיה כנים: זה לא נופל, זה מתחלף
בואו נהיה כנים. אף אחד לא פותח יומן ובודק תאריכי סגירה של ספקים. המערכת עובדת, הדוחות מגיעים, אז למה לגעת בזה בכלל.
אבל הספקים לא שואלים אתכם. הם מפרסמים לוחות זמנים, והאכיפה עצמה משתנה מספק לספק: לפעמים חוזרת שגיאה, לפעמים הקריאה מנותבת לגרסה אחרת, ולפעמים שם כללי ממשיך לעבוד ומפנה למימוש אחר. לכן הכשל היקר באמת הוא לא קריסה. הוא תשובה שחוזרת תקינה לגמרי ומכילה נתון אחר.
וזה כבר לא עניין של הייטק בלבד. המכון הישראלי לדמוקרטיה מנתח את סקר מגמות בעסקים של הלמ״ס מיוני 2025. הסקר מצא ש-28 אחוז מהעסקים בישראל דיווחו על שימוש בבינה מלאכותית בחצי השנה שקדמה לו. כלומר הרבה עסקים כאן כבר מחזיקים תלות חיצונית אחת לפחות.
אינטגרציה בין מערכות: שלושה מועדים שכדאי לעקוב אחריהם
אז ככה. שלושה ספקים שעסקים ישראליים עובדים איתם כל יום כבר פרסמו מועדים. לא כולם באותו מעמד, וזה בדיוק העניין.
| הספק | מה בדיוק משתנה | המועד |
|---|---|---|
| מטא, Graph API | גרסה v20.0, זו שפורסמה ב-21 במאי 2024, אינה שמישה מהמועד הזה | 24 בספטמבר 2026 |
| OpenAI | מזהי מודל מדויקים, כולל snapshots מתוארכים ווריאנטים שמקובצים איתם | 23 באוקטובר 2026 |
| Anthropic | מודל במצב Active. זהו המועד המוקדם ביותר האפשרי, ולא תאריך פרישה | לא לפני 29 בספטמבר 2026 |
שימו לב להבדל בין השורות. מטא נותנת תאריך ודאי. אצל OpenAI התאריך ודאי, אבל ההיקף עצמו דורש בדיקה פרטנית. ואילו Anthropic לא נותנת תאריך פרישה כלל, אלא רצפה בלבד.
הפרט שמפיל אנשים: alias מול snapshot מוצמד
ההבחנה הזו שווה יותר מכל השאר, אז נתחיל בה.
טבלת ה-deprecations של OpenAI בנויה סביב מזהים מדויקים ולא סביב שמות משפחה. חלק מהשורות מקבצות יחד snapshot מתוארך, את השם הכללי שמפנה אליו ווריאנטים נוספים, וכולם באותה שורה ועם אותו מועד.
המסקנה המעשית חשובה יותר מכל רשימה: אי אפשר להסיק מהשם הכללי שבקוד שלכם אם אתם בתוך ההיקף או מחוצה לו. מי שכתוב אצלו gpt-4o-2024-05-13 יודע בדיוק מה לחפש. מי שכתוב אצלו gpt-4o צריך לבדוק פרטנית, כי השם הכללי אינו מזהה קבוע. הוא יכול להצביע היום על snapshot אחד ומחר על אחר, וזה קורה בלי שתשנו שורת קוד.
בכוונה איננו משכפלים כאן את הרשימה. היא מתעדכנת, והמחרוזת המדויקת שאתם שולחים היא מה שקובע. הדרך היחידה לדעת היא לפתוח את הטבלה הרשמית ולהשוות אליה את המזהים שיוצאים מהמערכת שלכם.
נקודה נוספת לבדיקה: חלק מהמזהים בטבלה כוללים סיומת completions. זהו וריאנט של מזהה המודל ולא שם של endpoint. ה-endpoint עצמו הוא כתובת כמו v1/chat/completions, ולכן שווה לבדוק גם את המזהה וגם את הכתובת שאליה הקוד פונה.
וזו בדיוק אותה תבנית כמו אצל מטא, בשכבה אחרת. הקריאה לא נופלת, היא נענית על ידי משהו אחר.
אינטגרציה בין מערכות: שלושה מצבים ולא שניים
אצל Anthropic ההפרדה מתועדת במפורש, והיא שימושית מול כל ספק.
- Active: הדגם פעיל ואין סיבה לגעת בו.
- Deprecated: הדגם עדיין עובד, אבל אינו מומלץ ויש לו תאריך פרישה.
- Retired: בקשות לדגם נכשלות.
בטבלה מופיע מודל במצב Active, ולצידו הניסוח "Not sooner than September 29, 2026". זו רצפה ולא גזר דין, ולכן אין להתייחס אליה כאל תאריך שבו משהו ייסגר. Anthropic גם מתחייבת להתראה של 60 יום לפחות לפני פרישה של דגם שפורסם לציבור. כדי לדעת איזה מודל רלוונטי אליכם, פתחו את העמוד הרשמי והשוו את שם ה-API model המלא, בדיוק כפי שעשינו מול הטבלה של OpenAI.
למה אינטגרציה בין מערכות מתקלקלת בלי להודיע
שלושה מנגנונים שונים, ורק אחד מהם צועק.
- ניתוב שקט: מטא מתעדת שקריאת API לגרסה שאינה שמישה מנותבת לגרסה הישנה ביותר שעדיין זמינה. הניסוח בתיעוד מתייחס ל-APIs, ולכן אין להסיק ממנו שכל endpoint, שדה או מוצר יתנהגו באותה צורה. חלק מהקריאות כן יחזירו שגיאה.
- שם כללי שנשאר במקומו: המחרוזת בקוד לא משתנה, המימוש שמאחוריה כן. זה המקרה שאין לו שום סימן חיצוני.
- סגירה חדה: הקריאה מחזירה שגיאה, וזה דווקא המקרה הנוח.
גם המקרה השלישי לא בהכרח מתגלה מיד. תהליך לילי עלול להיכשל, או להפיק תוצאה לא צפויה, במשך ימים לפני שמישהו שם לב.
מטא מתעדת גם שכל גרסה נשארת לפחות שנתיים מרגע ההשקה. שימו לב לניסוח: לפחות. זו רצפה, לא הבטחה לתאריך, ולכן הטבלה הרשמית היא המקור ולא החישוב שלכם.
אינטגרציה בין מערכות: מה לבדוק החודש
חמישה דברים, וכולם לוקחים שעות ולא שבועות.
- רשימת תלויות: כל קריאה יוצאת מהמערכת שלכם, עם שם הספק, המזהה המדויק והמועד שהספק פרסם.
- מזהה מלא ולא שם משפחה: תעדו את המחרוזת שנשלחת בפועל, כולל התאריך בסופה אם יש. זו ההבחנה שמפרידה בין מי שיודע מה ייפגע לבין מי שמנחש.
- גרסה ומזהה בקונפיג: אם מספר הגרסה או שם הדגם יושבים קשיח בקוד, כל עדכון הופך לפרויקט. בקונפיג זו שורה אחת.
- התראה על כישלון: תהליך אוטומטי בלי התראה אינו תהליך אוטומטי. הוא הימור.
- רבעון ביומן: פעם ברבעון מישהו פותח את דפי ה-deprecation של הספקים הפעילים. עשר דקות.
הסעיף הראשון הוא החשוב. רוב העסקים שאנחנו פוגשים לא מחזיקים רשימה כזו בכלל, ולכן השאלה "מה ייפגע ב-23 באוקטובר" תלויה באוויר. מי שכן מחזיק רשימה עונה עליה בחמש דקות.
מתי הפתרון הפשוט מספיק
לא כל עסק צריך שכבת הפשטה מסודרת. אם יש לכם אינטגרציה אחת, ומפתח זמין, ותהליך שרץ פעם בשבוע, תזכורת ביומן פותרת את זה.
ככלל אצבע שלי בלבד, ולא ככלל הנדסי מוכר, שכבת הפשטה מתחילה להצדיק את עצמה כשיש כמה ספקים או כמה נקודות אינטגרציה עם מחזורי שינוי שונים. גם אז היא דורשת זמן פיתוח, אז כדאי לבנות אותה מול בעיה קיימת ולא מול בעיה עתידית. הנדסת יתר לפני הזמן מייצרת בדיוק את החוב שהיא אמורה למנוע.
הכלל הפשוט: ככל שיותר אנשים בעסק מסתמכים על המספר שיוצא מהתהליך, כך שווה יותר להשקיע בו. אותו היגיון בדיוק חוזר בגרסת ה-PHP של האתר ובעלות השנתית של אפליקציה.
שאלות נפוצות
כמה זמן לוקח למפות אינטגרציה בין מערכות קיימת
במערכת בגודל בינוני, יום עבודה אחד. רוב הזמן הולך על איתור קריאות ומזהי דגם ישנים בקוד ובאוטומציות, ולא על הכתיבה עצמה.
מה ההבדל בין deprecation לבין shutdown
OpenAI מגדירה זאת במפורש. הכרזה על deprecation הופכת את הדגם או ה-endpoint למיושן מיד, ובמועד ה-shutdown הוא כבר אינו נגיש. עד אותו מועד הכל עובד כרגיל.
הקוד שלי קורא ל-gpt-4 בלי תאריך, אז אני מסודר
לא. שם כללי אינו מזהה קבוע, והוא גם לא בהכרח מחוץ להיקף של טבלת הסגירה. הדרך היחידה לענות על השאלה הזו היא להשוות את המחרוזת המדויקת שלכם מול הטבלה הרשמית, ולא להסיק משם המשפחה.
האם חייבים לעדכן לכל גרסה חדשה מיד
לא. גרסה חדשה בדרך כלל דורשת בדיקה, וגרסה נוכחית שהספק עדיין תומך בה אינה סיכון. הסיכון מתחיל כשאף אחד לא יודע באיזו גרסה או באיזה מזהה המערכת משתמשת.
מה עושים כשספק ה-API לא מפרסם תאריכים
מתייחסים אליו כאל סיכון גבוה יותר, לא נמוך יותר. ספק בלי לוח זמנים פומבי יכול לשנות התנהגות בלי התראה, אז שווה לתעד את התשובות שלו ולהשוות אותן מדי פעם.
מה זה אומר בפועל
שלושת המועדים האלה כבר קיימים. הם לא יגיעו כהפתעה, רק ההשלכות שלהם יגיעו בלי התראה. עסק שלא יודע אילו גרסאות ואילו מזהי דגם רצים אצלו בפרודקשן לא באמת יודע מה הדוחות שלו אומרים, וזה נכון גם כשהכל ירוק במסך. בפיתוח מערכות זה ההבדל בין תחזוקה מתוכננת לבין שבוע של חיפוש באגים.
איבראהים שאהין