Skip to main content

Tổng quan

Agent-First API của TokenLab làm giàu phản hồi lỗi với các gợi ý có cấu trúc mà các agent AI có thể phân tích và hành động ngay lập tức — không cần tìm kiếm web, không cần tra cứu tài liệu, không phải đoán mò. Lỗi gateway tương thích OpenAI của Chat Completions và Responses có thể gồm các trường tuỳ chọn như did_you_mean, suggestions, hint, retryableretry_after trong đối tượng error. Anthropic Messages và Gemini giữ nguyên hình dạng lỗi gốc và không cam kết các phần mở rộng này.

Trường Gợi Ý Lỗi

Với lỗi gateway tương thích OpenAI, tất cả các trường gợi ý là phần mở rộng tuỳ chọn bên trong đối tượng error:

Ví dụ Mã Lỗi

model_not_found (400)

Khi tên model không khớp với bất kỳ model đang hoạt động nào:
Phương pháp phân giải did_you_mean sử dụng:
  1. Bản đồ bí danh tĩnh (từ dữ liệu lỗi production)
  2. So khớp chuỗi đã chuẩn hóa (loại bỏ dấu gạch ngang, không phân biệt hoa/thường)
  3. So khớp theo khoảng chỉnh sửa (ngưỡng ≤ 3)
Các route công khai không tiết lộ mã lỗi riêng cho các model ẩn, hoãn, hoặc không công khai. Xử lý các model công khai không khả dụng tương tự như một lỗi không tìm thấy: kiểm tra did_you_mean, suggestions, và hint, sau đó thử lại với một model công khai được hỗ trợ.

insufficient_balance (402)

Khi số dư tài khoản quá thấp so với chi phí ước tính:
suggestions chứa các model rẻ hơn so với chi phí ước tính mà agent có thể chuyển sang.

all_channels_failed (503)

Khi tất cả các kênh upstream cho một model đều không khả dụng:
retryablefalse khi nguyên nhân là no_channels (không có kênh nào được cấu hình cho model này). Nó chỉ là true đối với các lỗi tạm thời như bộ ngắt mạch (circuit breaker) hoặc hết quota.

rate_limit_exceeded (429)

Giá trị retry_after được tính từ thời điểm thực tế cửa sổ giới hạn tần suất được đặt lại.
Các endpoint tương thích OpenAI sử dụng các loại lỗi công khai ổn định của TokenLab như rate_limit_exceeded, upstream_error, và all_channels_failed. Các endpoint tương thích Anthropic và Gemini sử dụng cấu trúc phản hồi gốc của chúng.

context_length_exceeded (400)

Khi đầu vào vượt quá cửa sổ ngữ cảnh của model (lỗi upstream, được bổ sung gợi ý):

Khám phá Native Endpoint

Không suy ra khả năng dùng giao thức native từ tên model, tên nhà cung cấp hoặc header phản hồi Chat. Trước khi chọn native endpoint, hãy đọc GET /v1/models/{model} và chỉ dùng định dạng yêu cầu được công bố trong chi tiết model, đồng thời có route cùng giao thức hỗ trợ. Trường cần đọc là tokenlab.accepted_request_formats. Định dạng được công bố quyết định khả năng dùng endpoint; hỗ trợ từng field và tool vẫn phụ thuộc upstream.

Cải tiến cho /v1/models

/v1/models hiện mang metadata khuyến nghị phi-chat mà các agent có thể sử dụng trước khi gọi các endpoint hình ảnh, video, nhạc, 3D, TTS, STT, embedding, rerank, hoặc dịch thuật.
Khi có recommended_for, agent_preferences được dẫn xuất từ một snapshot tỷ lệ thành công trong 24 giờ được cache:
  • Cửa sổ: 24 giờ
  • Bộ nhớ đệm snapshot: stale-while-revalidate
  • status = "ready" nghĩa là model có đủ mẫu gần đây để tham gia xếp hạng
  • status = "insufficient_samples" nghĩa là model vẫn hiển thị nhưng không được xếp trước các model đã có điểm

Lọc theo Category

Khám phá Khuyến nghị

Đối với workflow phi-chat, agent nên lấy danh sách rút gọn được khuyến nghị hiện tại trước:
Các giá trị recommended_for hợp lệ là:
  • image
  • video
  • music
  • 3d
  • tts
  • stt
  • embedding
  • rerank
  • translation
Nếu cả categoryrecommended_for đều có mặt, chúng phải khớp chính xác. Luồng khuyến nghị cho agent:
  1. GET /v1/models?recommended_for=<scene>
  2. Chọn model đầu tiên có agent_preferences.<scene>.status == "ready"
  3. Gọi endpoint một cách rõ ràng với model=<selected>
  4. Chỉ khi xảy ra lỗi tạm thời, thử lại với model “ready” tiếp theo

llms.txt

Một tổng quan API đọc được bằng máy có sẵn tại:
Nó bao gồm:
  • Mẫu lần gọi đầu với một ví dụ hoạt động
  • Tên model phổ biến (được sinh động từ dữ liệu sử dụng)
  • Tất cả 12 endpoint API
  • Các tham số lọc để khám phá model
  • Hướng dẫn xử lý lỗi
Các agent AI đọc llms.txt trước lần gọi API đầu tiên của chúng thường có thể thành công ngay ở lần thử đầu.

Sử dụng trong Code Agent

Python (OpenAI SDK)

JavaScript (OpenAI SDK)

Nguyên tắc Thiết kế

Thất bại nhanh, thông tin rõ ràng

Lỗi trả về ngay lập tức với tất cả dữ liệu mà một agent cần để tự sửa.

Không định tuyến tự động

API không bao giờ âm thầm thay thế một model khác. Agent là người quyết định.

Gợi ý dựa trên dữ liệu

Tất cả khuyến nghị đến từ dữ liệu production, không phải danh sách mã hóa cứng.

Tương thích ngược

Tất cả trường gợi ý đều là tuỳ chọn. Các client hiện có không thấy khác biệt.