Chat și completări
Cele trei formate wire care ajung la `codai`: OpenAI Chat Completions, Anthropic Messages, OpenAI Responses.
Toate cele trei endpoint-uri rutează spre același lanț de modele și împart autentificarea, limitele de rată, prompt caching-ul și înregistrarea usage-ului. Alege-l pe cel pe care SDK-ul tău îl vorbește deja — ghidul formatelor wire explică diferențele, iar ghidul de header-e acoperă fiecare extensie x-codai-* pe care o vezi mai jos.
Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri header
Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Grupează cererile unei conversații pentru chitanțe, stickiness și prompt caching.
length <= 128Nivelul de efort test-time-compute. Are prioritate față de câmpul reasoning_effort din body. max este o extensie codai peste high din OpenAI; none este acceptat ca alias pentru minimal.
Valoare în
- "minimal"
- "low"
- "medium"
- "high"
- "max"
1/true activează extended thinking pe modelele care îl suportă (bugetul din x-codai-thinking-budget, implicit 16384 tokeni).
Buget de tokeni de thinking (întreg pozitiv) folosit când x-codai-thinking este activ. Marchează cererea ca reglată de client, așa că planificatorul de efort nu o suprascrie.
1 păstrează bugetul complet de thinking pe turele de continuare cu tool-uri, în loc de bugetul redus aplicat implicit de gateway.
0/false dezactivează prompt caching pentru un id de model DIRECT. Ignorat (caching forțat activ) pentru alias-urile router codai / codai-*.
1/true scoate cererea din contorizarea task-urilor. Valid doar pe alias-urile utilitare; pe codai cererea este respinsă cu 400.
Id de corelare a task-ului ales de client. Cererile care îl împart sunt atribuite aceluiași task; este returnat ca header de răspuns x-codai-task-id când este cunoscut în 150 ms.
pass sau fail — rezultat auto-raportat care închide task-ul atașat. Respectat doar pentru suprafețele desktop/CLI (x-codai-client) și doar împreună cu un x-codai-task-evidence de tip mașină.
Valoare în
- "pass"
- "fail"
Tipul de dovadă care susține x-codai-task-outcome; doar exec_verdict și reexec închid un task.
Valoare în
- "exec_verdict"
- "reexec"
Etichetă explicită a suprafeței client, folosită la atribuirea task-urilor (desktop/<ver>, phone-android/<ver>, codai-cli/<ver>, hub/<ver>). Orice altceva este clasificat drept proxy.
1 face tura complet stateless: nu se citește memoria, nu se persistă nimic, fără sticky routing.
1 sare peste citirea memoriei anterioare, dar persistă totuși această tură.
1 restrânge recall-ul de memorie la intrările promovate la proven.
1 rotește către un namespace de sesiune nou, generat de server, pentru această cerere, ignorând x-codai-session-id.
Indiciu de scope pe repository (ex. owner/name) folosit la alegerea playbook-ului de sesiune; majoritatea proxy-urilor IDE nu îl pot trimite, așa că gateway-ul deduce scope-ul și din transcript.
Identificator de agent furnizat de client, persistat împreună cu evenimentul de consum pentru analize per agent.
1 interzice fan-out-ul de sub-agenți delegate_to_model și forțează calea nativă de streaming.
agent cere agent mode (prompt de agent pe server + tool-uri server). 403 când cheia/planul nu are dreptul.
Valoare în
- "agent"
1/true activează tool-urile din gateway fără agent mode complet (agent mode îl implică).
1/true activează orchestrarea multi-model (fan-out pe sub-task-uri). Necesită cel puțin două modele în allowlist-ul cheii.
verify activează cascada FrugalGPT (draft ieftin, verificare pe frontier). Rezultatul apare în x-codai-cascade-status.
Numărul de eșantioane best-of-N (ex. 3); 0/off dezactivează explicit best-of-ul automat. Rezultatul în x-codai-best-of-status.
Adâncimea judecătorului pentru best-of-N.
Activează/dezactivează pasul de auto-verificare reflect (1/0). Rezultatul în x-codai-reflect-status.
Activează/dezactivează verificarea procesului la nivel de pas (1/0). Rezultatul în x-codai-step-verify-status.
Activează/dezactivează verificarea planului pe orizont lung (1/0). Rezultatul în x-codai-plan-status.
1 rulează consens iterativ pe toate nivelurile (non-stream, doar pe alias-ul router). Rezultatul în x-codai-consensus-status.
Compactare opt-in a transcriptului pe server (1). Economiile apar în x-codai-compacted / x-codai-compact-saved-chars.
1/on activează retrieval-ul de relevanță peste transcript înainte de dispatch (x-codai-retrieval-reduced).
Activează/dezactivează injecția de euristici învățate în prompt (1/0).
Suprascrie modul preambulului de identitate (on / off / shadow).
Suprascrie per cerere modul playbook; x-codai-no-playbook: 1 este kill-switch-ul dur.
1 dezactivează injecția playbook-ului de sesiune pentru această cerere.
1 adaugă trace-ul complet al deciziei router-ului ca header-e de răspuns x-codai-router-* suplimentare.
Corpul cererii
application/json
Definiții TypeScript
Folosește tipul request body în TypeScript.
Body OpenAI Chat Completions. Câmpurile necunoscute sunt acceptate (passthrough) și forwardate către upstream-urile compatibile OpenAI; upstream-urile Anthropic le ignoră.
Corpul răspunsului
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/chat/completions" \ -H "Content-Type: application/json" \ -d '{ "messages": [ { "role": "system" } ] }'{ "id": "chatcmpl_9f1c2b7e4d", "object": "chat.completion", "created": 1790108310, "model": "claude-sonnet-5", "choices": [ { "index": 0, "message": { "role": "system", "content": "string", "name": "string", "tool_call_id": "string", "tool_calls": [ { "id": "toolu_01Xy9k3mQ", "type": "function", "function": { "name": "string", "arguments": "{\"path\":\"src/index.ts\"}" } } ] }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 0, "completion_tokens": 0, "total_tokens": 0, "prompt_tokens_details": { "cached_tokens": 0 }, "cache_creation_input_tokens": 0 }}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri header
Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Grupează cererile unei conversații pentru chitanțe, stickiness și prompt caching.
length <= 128Header de cheie API în stil Anthropic. Alternativă la Authorization: Bearer; ignorat când există un
header Bearer.
Tier-ul de efort de calcul la inferență. Are prioritate față de reasoning_effort din body. none
este normalizat la minimal; valorile necunoscute sunt ignorate.
Valoare în
- "minimal"
- "low"
- "medium"
- "high"
- "max"
Activezi extended thinking în upstream (1 sau true). Buget implicit 16384 tokeni.
Valoare în
- "1"
- "true"
- "0"
- "false"
Bugetul de thinking în tokeni (întreg pozitiv). Pe modelele cu adaptive thinking este mapat la un nivel de efort. Setarea lui spune și alocatorului de calcul să nu-și injecteze propriul buget.
Dezactivarea prompt caching-ului (0 / false). Respectată doar pe apelurile directe de model —
caching-ul este forțat PORNIT pentru alias-ul router codai.
Valoare în
- "0"
- "false"
- "1"
- "true"
Forțezi (1) sau suprimi (0) compactarea conversației pe server pentru această cerere.
Valoare în
- "0"
- "1"
1 dezactivează delegarea către sub-agenți pentru această cerere. Combinat cu stream: true și fără
tools, deblochează calea nativă de streaming pass-through pe tier-urile cu sub-agenți.
Valoare în
- "1"
1 renunță la contorizarea task-urilor. Respectat doar pentru alias-urile utilitare eligibile; pe un
model complet cererea este respinsă cu 400.
Valoare în
- "1"
Eșantionare best-of-N pe calea buffered (condiționată de tier; ignorată fără drept).
Adâncimea de sub-agent la care se aplică best-of pe calea buffered.
Identificator liber al clientului, înregistrat pe task-ul deschis pentru această tură.
Corpul cererii
application/json
Definiții TypeScript
Folosește tipul request body în TypeScript.
Cererea publică Anthropic Messages. Câmpurile necunoscute de la nivelul superior trec validarea și sunt ignorate, dacă nu sunt listate aici ca extensie codai.
Corpul răspunsului
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/messages" \ -H "Content-Type: application/json" \ -d '{ "model": "codai", "messages": [ { "role": "user", "content": "string" } ], "max_tokens": 4096 }'{ "id": "msg_1f0d5b7a-4c2e-4a9b-9c1d-2e3f4a5b6c7d", "type": "message", "role": "assistant", "model": "codai", "content": [ { "type": "text", "text": "string" } ], "stop_reason": "end_turn", "stop_sequence": "string", "usage": { "input_tokens": 0, "output_tokens": 0, "cache_read_input_tokens": 0, "cache_creation_input_tokens": 0 }}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri header
Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Grupează cererile unei conversații pentru chitanțe, stickiness și prompt caching.
length <= 128Nivelul de efort; când este prezent are prioritate și reasoning.effort din body nu mai este mapat.
Valoare în
- "minimal"
- "low"
- "medium"
- "high"
- "max"
0/false dezactivează prompt caching pentru un id de model direct (ignorat pentru alias-ul codai). Forwardat către apelul interior chat-completions.
Forwardat către apelul interior; valid doar pe alias-urile utilitare (400 pe codai).
Forwardat către apelul interior — tură stateless, nimic persistat.
Forwardat către apelul interior — eticheta suprafeței client pentru atribuirea task-urilor.
Corpul cererii
application/json
Definiții TypeScript
Folosește tipul request body în TypeScript.
Corpul răspunsului
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/responses" \ -H "Content-Type: application/json" \ -d '{}'{ "id": "resp_chatcmpl_9f1c2b7e4d", "object": "response", "created_at": 0, "status": "completed", "model": "string", "output": [ { "type": "function_call", "id": "fc_toolu_01Xy9k3mQ", "call_id": "string", "name": "string", "arguments": "string", "status": "completed" } ], "output_text": "string", "usage": { "input_tokens": 0, "input_tokens_details": { "cached_tokens": 0 }, "output_tokens": 0, "total_tokens": 0 }}