Запустіть агентів Letta на OpenAI-сумісному ендпоінті.

Updated 2026-07-29

Self-hosted Letta зчитує OPENAI_API_BASE і OPENAI_API_KEY із середовища, тож дві змінні спрямовують її стейтфул-агентів на шлюз. Апстрим називає проксі-ендпоінти неофіційними, і ця сторінка ставиться до цього серйозно: що працює, які вимоги, і де гострі кути.

Коротка відповідь: дві змінні середовища на сервері.

Задокументований шлях Letta для OpenAI-сумісних ендпоінтів — це конфігурація середовища на self-hosted сервері: встановіть OPENAI_API_BASE на URL ендпоінта і OPENAI_API_KEY на його ключ під час запуску сервера, і Letta зареєструє моделі, які обслуговує цей ендпоінт. Для APIsRouter база — https://api.apisrouter.com/v1. У UI немає поля base-URL для кожного агента; ендпоінт — це рішення на рівні сервера, тому саме середовище — та поверхня, яка має значення. Одна вимога непорушна, і її варто прочитати перш за все: документація Letta прямо каже, що OpenAI-сумісні ендпоінти мають підтримувати виклик функцій, тому що цикл агента побудований на викликах інструментів. Ендпоінт, що вміє лише звичайні chat completions, взагалі не може запустити агента 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, приблизно 24 тис. зірок) виросла з дослідницького проєкту MemGPT і будує стейтфул-агентів: агентів із постійною, самостійно редагованою пам'яттю, що переживає сесії. Там, де чат-клієнт надсилає ваше повідомлення й друкує відповідь, агент Letta запускає внутрішній цикл на кожній взаємодії, міркуючи про те, що він знає, викликаючи інструменти пам'яті для читання й переписування власної основної пам'яті та архівного сховища, і лише потім видаючи відповідь. Ця архітектура має два наслідки для маршрутизації ендпоінта. По-перше, кожен крок циклу — це запит із викликом інструменту, через що виклик функцій — жорстка вимога, а не приємний бонус; модель, яка плутається в схемах інструментів, тут не деградує плавно — вона ламає здатність агента пам'ятати. По-друге, об'єм запитів на взаємодію вищий, ніж підказує видима стенограма розмови, тому що керування пам'яттю спрацьовує паралельно з видимою відповіддю. Id моделі, що обслуговує все це, — звичайний рядок для ендпоінта, тож за мультивендорним шлюзом позаду OPENAI_API_BASE id Claude може запускати цикл агента, поки швидкий id обслуговує легших агентів на тому самому сервері, кожен адресований своєю назвою.

Чесний стан підтримки, прямо від апстриму.

Власна документація Letta каже, що OpenAI-проксі ендпоінти офіційно не підтримуються і що ви, ймовірно, зіткнетеся з помилками, рекомендуючи натомість прямі з'єднання з провайдерами. Це попередження заслуговує на цитування, а не приховування, оскільки більшість сторінок на цю тему вдають, що його не існує. На практиці це означає дещо вужче, ніж звучить: Letta тестує проти нативних API першого боку, і ендпоінт, що відхиляється від семантики OpenAI, особливо навколо виклику інструментів, дає збої, які апстрим не пріоритизуватиме. Ендпоінт, що справді реалізує специфікацію, включно з викликами інструментів, працює нормально, і саме це — планка сумісності, від якої залежить шлюз. Історія підтримки також мала один реальний баг, вартий уваги. До початку 2026 року моделі, зареєстровані через OPENAI_API_BASE, автоматично отримували префікс провайдера openai-proxy, поки створення агента валідувалося проти коротшого списку прийнятних префіксів, тож проксі-моделі реєструвалися, але не могли бути використані для створення агентів. Проблему закрили з виправленням у січні 2026 року; якщо ви запускаєте закріплений старіший сервер і створення агента відхиляє моделі, які сервер явно перелічує, саме це невідповідність ви зустріли, і оновлення — виправлення. Ще одна рухома ціль: поверхня продукту Letta змінювалася, і поточна документація скеровує нових користувачів до новіших режимів деплою, зазначаючи, що класичний образ Docker більше не є активно підтримуваною поверхнею. Наведені вище змінні середовища — задокументований механізм для self-hosted сервера; перевіряйте поточну документацію щодо того, який артефакт сервера апстрим рекомендує в той тиждень, коли ви деплоїте.

# 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

Вибір моделей для стейтфул-агентів.

Оцінка, що має значення, — це вірність циклу: створіть тестового агента, проведіть розмову, що змушує оновлювати пам'ять, потім прочитайте основну пам'ять агента й перевірте, що вона справді змінилася. Модель може писати чарівні відповіді й все одно провалювати контракт пам'яті, і лише тест циклу це вловлює.

  • Редагування пам'яті — це структурована робота з інструментами. claude-sonnet-4-6 і gpt-5.5 надійно обробляють цикл переписування власної пам'яті, а це основна компетенція, потрібна агенту Letta.
  • Довгоживучі агенти накопичують контекст. Моделі, що залишаються послідовними глибоко в контекстному вікні, тут мають більше значення, ніж у безстанному чаті, і саме тому claude-opus-4-7 заробляє свій слот для асистентів з високими ставками.
  • Флоти легких агентів, по одному на користувача чи задачу, — це об'ємне навантаження. claude-haiku-4-5-20251001 тримає вартість на агента плоскою, все ще роблячи компетентні виклики інструментів.
  • deepseek-v4-pro вартий тестування для агентів, що поєднують міркування з двомовним трафіком; вимога виклику інструментів — це фільтр, тож тестуйте цикл, а не лише прозу.
  • Що б ви не обрали, обирайте по агенту. Сервер реєструє весь каталог, і кожен агент прив'язується до назви, тож консьєрж з інтенсивною пам'яттю й одноразовий агент задачі можуть працювати на різних id пліч-о-пліч.

Оплата за фактом · нижче офіційних цін

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.

Створення агента, що відхиляє модель, яку перелічує сервер, — це історичний баг префіксу. Моделі, зареєстровані через проксі, несли префікс провайдера, який створення агента відмовлялося приймати на уражених версіях. Виправлення з'явилося в січні 2026 року; на поточних релізах назва, показана в списку моделей, — це та назва, що працює. Якщо ви закріплені на старішому образі, це найсильніша окрема причина оновитися перед тим, як дебажити щось інше. Агент, що відповідає, але ніколи не пам'ятає, — це збій виклику інструментів. Або ендпоінт не реалізує виклик функцій, або модель за id погано обробляє схеми інструментів. Симптом — розмови, що працюють, поки основна пам'ять ніколи не оновлюється. Протестуйте того самого агента на claude-sonnet-4-6, щоб відділити проблеми ендпоінта від проблем моделі. Змінні середовища, встановлені не в тому місці, — класика Docker: OPENAI_API_BASE, експортований у вашому shell, нічого не робить для контейнера, запущеного без прапорців -e. Змінні мають дістатися самого процесу сервера. І оскільки ендпоінт — на рівні сервера, пам'ятайте про радіус ураження: зміна OPENAI_API_BASE рухає кожного агента на цьому сервері. Немає перевизначення ендпоінта для кожного агента, тож один сервер на шлюз — чиста топологія, а вибір моделі по агенту робить диференціацію.

Хто спрямовує Letta через шлюз.

  • Розробники стійких асистентів, які хочуть редагування пам'яті якості Claude без окремого облікового запису постачальника, ключа й поверхні білінгу для кожної моделі, яку вони пробують.
  • Команди, що запускають флоти агентів, де кожен користувач отримує агента, а вимірювання за ключем перетворює реальну вартість шару пам'яті на читабельний звіт.
  • Дослідники, що порівнюють, як моделі обробляють самостійне редагування пам'яті, де кожен кандидат — це зміна назви на тестовому агенті, а не міграція постачальника.
  • Self-hosters у середовищах, де прямий доступ до API постачальника заблокований і мережева політика дозволяє лише один шлюзовий ендпоінт.
  • Розробники без доступу до білінгу певного постачальника. Доступ на основі поповнення без вимоги картки прибирає залежність від реєстрації в кожного провайдера.

Перевірте ендпоінт і налагодьте першого агента.

Спочатку перевірте шлюз, а потім сервер: перелічіть моделі з ключем і запустіть один chat completion з прикріпленим визначенням інструменту, оскільки виклик інструментів — це саме та можливість, від якої залежить Letta. Якщо цикл виклику інструменту працює в curl, половина роботи ендпоінта доведена. Потім запустіть сервер із двома змінними й прочитайте його список моделей. Моделі, що з'являються там, доводять реєстрацію; успішно створений агент із перелічуваної назви доводить шлях префіксу; розмова, що оновлює основну пам'ять, доводить цикл наскрізно. Дебажте в такому порядку, оскільки кожен етап має свій набір збоїв: змінні середовища, версію сервера й компетентність моделі у викликах інструментів відповідно. Щойно агенти запрацюють, консоль APIsRouter показує модель на запит, кількість токенів і витрати. Стейтфул-агенти виставляють рахунок за взаємодію більший, ніж підказують їхні стенограми, оскільки керування пам'яттю працює за кожною відповіддю, і лог використання — те місце, де цей прихований множник стає числом, яке можна бюджетувати.

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 на кастомний OpenAI-сумісний ендпоінт?

Встановіть OPENAI_API_BASE і OPENAI_API_KEY у середовищі self-hosted сервера Letta, наприклад як прапорці -e у docker run. Поля base-URL для кожного агента немає; ендпоінт налаштовується на рівні сервера, і кожен агент на цьому сервері його використовує.

Чи офіційно Letta підтримує проксі-ендпоінти?

Апстрим називає їх офіційно не підтримуваними і попереджає, що ви можете зіткнутися з помилками, рекомендуючи прямих провайдерів. На практиці вимога — сувора сумісність з OpenAI, включно з викликом функцій; ендпоінт, що реалізує повну специфікацію, запускає цикл агента, а це і є планка, під яку побудований APIsRouter.

Чому потрібен виклик функцій?

Агенти Letta керують власною пам'яттю через виклики інструментів: читання, переписування й архівування пам'яті — це функції, які модель викликає на кожній взаємодії. Ендпоінт чи модель без надійного виклику інструментів не можуть запустити цикл, і симптом — агент, що спілкується, але ніколи не пам'ятає.

Чому створення агента відхиляє моделі, які перелічує мій сервер?

Старіші версії сервера реєстрували проксі-моделі під префіксом провайдера, який створення агента відмовлялося валідувати, — баг, закритий з виправленням у січні 2026 року. Оновіть сервер, потім використовуйте назву рівно так, як вона з'являється у списку моделей.

Чи можуть різні агенти Letta використовувати різні моделі через один ендпоінт?

Так. Сервер реєструє кожен id, який обслуговує ендпоінт, і кожен агент прив'язується до назви моделі під час створення. Агент-консьєрж на claude-opus-4-7 і флот агентів задач на claude-haiku-4-5-20251001 можуть ділити один сервер і один ключ.

Чи стосується це Letta Cloud чи self-hosted сервера?

Self-hosted сервера, де ви контролюєте середовище. Letta Cloud керує власними викликами моделі на боці сервера. Зауважте також, що рекомендовані артефакти self-hosting Letta змінювалися, тож перевіряйте поточну документацію щодо режиму деплою, який підтримується сьогодні.