Skip to main content

개요

TokenLab의 Agent-First API는 오류 응답을 AI 에이전트가 즉시 파싱하고 조치할 수 있는 구조화된 힌트로 풍부하게 합니다 — 웹 검색 없음, 문서 조회 없음, 추측 없음. OpenAI 호환 Chat Completions 및 Responses gateway 오류에는 error 객체 안에 did_you_mean, suggestions, hint, retryable, retry_after 같은 선택적 필드가 포함될 수 있습니다. Anthropic Messages와 Gemini endpoint는 네이티브 오류 형태를 유지하며 이러한 확장을 보장하지 않습니다.

오류 힌트 필드

OpenAI 호환 gateway 오류에서 모든 힌트 필드는 error 객체 내부의 선택적 확장입니다:

오류 코드 예시

model_not_found (400)

모델 이름이 활성 모델과 일치하지 않을 때:
did_you_mean 해석은 다음을 사용합니다:
  1. 정적 별칭 매핑(운영 중 수집된 오류 데이터에서 유래)
  2. 정규화된 문자열 매칭(하이픈 제거, 대소문자 구분 없음)
  3. 편집 거리 매칭(임계값 ≤ 3)
공개 라우트는 숨김, 연기 또는 비공개 모델에 대해 별도의 오류 코드를 노출하지 않습니다. 사용 불가능한 공개 모델은 미스로 취급하세요: did_you_mean, suggestions, hint를 검사한 뒤 지원되는 공개 모델로 재시도하십시오.

insufficient_balance (402)

계정 잔액이 예상 비용보다 부족할 때:
suggestions에는 에이전트가 전환할 수 있는, 예상 비용보다 저렴한 모델들이 포함됩니다.

all_channels_failed (503)

모델의 모든 업스트림 채널이 사용 불가할 때:
원인이 no_channels(이 모델에 대해 구성된 채널이 없음)인 경우 retryablefalse입니다. 회로 차단(circuit breaker) 트립이나 할당량 소진 같은 일시적 실패에 대해서만 true입니다.

rate_limit_exceeded (429)

retry_after 값은 실제 레이트 리미트 윈도우 재설정 시간으로부터 계산됩니다.
OpenAI 호환 엔드포인트는 rate_limit_exceeded, upstream_error, all_channels_failed와 같은 TokenLab의 안정적인 공개 오류 유형을 사용합니다. Anthropic 호환 및 Gemini 호환 엔드포인트는 자체 네이티브 응답 형태를 사용합니다.

context_length_exceeded (400)

입력이 모델의 컨텍스트 창을 초과할 때(업스트림 오류, 힌트로 보강됨):

네이티브 엔드포인트 검색

모델명이나 제공자명 또는 Chat 응답 헤더에서 네이티브 프로토콜 가용성을 추론하지 마세요. 네이티브 엔드포인트를 선택하기 전에 GET /v1/models/{model}을 확인하고, 모델 상세 정보에 공개되며 동일 프로토콜의 라우트가 있는 요청 형식만 사용하세요. 확인할 필드는 tokenlab.accepted_request_formats입니다. 공개된 요청 형식은 엔드포인트 가용성을 결정합니다. 개별 필드와 도구 지원은 upstream마다 다릅니다.

/v1/models 향상사항

/v1/models는 이제 에이전트가 이미지, 비디오, 음악, 3D, TTS, STT, 임베딩, 재순위(rerank), 또는 번역 엔드포인트를 호출하기 전에 사용할 수 있는 비채팅 권장 메타데이터를 제공합니다.
recommended_for가 있을 때 agent_preferences는 캐시된 24시간 성공률 스냅샷에서 유도됩니다:
  • 윈도우: 24시간
  • 스냅샷 캐시: stale-while-revalidate
  • status = "ready"는 모델이 순위에 참여할 만큼 최근 샘플이 충분함을 의미합니다
  • status = "insufficient_samples"는 모델이 가시성은 유지하지만 점수화된 모델보다 우선 순위로 랭크되지 않음을 의미합니다

카테고리 필터링

권장 모델 검색

비채팅 워크플로우의 경우, 에이전트는 먼저 현재 권장되는 후보 목록을 가져와야 합니다:
유효한 recommended_for 값은 다음과 같습니다:
  • image
  • video
  • music
  • 3d
  • tts
  • stt
  • embedding
  • rerank
  • translation
categoryrecommended_for가 모두 제공된 경우, 두 값은 정확히 일치해야 합니다. 권장 에이전트 흐름:
  1. GET /v1/models?recommended_for=<scene>
  2. 첫 번째로 agent_preferences.<scene>.status == "ready"인 모델을 선택
  3. model=<selected>로 엔드포인트를 명시적으로 호출
  4. 일시적 오류인 경우에만 다음 ready 모델로 재시도

llms.txt

머신 리더블 API 개요는 다음에서 확인할 수 있습니다:
포함 내용:
  • 작동 예제가 포함된 첫 호출 템플릿
  • 일반적인 모델 이름들(사용량 데이터에서 동적으로 생성)
  • 12개 API 엔드포인트 전체
  • 모델 검색을 위한 필터 파라미터
  • 오류 처리 지침
첫 API 호출 전에 llms.txt를 읽는 AI 에이전트는 일반적으로 첫 시도에서 성공할 수 있습니다.

에이전트 코드에서의 사용

Python (OpenAI SDK)

JavaScript (OpenAI SDK)

설계 원칙

빠르게 실패하고, 정보 제공형 실패

오류는 에이전트가 자체 수정하는 데 필요한 모든 데이터를 즉시 반환합니다.

자동 라우팅 없음

API는 결코 다른 모델을 조용히 대체하지 않습니다. 결정은 에이전트가 내립니다.

데이터 기반 권장

모든 권장 사항은 하드코딩 목록이 아닌 운영 데이터에서 도출됩니다.

하위 호환성 유지

모든 힌트 필드는 선택적입니다. 기존 클라이언트에는 변화가 없습니다.