コンテンツにスキップ

仕様詳細

コア仕様(v1/spec.yaml)は、すべてのプロバイダーマニフェストとランタイムが共有する標準語彙を定義します。

これらのパラメータはすべてのプロバイダーで一貫した意味を持ちます:

パラメータ説明
temperaturefloatランダム性の制御(0.0 – 2.0)
max_tokensinteger最大レスポンストークン数
top_pfloatヌクレアスサンプリングしきい値
streambooleanストリーミングレスポンスを有効化
stopstring[]停止シーケンス
toolsobject[]ツール/関数定義
tool_choicestring/objectツール選択モード
response_formatobject構造化出力形式

プロバイダーマニフェストはこれらの標準名をプロバイダー固有のパラメータ名にマッピングします。例えば、OpenAI は max_completion_tokens を使用し、Anthropic は max_tokens を使用します。

仕様はランタイムが発行する統一ストリーミングイベント型を定義します:

イベント説明
PartialContentDeltaテキストコンテンツフラグメント
ThinkingDelta推論/思考ブロック(拡張思考モデル)
ToolCallStarted関数/ツール呼び出しの開始
PartialToolCallツール呼び出し引数のストリーミング
ToolCallEndedツール呼び出しの完了
StreamEndレスポンスストリームの完了
StreamErrorストリームレベルのエラー
Metadata使用統計、モデル情報

プロバイダーマニフェストは、プロバイダー固有のイベントをこれらの標準型にマッピングする JSONPath ベースのルールを宣言します。

エラークラス(V2 標準コード)

Section titled “エラークラス(V2 標準コード)”

V2 では 13 の標準化されたエラーコードを定義しています。プロバイダー固有のエラーは、ランタイム間で一貫したハンドリングのためにこれらのコードにマッピングされます:

コード名前カテゴリリトライ可能フォールバック可能
E1001invalid_requestClientNoNo
E1002authenticationClientNoYes
E1003permission_deniedClientNoNo
E1004not_foundClientNoNo
E1005request_too_largeClientNoNo
E2001rate_limitedRateYesYes
E2002quota_exhaustedRateNoYes
E3001server_errorServerYesYes
E3002overloadedServerYesYes
E3003timeoutServerYesYes
E4001conflictOperationalYesNo
E4002cancelledOperationalNoNo
E9999unknownUnknownNoNo
  • リトライ可能 — 一時的な障害に対してランタイムがリクエストをリトライできます(バックオフ付き)
  • フォールバック可能 — ランタイムがフォールバックチェーンで代替プロバイダーまたはモデルを試行できます

仕様は標準リトライ戦略を定義します:

retry_policy:
strategy: "exponential_backoff"
max_retries: 3
initial_delay_ms: 1000
max_delay_ms: 30000
backoff_multiplier: 2.0
retryable_errors:
- "rate_limited"
- "overloaded"
- "server_error"
- "timeout"

レスポンス完了の正規化された終了理由:

理由説明
end_turn自然な完了
max_tokensトークン制限に到達
tool_useモデルがツールを呼び出そうとしている
stop_sequence停止シーケンスに遭遇
content_filterコンテンツポリシーでフィルタリングされた

プロバイダーはリクエスト/レスポンス形式の混乱を防ぐために API ファミリに分類されます:

  • openai — OpenAI 互換 API(Groq、Together、DeepSeek なども使用)
  • anthropic — Anthropic Messages API
  • gemini — Google Gemini API
  • custom — プロバイダー固有の形式