Skip to main content

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 seperti did_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 objek error:

Contoh Kode Kesalahan

model_not_found (400)

Ketika nama model tidak cocok dengan model aktif manapun:
Resolusi did_you_mean menggunakan:
  1. Pemetaan alias statis (dari data kesalahan produksi)
  2. Pencocokan string ternormalisasi (menghapus tanda hubung, tidak sensitif huruf)
  3. Pencocokan jarak edit (ambang ≤ 3)
Rute publik tidak mengekspos kode kesalahan terpisah untuk model yang tersembunyi, ditunda, atau non-publik. Perlakukan model publik yang tidak tersedia sama seperti kesalahan pencocokan: periksa 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)

Nilai 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, baca GET /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 perankingan
  • status = "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:
Nilai recommended_for yang valid adalah:
  • image
  • video
  • music
  • 3d
  • tts
  • stt
  • embedding
  • rerank
  • translation
Jika category dan recommended_for keduanya ada, keduanya harus cocok secara tepat. Alur agen yang direkomendasikan:
  1. GET /v1/models?recommended_for=<scene>
  2. Pilih model pertama dengan agent_preferences.<scene>.status == "ready"
  3. Panggil endpoint secara eksplisit dengan model=<selected>
  4. Untuk kesalahan sementara saja, coba ulang dengan model ready berikutnya

llms.txt

Ringkasan API yang dapat dibaca mesin tersedia di:
Ini mencakup:
  • 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
Agen AI yang membaca 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.