Lewati ke konten
kenari.

Responses (OpenAI agent wire)

Endpoint POST /v1/responses kompatibel dengan OpenAI Responses API dan menyediakan subset stateless untuk klien coding-agent seperti Codex CLI (wire_api = "responses"). Codex CLI versi terbaru tidak lagi mendukung wire chat (wire_api = "chat" langsung gagal sejak sekitar versi 0.140). Karena itu, gunakan endpoint ini untuk memakai Codex melalui kenari.

kenari tidak menyimpan response di server, sehingga chaining melalui previous_response_id tidak tersedia. Field store tetap diterima, tetapi diabaikan sehingga perilakunya selalu sama dengan store: false. Jika previous_response_id berisi nilai selain null, request akan ditolak dengan status 400 disertai pesan yang jelas. Dengan begitu, klien tidak akan mengira continuation tersedia padahal tidak.

Field yang wajib ada: model dan input.

FieldTipeKeterangan
modelstringWajib. Id model, misalnya gpt-5-5.
inputarrayWajib. Daftar item percakapan: message (role developer/user/assistant), function_call, function_call_output.
instructionsstringOpsional. Instruksi sistem/developer level atas, dilebur ke system prompt.
toolsarrayOpsional. Deklarasi tool function FLAT di level atas (bukan bersarang seperti wire chat). Tipe tool lain (namespace, web_search, dst.) diabaikan diam-diam di v1.
tool_choicestring/objectOpsional. "auto", "none", "required", atau {"type": "function", "name": "..."}.
reasoningobjectOpsional. {"effort": "low"|"medium"|"high"|"xhigh"|"max"} untuk model penalaran, lihat Penalaran.
max_output_tokensintegerOpsional. Batas token yang dihasilkan.
temperaturenumberOpsional.
top_pnumberOpsional.
streambooleanOpsional. Aktifkan streaming.
storebooleanOpsional. Diterima, diabaikan.
previous_response_idstring/nullOpsional. Wajib null atau tidak diisi. Nilai lain ditolak 400.
{
"id": "resp_...",
"object": "response",
"created_at": 1730000000,
"status": "completed",
"model": "gpt-5-5",
"output": [
{"type": "message", "id": "msg_1", "role": "assistant", "content": [
{"type": "output_text", "text": "Halo! Ada yang bisa saya bantu?"}
]}
],
"usage": {
"input_tokens": 9,
"output_tokens": 12,
"total_tokens": 21,
"input_tokens_details": {"cached_tokens": 0}
}
}

Pemanggilan function tool ditampilkan sebagai item function_call di dalam array output, dengan call_id, name, dan arguments berupa string JSON. Item ini dapat muncul sebelum atau sesudah item message, mengikuti urutan aslinya.

~/.codex/config.toml
model = "gpt-5-5"
model_provider = "kenari"
[model_providers.kenari]
name = "kenari"
base_url = "https://kenari.id/v1"
wire_api = "responses"
env_key = "KENARI_API_KEY"
requires_openai_auth = false
Terminal window
export KENARI_API_KEY=kn-...
codex

Atur "stream": true untuk menerima respons secara bertahap dalam bentuk server-sent events dengan format Responses (response.created, response.output_item.added, response.reasoning_summary_part.added, response.reasoning_summary_text.delta, response.reasoning_summary_text.done, response.reasoning_summary_part.done, response.output_text.delta / response.function_call_arguments.delta, response.function_call_arguments.done, response.output_item.done, response.completed, response.failed). Untuk model penalaran, ringkasan penalaran dikirim lewat event response.reasoning_summary_* sebagai satu item output reasoning sebelum jawaban. Penjelasan umum tentang format event tersedia di Streaming.