Ikhtisar
Agent-First API TokenLab memperkaya respons kesalahan dengan petunjuk terstruktur yang dapat diurai dan ditindaklanjuti langsung oleh agen AI — tanpa pencarian web, tanpa mencari dokumentasi, tanpa tebak-tebakan. Error gateway Chat Completions dan Responses yang kompatibel dengan OpenAI dapat menyertakan field opsional sepertidid_you_mean, suggestions, hint, retryable, dan retry_after dalam objek error. Endpoint Anthropic Messages dan Gemini mempertahankan bentuk error native dan tidak menjanjikan ekstensi ini.
Bidang Petunjuk Kesalahan
Untuk error gateway yang kompatibel dengan OpenAI, semua field petunjuk adalah ekstensi opsional di dalam objekerror:
Contoh Kode Kesalahan
model_not_found (400)
Ketika nama model tidak cocok dengan model aktif manapun:did_you_mean menggunakan:
- Pemetaan alias statis (dari data kesalahan produksi)
- Pencocokan string ternormalisasi (menghapus tanda hubung, tidak sensitif huruf)
- Pencocokan jarak edit (ambang ≤ 3)
did_you_mean, suggestions, dan hint, lalu coba ulang dengan model publik yang didukung.
insufficient_balance (402)
Saat saldo akun terlalu rendah untuk estimasi biaya:suggestions berisi model yang lebih murah daripada estimasi biaya yang dapat dipilih oleh agen.
all_channels_failed (503)
Ketika semua saluran hulu untuk sebuah model tidak tersedia:retryable bernilai false ketika alasannya adalah no_channels (tidak ada saluran yang dikonfigurasi untuk model ini). Nilainya true hanya untuk kegagalan sementara seperti trip circuit breaker atau kehabisan kuota.rate_limit_exceeded (429)
retry_after dihitung dari waktu reset jendela batas laju yang sebenarnya.
Endpoint yang kompatibel dengan OpenAI menggunakan tipe kesalahan publik stabil TokenLab seperti
rate_limit_exceeded, upstream_error, dan all_channels_failed. Endpoint yang kompatibel dengan Anthropic dan Gemini menggunakan bentuk respons asli mereka sendiri.context_length_exceeded (400)
Ketika input melebihi jendela konteks model (kesalahan hulu, diperkaya dengan petunjuk):Penemuan Endpoint Native
Jangan simpulkan ketersediaan protokol native dari nama model atau provider, maupun dari header respons Chat. Sebelum memilih endpoint native, bacaGET /v1/models/{model} dan gunakan hanya format permintaan yang diiklankan oleh detail model serta didukung route dengan protokol yang sama.
Field yang dibaca adalah tokenlab.accepted_request_formats.
Format yang diiklankan menentukan ketersediaan endpoint; dukungan field dan tool tertentu tetap bergantung pada upstream.
Peningkatan /v1/models
/v1/models sekarang membawa metadata rekomendasi non-chat yang dapat digunakan agen sebelum mereka memanggil endpoint image, video, music, 3D, TTS, STT, embedding, rerank, atau translation.
Saat
recommended_for ada, agent_preferences diturunkan dari snapshot tingkat keberhasilan 24 jam yang di-cache:
- Jendela: 24 jam
- Cache snapshot: stale-while-revalidate
status = "ready"berarti model memiliki sampel terbaru yang cukup untuk berpartisipasi dalam perankinganstatus = "insufficient_samples"berarti model tetap terlihat tetapi tidak diperingkat di atas model yang memiliki skor
Penyaringan Kategori
Penemuan Rekomendasi
Untuk alur kerja non-chat, agen harus mengambil daftar singkat rekomendasi saat ini terlebih dahulu:recommended_for yang valid adalah:
imagevideomusic3dttssttembeddingreranktranslation
category dan recommended_for keduanya ada, keduanya harus cocok secara tepat.
Alur agen yang direkomendasikan:
GET /v1/models?recommended_for=<scene>- Pilih model pertama dengan
agent_preferences.<scene>.status == "ready" - Panggil endpoint secara eksplisit dengan
model=<selected> - Untuk kesalahan sementara saja, coba ulang dengan model
readyberikutnya
llms.txt
Ringkasan API yang dapat dibaca mesin tersedia di:- Template panggilan pertama dengan contoh yang bekerja
- Nama model umum (dihasilkan secara dinamis dari data penggunaan)
- Semua 12 endpoint API
- Parameter filter untuk penemuan model
- Panduan penanganan kesalahan
llms.txt sebelum panggilan API pertama mereka biasanya dapat berhasil pada percobaan pertama.
Penggunaan dalam Kode Agen
Python (OpenAI SDK)
JavaScript (OpenAI SDK)
Prinsip Desain
Gagal cepat, berikan informasi
Kesalahan dikembalikan segera dengan semua data yang dibutuhkan agen untuk mengoreksi diri.
Tanpa pengalihan otomatis
API tidak pernah diam-diam menggantikan model dengan model lain. Agen yang memutuskan.
Saran berbasis data
Semua rekomendasi berasal dari data produksi, bukan daftar yang dikodekan statis.
Kompatibel ke belakang
Semua field petunjuk bersifat opsional. Klien yang ada tidak melihat perbedaan.