הריצו agents של Letta על endpoint תואם OpenAI.
Updated 2026-07-29
Letta מאוחסן-עצמית קורא OPENAI_API_BASE ו-OPENAI_API_KEY מהסביבה, כך ששני משתנים מכוונים את ה-agents בעלי המצב שלו ל-gateway. upstream קורא ל-proxy endpoints לא רשמיים, והעמוד הזה לוקח את זה ברצינות: מה עובד, מה הדרישות, והיכן היו הקצוות החדים.
תשובה מהירה: שני משתני סביבה על השרת.
הנתיב המתועד של Letta ל-endpoints תואמי OpenAI הוא הגדרת סביבה על השרת המאוחסן-עצמית: הגדירו OPENAI_API_BASE לכתובת ה-endpoint ו-OPENAI_API_KEY למפתח שלו בעת הפעלת השרת, ו-Letta רושמת את המודלים שה-endpoint הזה משרת. עבור APIsRouter הבסיס הוא https://api.apisrouter.com/v1. אין שדה base-URL לכל agent ב-UI; ה-endpoint הוא החלטה ברמת השרת, וזו הסיבה שהסביבה היא המשטח שחשוב. דרישה אחת היא לא-משא-ומתן ושווה קריאה לפני כל דבר אחר: התיעוד של Letta קובע ש-endpoints תואמי OpenAI חייבים לתמוך בקריאת פונקציות (function calling), מכיוון שלולאת ה-agent בנויה על קריאות כלים. endpoint שעושה רק chat completions פשוט לא יכול להריץ agent של Letta בכלל. מודלי הקטלוג ב-APIsRouter מדברים קריאת כלים סטנדרטית דרך /v1/chat/completions, וזו הצורה ש-Letta מצפה לה.
docker run \
-v ~/.letta/.persist/pgdata:/var/lib/postgresql/data \
-p 8283:8283 \
-e OPENAI_API_KEY="$APISROUTER_API_KEY" \
-e OPENAI_API_BASE="https://api.apisrouter.com/v1" \
letta/letta:latestלמה Letta נשענת על המודל שלה חזק יותר מאפליקציית צ'אט.
Letta (letta-ai ב-GitHub, כ-24K כוכבים) צמחה מפרויקט המחקר MemGPT ובונה agents בעלי-מצב: agents עם זיכרון עצמי-עורך ומתמיד ששורד בין sessions. איפה שלקוח צ'אט שולח את ההודעה שלכם ומדפיס את התשובה, agent של Letta מריץ לולאה פנימית על כל אינטראקציה, מנמק על מה שהוא יודע, קורא לכלי זיכרון כדי לקרוא ולשכתב את זיכרון הליבה שלו ואחסון הארכיון, ורק אז מייצר תשובה. לארכיטקטורה הזו יש שתי השלכות על ניתוב endpoint. ראשית, כל שלב בלולאה הוא בקשת קריאת-כלים, וזו הסיבה שקריאת פונקציות היא דרישה קשיחה ולא נחמד-שיהיה; מודל שמגמגם בסכימות כלים לא מתדרדר בחן כאן, הוא שובר את יכולת ה-agent לזכור. שנית, נפח הבקשות לאינטראקציה גבוה יותר ממה שתמליל השיחה מרמז, מכיוון שניהול הזיכרון יורה לצד התשובה הגלויה. ה-model id שמשרת את כל זה הוא מחרוזת פשוטה ל-endpoint, אז עם gateway רב-ספקים מאחורי OPENAI_API_BASE, id של Claude יכול להריץ את לולאת ה-agent בעוד id מהיר משרת agents קלים יותר על אותו שרת, כל אחד מכוון לפי ה-handle שלו.
מצב התמיכה הכן, ישירות מ-upstream.
התיעוד של Letta עצמו אומר ש-proxy endpoints של OpenAI אינם נתמכים רשמית ושסביר שתיתקלו בשגיאות, וממליץ על חיבורי ספק ישירים במקום זאת. האזהרה הזו ראויה לצוטט ולא להיטמן, מכיוון שרוב העמודים בנושא הזה מתעמלים כאילו היא לא קיימת. מה שזה אומר בפועל צר יותר ממה שזה נשמע: Letta בודקת מול APIs מטעם ראשון, ו-endpoint שסוטה מסמנטיקת OpenAI, במיוחד סביב קריאת כלים, מייצר כשלים ש-upstream לא יתעדף. endpoint שבאמת מיישם את הספק, כולל קריאות כלים, רץ יפה, וזה בדיוק הרף שגייטווי חי או מת לפיו. להיסטוריית התמיכה היה גם באג אמיתי אחד ששווה לדעת עליו. עד תחילת 2026, מודלים שנרשמו דרך OPENAI_API_BASE קיבלו קידומת אוטומטית כספק openai-proxy בעוד שיצירת agent אימתה מול רשימה קצרה יותר של קידומות מקובלות, כך שמודלי proxy נרשמו אבל לא ניתן היה להשתמש בהם ליצירת agents. הבעיה נסגרה עם תיקון בינואר 2026; אם אתם מריצים שרת ישן נעוץ ויצירת agent דוחה מודלים שהשרת בבירור מציג ברשימה, זה חוסר ההתאמה שאתם נתקלים בו, ושדרוג הוא התיקון. יעד נוסף בתנועה: משטח המוצר של Letta היה משתנה, והתיעוד שלו כרגע מכוון משתמשים חדשים לעבר מצבי פריסה חדשים תוך ציון שתמונת ה-Docker הקלאסית כבר לא המשטח המתוחזק באופן פעיל. משתני הסביבה למעלה הם המנגנון המתועד עבור השרת המאוחסן-עצמית; בדקו את התיעוד הנוכחי לגבי איזה artifact שרת upstream ממליץ עליו בשבוע שבו אתם פורסים.
# after the server is up, list models Letta knows about
curl -s http://localhost:8283/v1/models/ | head -50
# use the handle exactly as listed when creating agentsבחירת מודלים ל-agents בעלי-מצב.
ההערכה שחשובה היא נאמנות הלולאה: צרו agent בדיקה, נהלו שיחה שמכריחה עדכוני זיכרון, ואז קראו את זיכרון הליבה של ה-agent ואמתו שהוא באמת השתנה. מודל יכול לכתוב תשובות מקסימות ועדיין להיכשל בחוזה הזיכרון, ורק בדיקת הלולאה תופסת את זה.
- עריכת זיכרון היא עבודת כלים מובנית. claude-sonnet-4-6 ו-gpt-5.5 מטפלים אמין בלולאת שכתוב-הזיכרון-של-עצמך, שהיא היכולת הליבתית ש-agent של Letta צריך.
- agents ארוכי-חיים צוברים הקשר. מודלים שנשארים קוהרנטיים עמוק בתוך חלון הקשר חשובים כאן יותר מבצ'אט חסר-מצב, וזה המקום ש-claude-opus-4-7 מרוויח את מקומו עבור עוזרים בסיכון גבוה.
- צי של agents קלים, אחד לכל משתמש או משימה, הם עומסי נפח. claude-haiku-4-5-20251001 שומר על עלות-לכל-agent שטוחה תוך ביצוע קריאות כלים מוכשרות.
- deepseek-v4-pro שווה בדיקה עבור agents שמערבבים נימוק עם תעבורה דו-לשונית; דרישת קריאת הכלים היא השער, אז בדקו את הלולאה, לא רק את הפרוזה.
- מה שלא תבחרו, בחרו לכל agent. השרת רושם את כל הקטלוג, וכל agent מתחייב ל-handle, כך שקונסיירז' עתיר-זיכרון ו-agent-משימה חד-פעמי יכולים לרוץ על ids שונים זה לצד זה.
תשלום לפי שימוש · מתחת למחיר הרשמי
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| מודל | מחיר רשמי | המחיר שלנו |
|---|---|---|
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
| Claude Opus 4.7 | $5.00 / $25.00 per M | $4.00 / $20.00 per M |
| GPT-5.5 | $5.00 / $30.00 per M | $4.00 / $24.00 per M |
| Claude Haiku 4.5 20251001 | $1.00 / $5.00 per M | $0.80 / $4.00 per M |
| DeepSeek V4 Pro | $0.43 / $0.87 per M | $0.40 / $0.90 per M |
מצבי כשל ספציפיים ל-Letta.
יצירת agent שדוחה מודל שהשרת מציג ברשימה היא באג הקידומת ההיסטורי. מודלים שנרשמו דרך proxy נשאו קידומת ספק שיצירת agent סירבה לקבל בגרסאות מושפעות. התיקון נחת בינואר 2026; בגרסאות נוכחיות ה-handle שמוצג ברשימת המודלים הוא ה-handle שעובד. אם אתם נעוצים על תמונה ישנה יותר, זו הסיבה החזקה ביותר לשדרג לפני שאתם מדבגים כל דבר אחר. agent שעונה אבל אף פעם לא זוכר הוא כשל קריאת-כלים. או שה-endpoint לא מיישם קריאת פונקציות, או שהמודל מאחורי ה-id מטפל בסכימות כלים בצורה גרועה. הסימפטום הוא שיחות שעובדות בעוד זיכרון הליבה אף פעם לא מתעדכן. בדקו את אותו agent על claude-sonnet-4-6 כדי להפריד בעיות endpoint מבעיות מודל. משתני סביבה שהוגדרו במקום הלא נכון הם הקלאסיקה של Docker: OPENAI_API_BASE שיוצא ב-shell שלכם לא עושה כלום עבור container שהופעל בלי דגלי -e. המשתנים חייבים להגיע לתהליך השרת עצמו. ומכיוון שה-endpoint הוא ברמת שרת, זכרו את רדיוס הפגיעה: שינוי OPENAI_API_BASE מזיז כל agent על השרת הזה. אין דריסת endpoint לכל agent, אז שרת אחד לכל gateway היא הטופולוגיה הנקייה, עם בחירת מודל לכל agent עושה את ההבחנה.
מי מנתב את Letta דרך gateway.
- בוני עוזרים מתמידים שרוצים עריכת זיכרון באיכות Claude בלי חשבון ספק נפרד, מפתח, ומשטח חיוב לכל מודל שהם מנסים.
- צוותים שמריצים צי agents שבו כל משתמש מקבל agent, ומעקב שימוש לפי מפתח הופך את העלות האמיתית של שכבת הזיכרון לדוח קריא.
- חוקרים שמשווים איך מודלים מטפלים בזיכרון עצמי-עורך, שם כל מועמד הוא שינוי handle ב-agent בדיקה ולא מיגרציית ספק.
- self-hosters בסביבות שבהן גישת API ישירה לספק חסומה ו-endpoint gateway יחיד הוא מה שמדיניות הרשת מרשה.
- מפתחים ללא גישה לחיוב של ספק נתון. גישה מבוססת-הטענה בלי דרישת כרטיס מסירה את התלות בהרשמה לכל ספק.
אמתו את ה-endpoint ובצעו דיבוג ל-agent הראשון.
אמתו את ה-gateway לפני השרת: רשמו מודלים עם המפתח, והריצו השלמת צ'אט אחת עם הגדרת כלי מצורפת, מכיוון שקריאת כלים היא היכולת ש-Letta באמת תלויה בה. אם מסלול הלוך-ושוב של קריאת-כלים עובד ב-curl, מחצית ה-endpoint מוכחת. לאחר מכן הפעילו את השרת עם שני המשתנים וקראו את רשימת המודלים שלו. מודלים שמופיעים שם מוכיחים רישום; agent שנוצר בהצלחה מ-handle רשום מוכיח את נתיב הקידומת; שיחה שמעדכנת זיכרון ליבה מוכיחה את הלולאה מקצה לקצה. דבגו בסדר הזה, מכיוון שלכל שלב יש קבוצת כשלים נבדלת: משתני הסביבה, גרסת השרת, ומיומנות הכלים של המודל בהתאמה. ברגע ש-agents רצים, קונסולת APIsRouter מציגה מודל לכל בקשה, ספירות טוקן, והוצאה. agents בעלי-מצב מחויבים יותר לאינטראקציה ממה שהתמלילים שלהם מרמזים, מכיוון שניהול הזיכרון רץ מאחורי כל תשובה, ולוג השימוש הוא המקום שבו המכפיל הנסתר הזה הופך למספר שאתם יכולים לתקצב.
curl -s https://api.apisrouter.com/v1/chat/completions \
-H "Authorization: Bearer $APISROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-4-6",
"messages":[{"role":"user","content":"What is 2+3?"}],
"tools":[{"type":"function","function":{
"name":"calc","description":"add numbers",
"parameters":{"type":"object","properties":{
"a":{"type":"number"},"b":{"type":"number"}}}}}]}'שאלות נפוצות
איך מכוונים Letta ל-endpoint מותאם אישית תואם OpenAI?
הגדירו OPENAI_API_BASE ו-OPENAI_API_KEY בסביבה של שרת Letta המאוחסן-עצמית, לדוגמה כדגלי -e ב-docker run. אין שדה base-URL לכל agent; ה-endpoint מוגדר ברמת שרת וכל agent על השרת הזה משתמש בו.
האם Letta תומכת רשמית ב-proxy endpoints?
upstream קורא להם לא-נתמכים-רשמית ומזהיר שתיתקלו בשגיאות, וממליץ על ספקים ישירים. בפועל הדרישה היא תאימות OpenAI קפדנית כולל קריאת פונקציות; endpoint שמיישם את הספק המלא מריץ את לולאת ה-agent, וזה בדיוק הרף ש-APIsRouter נבנה כנגדו.
למה קריאת פונקציות נדרשת?
agents של Letta מנהלים את הזיכרון שלהם דרך קריאות כלים: קריאה, שכתוב, וארכוב זיכרון הן פונקציות שהמודל קורא להן בכל אינטראקציה. endpoint או מודל בלי קריאת כלים מוצקה לא יכול להריץ את הלולאה, והסימפטום הוא agent שמצ'וטט אבל אף פעם לא זוכר.
למה יצירת agent דוחה מודלים שהשרת שלי מציג ברשימה?
גרסאות שרת ישנות יותר רשמו מודלי proxy תחת קידומת ספק שיצירת agent סירבה לאמת, באג שנסגר עם תיקון בינואר 2026. שדרגו את השרת, ואז השתמשו ב-handle בדיוק כפי שהוא מופיע ברשימת המודלים.
האם agents שונים של Letta יכולים להשתמש במודלים שונים דרך endpoint אחד?
כן. השרת רושם כל id שה-endpoint משרת, וכל agent מתחייב ל-handle מודל ביצירה. agent קונסיירז' על claude-opus-4-7 וצי agents-משימה על claude-haiku-4-5-20251001 יכולים לחלוק שרת אחד ומפתח אחד.
האם זה חל על Letta Cloud או על השרת המאוחסן-עצמית?
השרת המאוחסן-עצמית, שבו אתם שולטים בסביבה. Letta Cloud מנהל את קריאות המודל שלו בעצמו בצד השרת. שימו לב גם ש-artifacts ה-self-hosting המומלצים של Letta היו משתנים, אז בדקו את התיעוד הנוכחי לגבי מצב הפריסה שהם מתחזקים היום.