Agenți
Rulezi un agent server-side sincron sau ca run asincron pe care îl interoghezi, îl urmărești în stream sau îl anulezi.
API-ul de agenți împachetează bucla proprie a gateway-ului cu unelte. Rulările sincrone returnează răspunsul inline; cele asincrone returnează 202 cu un id pe care îl interoghezi, îl urmărești peste SSE (replay complet la reconectare — fără Last-Event-ID) sau îl anulezi. Concepte și limite: ghidul de agenți.
bearerAuthAutorizareBearer <codai_…>O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).
x-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128application/json- body
Corpul lui POST /v1/agents/run.
task*stringObiectivul, în limbaj natural. Devine tura utilizatorului.
1 <= length <= 64000context?stringMaterial de sprijin opțional, adăugat după task sub un titlu ## Context.
length <= 256000system?stringSuprascriere opțională a prompt-ului de sistem, trimisă ca prim mesaj înaintea scheletului de agent.
length <= 32000model?stringAliasul de model prin care se rutează.
length <= 128"codai"max_steps?integerPlafonul cerut pentru adâncimea buclei de agent. Validat, dar neaplicat — se folosește adâncimea de agent-mode a tier-ului.
1 <= value <= 16Rularea finalizată.
application/json- response
Răspunsul lui POST /v1/agents/run.
result*stringRăspunsul final al asistentului (șir gol când modelul nu a produs conținut).
status*"completed""completed"usage*Numărul agregat de tokeni pentru întreaga rulare.
model*stringModelul upstream concret care a servit tura finală.
event_id*|Id-ul evenimentului de usage pentru corelarea feedback-ului; null când nu s-a scris niciunul.
uuidcurl -X POST 'https://ai.codai.ro/v1/agents/run' \ -H 'Content-Type: application/json' \ -d '{ "task": "Find the three most recent BNR EUR/RON rates and summarise the trend."}'{ "result": "string", "status": "completed", "usage": { "prompt_tokens": 0, "completion_tokens": 0 }, "model": "string", "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7"}bearerAuthAutorizareBearer <codai_…>O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).
x-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128application/json- body
Corpul lui POST /v1/agents/runs; extinde cererea sincronă.
task*stringObiectivul, în limbaj natural. Devine tura utilizatorului.
1 <= length <= 64000context?stringMaterial de sprijin opțional, adăugat după task sub un titlu ## Context.
length <= 256000system?stringSuprascriere opțională a prompt-ului de sistem, trimisă ca prim mesaj înaintea scheletului de agent.
length <= 32000model?stringAliasul de model prin care se rutează.
length <= 128"codai"max_steps?integerPlafonul cerut pentru adâncimea buclei de agent. Validat, dar neaplicat — se folosește adâncimea de agent-mode a tier-ului.
1 <= value <= 16budget_seconds?integerBugetul de timp cerut. Stocat (implicit 300), dar neaplicat.
10 <= value <= 1800client_request_id?stringCheie de idempotență limitată la utilizatorul tău — o repetare întoarce id-ul rulării existente.
length <= 200Rularea a fost acceptată și pusă în coadă.
application/json- response
Răspunsul lui POST /v1/agents/runs (HTTP 202).
id*stringuuidstatus*"queued"Întotdeauna queued la trimitere, chiar și când o repetare idempotentă nimerește o rulare care a avansat între timp.
"queued"poll*stringURL-ul relativ al endpoint-ului de interogare pentru această rulare.
curl -X POST 'https://ai.codai.ro/v1/agents/runs' \ -H 'Content-Type: application/json' \ -d '{ "task": "Find the three most recent BNR EUR/RON rates and summarise the trend."}'{ "id": "3f9d2c1e-7b4a-4e0f-9a1d-2c5b6e7f8a90", "status": "queued", "poll": "/v1/agents/runs/3f9d2c1e-7b4a-4e0f-9a1d-2c5b6e7f8a90"}bearerAuthAutorizareBearer <codai_…>O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).
days?integerLungimea ferestrei în zile, limitată la 1–90.
1 <= value <= 907x-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Agregatele pentru fereastră.
application/json- response
Agregate peste rulările tale din fereastră. Doar window_days și total sunt garantate; celelalte câmpuri
lipsesc pentru cheile legacy de compatibilitate, care nu pot deține rulări persistate.
window_days*integer1 <= value <= 90total*integer0 <= valuecompleted?integer0 <= valuefailed?integer0 <= valuecancelled?integer0 <= valuein_flight?integerRulări aflate acum în queued sau running.
0 <= valueprompt_tokens?integer0 <= valuecompletion_tokens?integer0 <= valueavg_steps?integerMedia rotunjită a lui step_count.
0 <= valueavg_latency_ms?integerMedia rotunjită a lui finished_at - started_at peste rulările terminate.
0 <= valuecurl -X GET 'https://ai.codai.ro/v1/agents/runs/stats'{ "window_days": 1, "total": 0, "completed": 0, "failed": 0, "cancelled": 0, "in_flight": 0, "prompt_tokens": 0, "completion_tokens": 0, "avg_steps": 0, "avg_latency_ms": 0}bearerAuthAutorizareBearer <codai_…>O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).
id*stringUUID-ul rulării de agent întors de POST /v1/agents/runs.
uuidx-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Rularea.
application/json- response
Vederea de interogare a unei rulări persistate (GET /v1/agents/runs/{id}).
id*stringuuidstatus*AgentRunStatusCiclul de viață al rulării — queued → running → una dintre completed, failed, cancelled.
"queued""running""completed""failed""cancelled"task*stringObiectivul trimis, neschimbat.
model*|Aliasul de model cerut (codai când a fost omis la trimitere).
result*|Răspunsul final; setat doar după ce status devine completed.
error*|Mesajul de eșec (≤ 2000 de caractere); setat doar când status este failed.
step_count*integerPașii de buclă executați până acum. Nu este incrementat de executorul curent.
0 <= valueusage*Numărul agregat de tokeni pentru întreaga rulare.
created_at*stringdate-timestarted_at*|Când a fost preluată execuția; null cât timp e queued.
date-timefinished_at*|Setat la completed, failed și cancelled.
date-timecurl -X GET 'https://ai.codai.ro/v1/agents/runs/497f6eca-6276-4993-bfeb-53cbbbba6f08'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "status": "queued", "task": "string", "model": "string", "result": "string", "error": "string", "step_count": 0, "usage": { "prompt_tokens": 0, "completion_tokens": 0 }, "created_at": "2019-08-24T14:15:22Z", "started_at": "2019-08-24T14:15:22Z", "finished_at": "2019-08-24T14:15:22Z"}bearerAuthAutorizareBearer <codai_…>O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).
id*stringUUID-ul rulării de agent întors de POST /v1/agents/runs.
uuidx-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Urma de pași.
application/json- response
id*stringId-ul rulării.
uuidsteps*array<>curl -X GET 'https://ai.codai.ro/v1/agents/runs/497f6eca-6276-4993-bfeb-53cbbbba6f08/steps'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "steps": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "runId": "78c33d18-170c-44d3-a227-b3194f134f73", "seq": 0, "kind": "plan", "summary": "string", "detail": null, "latencyMs": 0, "createdAt": "2019-08-24T14:15:22Z" } ]}bearerAuthAutorizareBearer <codai_…>O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).
id*stringUUID-ul rulării de agent întors de POST /v1/agents/runs.
uuidx-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Stream SSE; vezi descrierea pentru numele evenimentelor și payload-uri.
response?stringtext/event-streamcurl -X GET 'https://ai.codai.ro/v1/agents/runs/497f6eca-6276-4993-bfeb-53cbbbba6f08/stream'"string"bearerAuthAutorizareBearer <codai_…>O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).
id*stringUUID-ul rulării de agent întors de POST /v1/agents/runs.
uuidx-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Rularea este acum anulată.
application/json- response
id*stringuuidstatus*"cancelled""cancelled"curl -X POST 'https://ai.codai.ro/v1/agents/runs/497f6eca-6276-4993-bfeb-53cbbbba6f08/cancel'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "status": "cancelled"}Ultima actualizare: