朝、上流プロバイダの残高切れ(HTTP 402)で直結ルートが2日間静かに縮退していたことに気づいた。悔しかったのは障害そのものより「ログから見えなかった」こと。そこで今日は1日、teai.ioのゲートウェイを「見える化してから直す」に全振りした。結果: 課金ログに足した1列が、その日のうちに隠れバグを4つ見つけた。
上流の一社で残高が尽きると、リクエストは402で落ちる — が、ゲートウェイにはフォールバックがあるので利用者には200が返り続ける。裏では「頼んだモデルと違うモデル」が黙って答えていた。実測では deepseek/deepseek-v4-flash-0731 指定が llama-4-maverick にすり替わっていた。エラー率だけ見ていると一生気づけない類の障害だった。
恒久対策として3つ入れた: ①仕入れ先が全滅した時は同一モデルのまま別経路(パススルー)へ逃がす ②残高切れは毎時の実推論プローブで即検知 ③外部監視のプローブを単独系モデルから複数上流モデルへ(誤報10%→実障害のみに)。
エージェントは毎ステップ同じ長大な文脈を再送する。上流のプロンプトキャッシュは効いていた(実測95%ヒット)のに、課金は全トークン定価のままだった。これは「実費+5%」の約束に反する。
cached入力は通常入力単価の1/10で課金するよう変更(割引率を一次情報で確認できた経路のみ・確認できない経路は据え置きで逆ざやを作らない)。実測: エージェントの1ステップ 13万トークン入力が 344クレジット→約48クレジット(-86%)。コーディングエージェントを teai.io で回している人は、今日から勝手に安くなっている。
課金ログは「解決後のモデル」しか記録しておらず、teai/auto の利用実態も、フォールバックによる差し替えの発生量も見えなかった。そこで 「何を頼まれたか」を1列足した。効果は初日から出た:
| 計測が見つけたもの | 実測 | 直したもの |
|---|---|---|
プロバイダprefix付きID(teai/z-ai/glm-5.2)が未掲載扱い→別モデルに差し替え | 18万tokens×9件/日 | prefix救済をゲートウェイに追加(#535) |
思考型モデルが小さいmax_tokensでcontent:""を200で返す | glm-5.2はmax_tokens=10で空応答 | 思考型のmax_tokens床を全経路に適用+GLM-5系追加(#539) |
| CLIの既定モデルの実態(autoの解決先・理由の分布) | tools→K3が支配的 | 既定をteai/default(K3固定)に(#537) |
| 表現(キーワード)一致のルーティングは言い換えで壊れる | — | 判定を構造シグナルのみに全廃・簡素化(#534) |
※「計測できないものは直せない」を地で行く1日だった。
teai/default: teai/auto はリクエストの形で解決先が変わる。それが便利な場面もあるが、エージェントの土台には「常に同じ強いモデル」が要る。ヒューリスティック一切なしでKimi K3に固定されるエイリアスを追加した。
GET /api/v1/search: チャット内ツールと同じWeb検索(複数バックエンドの並列レース)を、認証付きGETで開放した。エージェントやCLIの検索ツールの受け口にそのまま使える。
仕上げに、仮説エージェント(モデル×プロンプト)を並べて回答品質・時間・コストを自動計測→勝者を自動更新する小さなラボを作った。コスト計測は自前実装ゼロ — エージェントごとにAPIキーを分けるだけで、teaiの利用ログが勝手に帰属してくれる。
初回の計測は仮説を裏切った: 即答・取得系はK3全勝、しかし検索ツール連打系は初回gemini-2.5-flashだけが完走し、K3は時間切れ。glm-5.3-flashはツールを空引数で呼び続ける癖まで定量化された(それが上の#539の発見につながった)。そこで検索側を改善(店探し系クエリにレビューサイト限定の変種を並行合成)して再計測すると、今度はK3(速度優先経路)が首位に返り咲いた — 弱かったのはモデルでなく検索結果の質だった。「このモデルは頭がいい」ではなく「この仕事のこの制約では、このモデル」を、毎回の計測で更新していく。
| PR | 内容 |
|---|---|
| #531 | 仕入れ先全滅時の同一モデルパススルー+監視プローブ改善 |
| #532 | プロンプトキャッシュ割引を売値に転嫁(cached入力=1/10) |
| #534 | requested_model/auto_reason計測列+ルーティングの構造シグナル化 |
| #535 | teai/prefix付きモデルIDの救済 |
| #536 | GET /api/v1/search(汎用Web検索・認証付き) |
| #537 | teai/default(K3固定エイリアス) |
| #539 | 思考型モデルのmax_tokens床を全経路適用+GLM-5系追加 |
全部、今日の実測ログから始まった変更です。teai.io は「実費+5%」と「隠れた差し替えを作らない」を守りながら、こうやって毎日少しずつ硬くしていきます。