01

契約を定義

必要な能力を先に定義し、テキスト、画像、構造化出力、ツール、ストリーム、状態、非同期をrequired、optional、unsupportedに分けます。

02

秘密を守る

提供元ごとに秘密、予算、警告、ローテーションを分け、サーバーで暗号化します。ブラウザには設定状態と末尾だけを返します。

03

能力を記録

モデルごとに入力、ツール、構造化出力、ストリーム、状態、制限、版、終了日を記録し、最小リクエストで権限も確認します。

04

リクエスト変換

共通の業務リクエストを持ちながら、役割、内容ブロック、ツール、状態の違いはadapterに残します。

05

レスポンス統一

text、structured、toolCalls、finishReason、usage、request ID、status、warningsを統一し、元イベントも保持します。

06

障害テスト

認証と権限は再試行せず、制限は待機し、ネットワークと5xxは有限回だけ再試行します。固定テストを毎回実行します。