teai.io の teai/auto は、DeepSeek V4 Flash で回答し、コード検算と品質ヒューリスティクスで「これは間違ってる」と確定判定されたときだけ V4 Pro → Kimi K3 → shitate 検証へと自動で上がるルーターです。V4 Pro 比でコスト約6割で、正答率はほぼ互角。公開後に teai/auto 自体を実際に182問×2回走らせて実測し、その過程で見つけた本物のバグ(Kimi K3 エスカレーション時の空回答)も直したところまで含めて公開します。
結論から: 全モデルを常に最強にするのはコストが高すぎ、常に最安にすると精度が落ちる。正解は「安いモデルで答えて、答えが正しいことを機械的に検証できるときはそのまま、検証で否定されたときだけ上げる」。当初はV4 FlashとV4 Proの実測からエスカレーション比率を推定した合成値(86.3%)で公開していましたが、teai/auto を実際に182問×2回(364件)走らせて実測したところ、正答率は93.3%——推定より良く、V4 Pro単体の実測(89.7%)を上回りました(コストは今回コスト自体は再計測しておらず、下表は元の合成値のままです。正答率だけ実測に置き換えています)。
最初に試したのは「安いモデルに『自信ありますか?』と聞いて、自信がないときだけ上げる」方式。しかし自社実測で、これはほとんど発火しないことが分かりました。落とす設問58問のうち、自己申告でエスカレーションが発火したのは2件(3%)だけ。
労基法の付与日数表のような固有値を、モデルはほぼ全問「自信あり」と申告して間違えます。モデルは自分が知らないことを判定できない。ここは原理的に直らないので、自己申告は捨てました。
自己申告を捨てた代わりに、答えの正しさを機械的に判定できる3つのチェックを実装しました。どれも「モデルの気分」ではなく、プログラムとして決定します。
発火したら、次の階層へ。V4 Pro の答えがまだ低品質なら、さらに Kimi K3 へ。そして最終段は shitate/orchestrator:verify — 複数モデルの束ね合わせによる検証です。どの段でも品質チェックに通ればそこで確定します。
本番の api.teai.io にこの記事を書く直前に実際に投げて確認したものです。x-teai-auto-reason と x-teai-route はそのまま本番のレスポンスヘッダー、fallback_depth が0より大きい=実際にエスカレーションが発火した回です。
例1. 短い計算問題 → Flashでそのまま確定
例2. 固有知識の設問 → Flashで一旦答えるが検算で否定され、V4 Proへ1段エスカレーション
例3. コーディング依頼 → Flashで即確定
cheap_short(短く機械検算/形式チェックで確定可能)と判定されてFlashのまま。
例2はknowledge(モデルの記憶に依存する固有知識)と判定され、Flashの回答が検算で「Rejected」→自動で
V4 Proが再回答し、そこで正しい20日が出て確定しています。これが本文で説明した「答えの正しさを機械的に判定できる
ときだけ上げる」の、実際に本番で起きている姿です。
正答率・コスト・p90レイテンシ。日本の実務計算(182問)のteai/auto行は実機で182問×2回(364件)走らせた実測です(2026-08-17)。指示追従/難問セットの2表は引き続きFlash・Proの実測からの合成値です。
| モデル | 正答率 | コスト | p90 | V4 Pro比コスト |
|---|---|---|---|---|
| V4 Flash | 84.4% | $0.0022 | 1.5s | 6% |
| teai/auto 実測 | 93.3% | $0.0155* | 5.6s* | 41%* |
| V4 Pro | 89.7% | $0.0379 | 11.5s | 100% |
teai/auto は V4 Pro より正答率が3.6ポイント高いまま、コストは推定41%(*コスト・レイテンシは未再計測のため合成値を継続使用)。182問×2回の1往復だけでは±数ポイントのブレは乗る(再実行では89.8%まで下がる回もあった)ので、この93.3%も「確定値」ではなく実測サンプルの1点として見てください。
| モデル | 正答率 | コスト | p90 | V4 Pro比コスト |
|---|---|---|---|---|
| V4 Flash | 97.1% | $0.0145 | 2.5s | 18% |
| teai/auto | 97.8% | $0.0206 | 3.7s | 25% |
| V4 Pro | 98.3% | $0.0820 | 15.7s | 100% |
差はわずか 0.5 ポイント。この種別では V4 Pro に上げる意味がほとんどない、という実測でもあります。
| モデル | 正答率 | コスト | p90 | V4 Pro比コスト |
|---|---|---|---|---|
| V4 Flash | 93.5% | $0.0227 | 8.4s | 19% |
| teai/auto | 96.2% | $0.0524 | 12.2s | 44% |
| V4 Pro | 98.9% | $0.1188 | 15.2s | 100% |
難問ほどエスカレーションが効く。Flash 93.5% → auto 96.2% と 2.7 ポイント回復。
モデル単体の性能比較が意味を持つのは、あなたが常にその1モデルしか使わないという特殊な状況だけです。実際の利用は、コストとレイテンシと正答率のトレードオフです。teai/auto はこの三角形を「できるだけ安く、遅くなく、正確に」に寄せます。
この記事の「合成値を実測で埋める」を実行したら、想定していなかった副産物がありました。182問×2回のうち8件がKimi K3にエスカレーションした後、空文字を返していたのです。原因は、エスカレーション時に元のリクエストのmax_tokens(短答目的で256などの小さい値)をそのまま引き継いでいたこと。Kimi K3は隠れ思考トークンでその予算を食い切ると、本文が1文字も出る前にレスポンスが終わってしまいます。
修正はKimi K3へのエスカレーション時だけmax_tokensの床を1024トークンへ引き上げる1行(既存のGemini 3.x向けの同種の床上げと同じパターン)。個別に再現テストしたところ、元々空回答だった8件のうち5件はこの修正で解消しました(残り2件はその後の個別再テストでは3回とも正解し、こちらは一時的な取りこぼしだったと判明)。本番デプロイ済みです。
日本の実務計算(182問)のteai/auto行は上記のとおり実測に置き換えましたが、指示追従・多段推論・コード・長文(119問)と難問セット(46問)の2表は、まだV4 Flash と V4 Pro の実測値からエスカレーション比率を推定した合成値のままです。実データが溜まったら更新します。また182問の実測自体も、364件という標本サイズでは±数ポイントのブレが乗ります(採点は厳格一致のため、"数字のみで"という指示に反してモデルが説明文を付けた正解も不正解扱いになる既知の限界もあります)。生データは /bench で公開しています。
teai/auto は teai.io の OpenAI/Anthropic 互換エンドポイントでそのまま指定できます。モデル名を teai/auto にするだけで、応答ヘッダに x-teai-auto-reason が付き、なぜそのモデルを選んだかが分かります。