Documentation Index
Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt
Use this file to discover all available pages before exploring further.
概要
TokenLab の Agent-First API は、エラー応答を AI エージェントが即座に解析して対処できる構造化ヒントで拡張します — ウェブ検索もドキュメント参照も推測も不要です。 すべてのエラー応答は、標準のerror オブジェクト内に任意フィールドとして did_you_mean、suggestions、hint、retryable、retry_after などを含みます。これらのフィールドは後方互換性があり、それらを使用しないクライアントには違いが見えません。
エラー・ヒントフィールド
すべてのヒントフィールドはerror オブジェクト内の任意の拡張です:
| フィールド | 型 | 説明 |
|---|---|---|
did_you_mean | string | 最も近い一致のモデル名 |
suggestions | array | メタデータ付きの推奨モデル |
alternatives | array | 現在利用可能な代替モデル |
hint | string | 人間/エージェントが読める次の手順ガイダンス |
retryable | boolean | 同一リクエストの再試行で成功する可能性があるか |
retry_after | number | 再試行までの待機秒数 |
balance_usd | number | 現在の口座残高(USD) |
estimated_cost_usd | number | 失敗したリクエストの推定コスト(USD) |
エラーコード例
model_not_found (400)
モデル名がアクティブなモデルに一致しない場合:did_you_mean の解決には以下を使用します:
- 本番エラーデータに基づく静的エイリアスマッピング
- 正規化された文字列マッチ(ハイフンを削除、大小文字を区別しない)
- 編集距離マッチ(閾値 ≤ 3)
did_you_mean、suggestions、hint を確認し、サポートされている公開モデルで再試行してください。
insufficient_balance (402)
口座残高が推定コストに対して不足している場合:suggestions には、推定コストより安価でエージェントが切り替え可能なモデルが含まれます。
all_channels_failed (503)
あるモデルの全てのアップストリームチャネルが利用不可の場合:retryable は理由が no_channels(このモデルにチャネルが設定されていない) の場合は false になります。サーキットブレーカーの発動やクォータ枯渇のような一時的な障害の場合にのみ true になります。rate_limit_exceeded (429)
retry_after の値は、実際のレート制限ウィンドウのリセット時間から算出されます。
OpenAI 互換 endpoints は
rate_limit_exceeded、upstream_error、all_channels_failed などの TokenLab の安定した公開エラータイプを使用します。Anthropic-compatible および Gemini-compatible エンドポイントはそれぞれのネイティブなレスポンス形式を使用します。context_length_exceeded (400)
入力がモデルのコンテキストウィンドウを超えた場合(アップストリームエラー、ヒントを付与):ネイティブエンドポイントヘッダー
モデルにネイティブエンドポイント(Anthropic または Gemini)がある状態で/v1/chat/completions を呼び出すと、成功レスポンス に最適化ヘッダーが含まれます:
| モデルプロバイダー | 推奨エンドポイント | 利点 |
|---|---|---|
| Anthropic (Claude) | /v1/messages | フォーマット変換不要、拡張思考、プロンプトキャッシュ |
| Google (Gemini) | /v1beta/gemini | フォーマット変換不要、grounding、セーフティ設定 |
| OpenAI | — | Chat completions は既にネイティブフォーマットです |
/v1/models の拡張
/v1/models は、エージェントが画像、ビデオ、音楽、3D、TTS、STT、embedding、rerank、翻訳エンドポイントを呼ぶ前に利用できる非チャットの推奨メタデータを持つようになりました。
| フィールド | 値 | 説明 |
|---|---|---|
category | chat, image, video, audio, tts, stt, 3d, embedding, rerank | モデルの種類 |
pricing_unit | per_token, per_image, per_second, per_request | モデルの課金単位 |
cache_pricing | object or null | モデル固有のアップストリーム prompt cache 料金がある場合のみ返されます。プラットフォームの semantic cache 割引だけでは一覧に表示されません。 |
agent_preferences.<scene> | object | GET /v1/models?recommended_for=<scene> のときだけ返される非チャット推奨スナップショット |
recommended_for がある場合、agent_preferences は 24 時間の成功率スナップショットのキャッシュから派生します:
- ウィンドウ: 24 時間
- スナップショットキャッシュ: stale-while-revalidate
status = "ready"はモデルが最近のサンプルを十分に持ち、ランキングに参加できることを意味しますstatus = "insufficient_samples"はモデルが表示はされるが、スコア付きモデルよりも優先されないことを意味します
カテゴリフィルタリング
推奨の発見フロー
非チャットのワークフローでは、エージェントはまず現在の推奨ショートリストを取得するべきです:recommended_for の値は次のとおりです:
imagevideomusic3dttssttembeddingreranktranslation
category と recommended_for の両方が存在する場合、それらは完全に一致する必要があります。
推奨されるエージェントのフロー:
GET /v1/models?recommended_for=<scene>- 最初の
agent_preferences.<scene>.status == "ready"のモデルを選択する - 明示的に
model=<selected>でエンドポイントを呼び出す - 一時的なエラーに限り、次の
readyモデルで再試行する
llms.txt
機械可読の API 概要は次で取得できます:- 最初の呼び出しテンプレートと動作する例
- 一般的なモデル名(使用データから動的生成)
- 全12の API エンドポイント
- モデル発見のためのフィルタパラメータ
- エラーハンドリングのガイダンス
llms.txt を参照するエージェントは、通常、最初の試行で成功できます。
エージェントコードでの使用例
Python (OpenAI SDK)
JavaScript (OpenAI SDK)
設計原則
早く失敗し、情報を明確に返す
エラーはエージェントが自己修正するために必要なすべてのデータを即座に返します。
自動ルーティングなし
API は別のモデルを黙って代替することは決してしません。エージェント自身が決定します。
データに基づく提案
すべての推奨はハードコードされたリストではなく、本番データに基づきます。
後方互換
すべてのヒントフィールドは任意です。既存のクライアントには違いが見えません。