Jalankan agent Letta di endpoint OpenAI-compatible.

Updated 2026-07-29

Letta self-hosted membaca OPENAI_API_BASE dan OPENAI_API_KEY dari environment, jadi dua variabel mengarahkan agent stateful-nya ke gateway. Upstream menyebut endpoint proxy tidak resmi, dan halaman ini menanggapinya serius: apa yang berfungsi, apa syaratnya, dan di mana sisi tajamnya berada.

Jawaban singkat: dua environment variable di server.

Jalur terdokumentasi Letta untuk endpoint OpenAI-compatible adalah konfigurasi environment di server self-hosted: set OPENAI_API_BASE ke URL endpoint dan OPENAI_API_KEY ke key-nya saat memulai server, dan Letta mendaftarkan model yang dilayani endpoint itu. Untuk APIsRouter base-nya adalah https://api.apisrouter.com/v1. Tidak ada field base-URL per-agent di UI; endpoint adalah keputusan level-server, itulah sebabnya environment adalah permukaan yang penting. Satu syarat tidak bisa ditawar dan layak dibaca sebelum apa pun lainnya: dokumentasi Letta menyatakan bahwa endpoint OpenAI-compatible harus mendukung function calling, karena loop agent dibangun di atas tool call. Endpoint yang hanya melakukan chat completions polos tidak bisa menjalankan agent Letta sama sekali. Model katalog di APIsRouter berbicara tool calling standar melalui /v1/chat/completions, yang persis bentuk yang diharapkan 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

Mengapa Letta bersandar lebih keras pada model-nya dibanding app chat.

Letta (letta-ai di GitHub, sekitar 24K bintang) tumbuh dari proyek riset MemGPT dan membangun agent stateful: agent dengan memori persisten yang mengedit dirinya sendiri dan bertahan lintas sesi. Di tempat client chat mengirim pesan Anda dan mencetak balasannya, agent Letta menjalankan loop internal di setiap interaksi, bernalar tentang apa yang diketahuinya, memanggil memory tool untuk membaca dan menulis ulang core memory serta archival storage-nya sendiri, dan baru kemudian menghasilkan respons. Arsitektur itu punya dua konsekuensi untuk routing endpoint. Pertama, setiap langkah loop adalah request tool-calling, itulah sebabnya function calling adalah syarat keras alih-alih nice-to-have; model yang gagap skema tool tidak menurun secara halus di sini, ia merusak kemampuan agent untuk mengingat. Kedua, volume request per interaksi lebih tinggi dari yang disarankan transkrip percakapan, karena manajemen memori terpicu bersamaan dengan balasan yang terlihat. Id model yang melayani semua ini adalah string biasa ke endpoint, jadi dengan gateway multi-vendor di balik OPENAI_API_BASE, id Claude bisa menjalankan loop agent sementara id cepat melayani agent yang lebih ringan di server yang sama, masing-masing dialamatkan lewat handle-nya.

Status dukungan yang jujur, langsung dari upstream.

Dokumentasi Letta sendiri mengatakan endpoint proxy OpenAI tidak didukung secara resmi dan Anda kemungkinan akan menemui error, dan malah merekomendasikan koneksi provider langsung. Peringatan itu layak dikutip alih-alih dikubur, karena kebanyakan halaman soal topik ini berpura-pura itu tidak ada. Apa artinya dalam praktik lebih sempit dari kedengarannya: Letta menguji terhadap API first-party, dan endpoint yang menyimpang dari semantik OpenAI, terutama seputar tool calling, menghasilkan kegagalan yang tidak akan diprioritaskan upstream. Endpoint yang benar-benar mengimplementasikan spek, termasuk tool call, berjalan baik, dan itulah persis bar kompatibilitas yang menentukan hidup-mati sebuah gateway. Riwayat dukungannya juga punya satu bug nyata yang layak diketahui. Sampai awal 2026, model yang terdaftar via OPENAI_API_BASE diberi prefix otomatis sebagai provider openai-proxy sementara pembuatan agent memvalidasi terhadap daftar prefix yang diterima yang lebih pendek, jadi model proxy terdaftar tapi tidak bisa dipakai untuk membuat agent. Isu ini ditutup dengan perbaikan di Januari 2026; jika Anda menjalankan server lama yang di-pin dan pembuatan agent menolak model yang jelas didaftarkan server, ketidakcocokan itulah yang Anda hadapi, dan upgrade adalah perbaikannya. Satu target bergerak lagi: permukaan produk Letta terus bergeser, dan dokumentasinya saat ini mengarahkan pengguna baru ke mode deployment yang lebih baru sambil mencatat bahwa image Docker klasik bukan lagi permukaan yang aktif dipelihara. Environment variable di atas adalah mekanisme terdokumentasi untuk server self-hosted; cek dokumentasi saat ini untuk artefak server mana yang direkomendasikan upstream pada minggu Anda melakukan deploy.

# 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

Memilih model untuk agent stateful.

Evaluasi yang penting adalah fidelitas loop: buat agent test, lakukan percakapan yang memaksa update memori, lalu baca core memory agent dan verifikasi ia benar-benar berubah. Model bisa menulis balasan yang memikat dan tetap gagal kontrak memori, dan hanya tes loop yang menangkap itu.

  • Editing memori adalah kerja tool yang terstruktur. claude-sonnet-4-6 dan gpt-5.5 menangani loop tulis-ulang-memori-sendiri dengan andal, itulah kompetensi inti yang dibutuhkan agent Letta.
  • Agent berumur panjang mengakumulasi context. Model yang tetap koheren jauh ke dalam context window lebih penting di sini dibanding chat tanpa state, itulah tempat claude-opus-4-7 pantas mendapat slotnya untuk asisten berisiko tinggi.
  • Armada agent ringan, satu per pengguna atau per tugas, adalah workload volume. claude-haiku-4-5-20251001 menjaga biaya per-agent tetap datar sambil tetap melakukan tool call yang kompeten.
  • deepseek-v4-pro layak diuji untuk agent yang mencampur reasoning dengan traffic dwibahasa; syarat tool-calling adalah gerbangnya, jadi uji loop-nya, bukan hanya prosanya.
  • Apa pun yang Anda pilih, pilih per agent. Server mendaftarkan seluruh katalog, dan setiap agent terikat ke handle, jadi concierge yang memory-heavy dan agent tugas sekali pakai bisa menjalankan id berbeda berdampingan.

Bayar sesuai pemakaian · di bawah harga resmi

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

ModelHarga ResmiHarga Kami
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

Mode kegagalan spesifik Letta.

Pembuatan agent yang menolak model yang jelas didaftarkan server adalah bug prefix historis. Model yang terdaftar lewat proxy membawa prefix provider yang ditolak pembuatan agent di versi yang terdampak. Perbaikannya mendarat di Januari 2026; di rilis saat ini handle yang ditampilkan di listing model adalah handle yang berfungsi. Jika Anda di-pin ke image lama, ini adalah alasan tunggal terkuat untuk upgrade sebelum mendebug hal lain. Agent yang membalas tapi tidak pernah mengingat adalah kegagalan tool-calling. Entah endpoint-nya tidak mengimplementasikan function calling, atau model di balik id-nya menangani skema tool dengan buruk. Gejalanya adalah percakapan yang berfungsi sementara core memory tidak pernah diupdate. Uji agent yang sama di claude-sonnet-4-6 untuk memisahkan masalah endpoint dari masalah model. Environment variable yang diset di tempat yang salah adalah klasik Docker: OPENAI_API_BASE yang di-export di shell Anda tidak berbuat apa-apa untuk container yang dimulai tanpa flag -e. Variabelnya harus mencapai proses server itu sendiri. Dan karena endpoint bersifat level-server, ingat radius ledaknya: mengubah OPENAI_API_BASE memindahkan setiap agent di server itu. Tidak ada override endpoint per-agent, jadi satu server per gateway adalah topologi yang bersih, dengan pilihan model per agent yang melakukan diferensiasi.

Siapa yang merutekan Letta melalui gateway.

  • Builder asisten persisten yang menginginkan editing memori berkualitas Claude tanpa akun vendor, key, dan permukaan billing terpisah untuk setiap model yang mereka coba.
  • Tim yang menjalankan armada agent di mana setiap pengguna mendapat agent, dan pelacakan penggunaan per-key mengubah biaya nyata lapisan memori menjadi laporan yang terbaca.
  • Peneliti yang membandingkan bagaimana model menangani memori yang mengedit dirinya sendiri, di mana setiap kandidat adalah perubahan handle di agent test alih-alih migrasi provider.
  • Self-hoster di environment di mana akses API vendor langsung diblokir dan satu endpoint gateway adalah yang diizinkan kebijakan jaringan.
  • Developer tanpa akses ke billing vendor tertentu. Akses berbasis top-up tanpa syarat kartu menghilangkan ketergantungan sign-up per provider.

Verifikasi endpoint dan debug agent pertama.

Verifikasi gateway sebelum server: daftar model dengan key, dan jalankan satu chat completion dengan definisi tool terlampir, karena tool calling adalah kapabilitas yang benar-benar diandalkan Letta. Jika round trip tool-call berfungsi di curl, separuh endpoint sudah terbukti. Lalu mulai server dengan dua variabel itu dan baca listing model-nya. Model yang muncul di sana membuktikan registrasi; agent yang berhasil dibuat dari handle yang terdaftar membuktikan jalur prefix; percakapan yang mengupdate core memory membuktikan loop-nya dari ujung ke ujung. Debug dalam urutan itu, karena setiap tahap punya set kegagalan yang berbeda: env var, versi server, dan kompetensi tool model masing-masing. Setelah agent berjalan, konsol APIsRouter menunjukkan model per request, hitungan token, dan pengeluaran. Agent stateful menagih lebih banyak per interaksi dari yang disarankan transkripnya, karena manajemen memori berjalan di balik setiap balasan, dan log penggunaan adalah tempat pengganda tersembunyi itu menjadi angka yang bisa Anda budget.

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"}}}}}]}'

Pertanyaan umum

Bagaimana cara mengarahkan Letta ke endpoint OpenAI-compatible custom?

Set OPENAI_API_BASE dan OPENAI_API_KEY di environment server Letta self-hosted, misalnya sebagai flag -e di docker run. Tidak ada field base-URL per-agent; endpoint dikonfigurasi di level server dan setiap agent di server itu memakainya.

Apakah Letta secara resmi mendukung endpoint proxy?

Upstream menyebutnya tidak didukung secara resmi dan memperingatkan Anda mungkin menemui error, merekomendasikan provider langsung. Dalam praktik, syaratnya adalah kompatibilitas OpenAI yang ketat termasuk function calling; endpoint yang mengimplementasikan spek lengkap menjalankan loop agent, dan itulah bar tempat APIsRouter dibangun.

Mengapa function calling disyaratkan?

Agent Letta mengelola memorinya sendiri lewat tool call: membaca, menulis ulang, dan mengarsipkan memori adalah fungsi yang dipanggil model di setiap interaksi. Endpoint atau model tanpa tool calling yang solid tidak bisa menjalankan loop-nya, dan gejalanya adalah agent yang chat tapi tidak pernah mengingat.

Mengapa pembuatan agent menolak model yang didaftarkan server saya?

Versi server lama mendaftarkan model proxy di bawah prefix provider yang ditolak validasinya oleh pembuatan agent, bug yang ditutup dengan perbaikan di Januari 2026. Upgrade server-nya, lalu pakai handle persis seperti yang muncul di listing model.

Bisakah agent Letta berbeda memakai model berbeda melalui satu endpoint?

Ya. Server mendaftarkan setiap id yang dilayani endpoint, dan setiap agent terikat ke handle model saat dibuat. Agent concierge di claude-opus-4-7 dan armada agent tugas di claude-haiku-4-5-20251001 bisa berbagi satu server dan satu key.

Apakah ini berlaku untuk Letta Cloud atau server self-hosted?

Server self-hosted, tempat Anda mengontrol environment-nya. Letta Cloud mengelola panggilan modelnya sendiri server-side. Catat juga bahwa artefak self-hosting yang direkomendasikan Letta terus bergeser, jadi cek dokumentasi saat ini untuk mode deployment yang mereka pelihara hari ini.