Letta agent-কে একটা OpenAI-compatible endpoint-এ চালান।
Updated 2026-07-29
Self-hosted Letta environment থেকে OPENAI_API_BASE এবং OPENAI_API_KEY পড়ে, তাই দুটো variable এর stateful agent-কে একটা gateway-এ point করে। Upstream proxy endpoint-কে unofficial বলে ডাকে, এবং এই page সেটাকে গুরুত্বের সাথে নেয়: কী কাজ করে, requirement কী, এবং sharp edge কোথায় ছিল।
দ্রুত উত্তর: server-এ দুটো environment variable।
OpenAI-compatible endpoint-এর জন্য Letta-এর documented path হলো self-hosted server-এর environment configuration: server শুরু করার সময় OPENAI_API_BASE-কে endpoint URL-এ এবং OPENAI_API_KEY-কে এর key-তে সেট করুন, এবং Letta সেই endpoint serve করা model register করে। APIsRouter-এর জন্য base হলো https://api.apisrouter.com/v1। UI-তে per-agent base-URL field নেই; endpoint একটা server-level decision, যে কারণে environment-ই গুরুত্বপূর্ণ surface। একটা requirement non-negotiable এবং বাকি সবকিছুর আগে পড়ার যোগ্য: Letta-এর docs বলে OpenAI-compatible endpoint অবশ্যই function calling সাপোর্ট করতে হবে, কারণ agent loop tool call-এর উপর বানানো। এমন একটা endpoint যা শুধু plain chat completions করে সে একদমই একটা Letta agent চালাতে পারে না। APIsRouter-এর catalog model /v1/chat/completions-এর মাধ্যমে standard tool calling বলে, যা ঠিক সেই shape যা 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 একটা chat app-এর চেয়ে তার model-এর উপর বেশি নির্ভর করে।
Letta (GitHub-এ letta-ai, প্রায় 24K star) MemGPT research project থেকে বেড়ে উঠেছে এবং stateful agent বানায়: এমন agent যাদের persistent, self-editing memory session জুড়ে টিকে থাকে। একটা chat client যেখানে আপনার message পাঠায় এবং reply print করে, একটা Letta agent প্রতিটা interaction-এ একটা inner loop চালায়, যা জানে তার উপর reason করে, নিজের core memory এবং archival storage পড়তে ও rewrite করতে memory tool call করে, এবং তারপরই একটা response তৈরি করে। সেই architecture-এর endpoint routing-এর জন্য দুটো পরিণাম আছে। প্রথমত, loop-এর প্রতিটা step একটা tool-calling request, যে কারণে function calling একটা nice-to-have না বরং একটা hard requirement; tool schema-তে হোঁচট খাওয়া একটা model এখানে gracefully degrade করে না, এটা agent-এর মনে রাখার ক্ষমতা ভেঙে দেয়। দ্বিতীয়ত, প্রতি interaction-এ request volume conversation transcript যা মনে হয় তার চেয়ে বেশি, কারণ visible reply-র পাশাপাশি memory management fire করে। এই সবকিছু serve করা model id endpoint-এর কাছে একটা plain string, তাই OPENAI_API_BASE-এর পেছনে একটা multi-vendor gateway থাকলে, একটা Claude id agent loop চালাতে পারে যখন একই server-এ lighter agent-কে একটা fast id serve করে, প্রতিটা তার নিজস্ব handle দিয়ে addressed।
সততার সাথে support state, upstream থেকে সরাসরি।
Letta-এর নিজস্ব documentation বলে OpenAI proxy endpoint officially সাপোর্টেড না এবং আপনি error পেতে পারেন, direct provider connection recommend করে। সেই warning quote করার যোগ্য, চাপা দেওয়ার না, কারণ এই বিষয়ে বেশিরভাগ page ভান করে এটা নেই। বাস্তবে এর মানে যতটা শোনায় তার চেয়ে সংকীর্ণ: Letta first-party API-এর বিরুদ্ধে test করে, এবং একটা endpoint যা OpenAI semantics থেকে বিচ্যুত হয়, বিশেষত tool calling-এর চারপাশে, এমন failure তৈরি করে যা upstream prioritize করবে না। একটা endpoint যা genuinely spec implement করে, tool call সহ, agent loop ভালোভাবে চালায়, এবং সেটাই ঠিক compatibility bar যার উপর একটা gateway টিকে থাকে বা মরে। Support history-তে জানার যোগ্য একটা real bug ছিল। 2026-এর শুরু পর্যন্ত, OPENAI_API_BASE দিয়ে registered model auto-prefixed হতো একটা openai-proxy provider হিসেবে যখন agent creation একটা ছোট accepted prefix list-এর বিরুদ্ধে validate করত, তাই proxy model register হতো কিন্তু agent তৈরি করতে ব্যবহার করা যেত না। issue January 2026-এ একটা fix দিয়ে close হয়েছে; যদি একটা pinned পুরনো server চালান এবং agent creation server clearly list করা model প্রত্যাখ্যান করে, ঠিক এই mismatch-ই আপনি face করছেন, এবং upgrade করাই fix। আরেকটা moving target: Letta-এর product surface পাল্টাচ্ছে, এবং এর docs বর্তমানে নতুন user-দের নতুন deployment mode-এর দিকে নিয়ে যায়, উল্লেখ করে classic Docker image আর actively maintained surface না। উপরের environment variable self-hosted server-এর জন্য documented mechanism; আপনি যে সপ্তাহে deploy করছেন সেই সপ্তাহে upstream কোন server artifact recommend করে তার জন্য current docs check করুন।
# 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 agentsStateful agent-এর জন্য model বেছে নেওয়া।
যে evaluation গুরুত্বপূর্ণ তা হলো loop fidelity: একটা test agent তৈরি করুন, memory update বাধ্য করে এমন একটা conversation করুন, তারপর agent-এর core memory পড়ুন এবং verify করুন এটা আসলে পাল্টেছে কিনা। একটা model charming reply লিখতে পারে এবং তবু memory contract fail করতে পারে, এবং শুধু loop test-ই সেটা ধরে।
- Memory editing structured tool কাজ। claude-sonnet-4-6 এবং gpt-5.5 rewrite-your-own-memory loop reliably handle করে, যা একটা Letta agent-এর core competence।
- লম্বা বাঁচা agent context accumulate করে। যে model context window-এর গভীরে coherent থাকে সেটা stateless chat-এর চেয়ে এখানে বেশি গুরুত্বপূর্ণ, যেখানে high-stakes assistant-এর জন্য claude-opus-4-7 তার slot earn করে।
- Lightweight agent-এর fleet, প্রতি user বা প্রতি task একটা, volume workload। claude-haiku-4-5-20251001 competent tool call করার পাশাপাশি per-agent cost flat রাখে।
- যেসব agent reasoning-কে bilingual traffic-এর সাথে মেশায় তাদের জন্য deepseek-v4-pro test করার যোগ্য; tool-calling requirement gate, তাই শুধু prose না, loop test করুন।
- যা-ই বেছে নিন, per agent বেছে নিন। Server পুরো catalog register করে, এবং প্রতিটা agent একটা handle-এ bind করে, তাই একটা memory-heavy concierge এবং একটা disposable task agent পাশাপাশি ভিন্ন 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-specific failure mode।
Server যে model list করে তা agent creation প্রত্যাখ্যান করা historical prefix bug। proxy দিয়ে registered model একটা provider prefix বহন করত যা affected version-এ agent creation accept করতে অস্বীকার করত। fix January 2026-এ এসেছে; current release-এ model listing-এ দেখানো handle-ই কাজ করে। যদি একটা পুরনো image-এ pinned থাকেন, অন্য কিছু debug করার আগে upgrade করাই সবচেয়ে শক্তিশালী একক কারণ। যে agent reply করে কিন্তু কখনো মনে রাখে না সেটা একটা tool-calling failure। হয় endpoint function calling implement করে না, বা id-এর পেছনের model tool schema খারাপভাবে handle করে। Symptom হলো conversation যা কাজ করে যখন core memory কখনো update হয় না। endpoint সমস্যা এবং model সমস্যা আলাদা করতে একই agent claude-sonnet-4-6-এ test করুন। ভুল জায়গায় সেট করা environment variable হলো classic Docker সমস্যা: আপনার shell-এ export করা OPENAI_API_BASE -e flag ছাড়া শুরু হওয়া একটা container-এর জন্য কিছুই করে না। Variable-গুলো server process নিজের কাছে পৌঁছাতে হবে। এবং যেহেতু endpoint server-level, blast radius মনে রাখুন: OPENAI_API_BASE পাল্টানো সেই server-এর প্রতিটা agent move করে। কোনো per-agent endpoint override নেই, তাই প্রতি gateway-তে একটা server clean topology, model choice per agent differentiation করে।
কারা একটা gateway দিয়ে Letta route করে।
- Persistent assistant-এর builder যারা প্রতিটা model try করার জন্য একটা আলাদা vendor account, key, এবং billing surface ছাড়াই Claude-quality memory editing চান।
- Team যারা agent fleet চালায় যেখানে প্রতি user-এর একটা agent আছে, এবং per-key usage tracking memory layer-এর real cost-কে একটা readable report-এ পরিণত করে।
- Researcher যারা তুলনা করছে model কীভাবে self-editing memory handle করে, যেখানে প্রতিটা candidate একটা provider migration না বরং test agent-এ একটা handle change।
- Self-hoster যাদের environment-এ direct vendor API access blocked এবং network policy শুধু একটা gateway endpoint allow করে।
- Developer যাদের কোনো নির্দিষ্ট vendor-এর billing-এ access নেই। কোনো card requirement ছাড়া Top-up based access per-provider sign-up dependency সরিয়ে দেয়।
Endpoint verify করুন এবং প্রথম agent debug করুন।
Server-এর আগে gateway verify করুন: key দিয়ে model list করুন, এবং একটা tool definition attach করা একটা chat completion চালান, কারণ tool calling হলো সেই capability যার উপর Letta আসলে নির্ভর করে। যদি curl-এ tool-call round trip কাজ করে, endpoint অংশ প্রমাণিত। তারপর দুটো variable দিয়ে server শুরু করুন এবং এর model listing পড়ুন। সেখানে model দেখা যাওয়া registration প্রমাণ করে; একটা listed handle থেকে সফলভাবে তৈরি একটা agent prefix path প্রমাণ করে; core memory update করা একটা conversation পুরো loop end to end প্রমাণ করে। সেই order-এ debug করুন, কারণ প্রতিটা stage-এর আলাদা failure set আছে: যথাক্রমে env var, server version, এবং model-এর tool competence। একবার agent চললে, APIsRouter console per-request model, token count, এবং spend দেখায়। Stateful agent তাদের transcript যা মনে হয় তার চেয়ে বেশি per interaction bill করে, যেহেতু memory management প্রতিটা reply-র পেছনে চলে, এবং usage log-ই যেখানে সেই hidden multiplier একটা সংখ্যায় পরিণত হয় যা আপনি 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"}}}}}]}'সাধারণ প্রশ্ন
আমি কীভাবে Letta-কে একটা কাস্টম OpenAI-compatible endpoint-এ point করব?
Self-hosted Letta server-এর environment-এ OPENAI_API_BASE এবং OPENAI_API_KEY সেট করুন, উদাহরণস্বরূপ docker run-এ -e flag হিসেবে। কোনো per-agent base-URL field নেই; endpoint server level-এ configured এবং সেই server-এর প্রতিটা agent এটা ব্যবহার করে।
Letta কি officially proxy endpoint সাপোর্ট করে?
Upstream এগুলোকে officially সাপোর্টেড না বলে এবং warn করে আপনি error পেতে পারেন, direct provider recommend করে। বাস্তবে requirement হলো strict OpenAI compatibility function calling সহ; পূর্ণ spec implement করা একটা endpoint agent loop চালায়, যা ঠিক সেই bar যার বিরুদ্ধে APIsRouter বানানো।
Function calling কেন required?
Letta agent tool call দিয়ে তাদের নিজস্ব memory manage করে: memory পড়া, rewrite করা, এবং archive করা এমন function যা model প্রতিটা interaction-এ invoke করে। শক্তিশালী tool calling ছাড়া একটা endpoint বা model loop চালাতে পারে না, এবং symptom হলো একটা agent যা chat করে কিন্তু কখনো মনে রাখে না।
কেন agent creation আমার server-এ list করা model প্রত্যাখ্যান করে?
পুরনো server version proxy model-কে একটা provider prefix-এর নিচে register করত যা agent creation validate করতে অস্বীকার করত, একটা bug যা January 2026-এ একটা fix দিয়ে close হয়েছে। server upgrade করুন, তারপর model listing-এ যেভাবে দেখায় ঠিক সেভাবে handle ব্যবহার করুন।
একাধিক Letta agent কি এক endpoint দিয়ে ভিন্ন model ব্যবহার করতে পারে?
হ্যাঁ। Endpoint serve করা প্রতিটা id server register করে, এবং প্রতিটা agent creation-এ একটা model handle-এ bind হয়। claude-opus-4-7-এ একটা concierge agent এবং claude-haiku-4-5-20251001-এ task agent-এর একটা fleet এক server এবং এক key share করতে পারে।
এটা কি Letta Cloud নাকি self-hosted server-এ প্রযোজ্য?
Self-hosted server, যেখানে আপনি environment control করেন। Letta Cloud তার নিজস্ব model call server-side manage করে। এটাও note করুন যে Letta-এর recommend করা self-hosting artifact পাল্টাচ্ছে, তাই আজ কোন deployment mode maintain করে তার জন্য current docs check করুন।