powered by TechFeed
表示モード
ハウツー

AIエージェント11本の運用コストを週150ドルから数ドルへ — モデルを1行変えてDeepSeekに移行した実践記録

8月2日、Zack Proserが「Rightsizing My Agent Spend: From Opus to DeepSeek V4 Flash…」と題した記事を公開した。モデル設定を1行書き換えるだけで週150ドルのAPIコストが数ドルに落ちた——そう聞くと単純な話に思えるが、実際には「1行」に辿り着く前に18マイナーバージョンの一括アップグレードと、無音で発生する3種の障害が待ち受けていた。

8月2日、Zack Proserが「Rightsizing My Agent Spend: From Opus to DeepSeek V4 Flash…」と題した記事を公開した。モデル設定を1行書き換えるだけで週150ドルのAPIコストが数ドルに落ちた——そう聞くと単純な話に思えるが、実際には「1行」に辿り着く前に18マイナーバージョンの一括アップグレードと、無音で発生する3種の障害が待ち受けていた。


週150ドルのAPIコストが動機になった

Zack ProserはSlackから操作する11本の単機能ボットを構築していた。各ボットはそれぞれ独立したリポジトリを持ち、すべてClaude Opus(Anthropicのフラッグシップモデル)で動いていた。

問題はコストだった。ツール呼び出しの多いターン、1日に複数ボットの起動、ドラフト全文を2回読む批評ループ——そういった実際の使い方をすると、Anthropicのクレジット消費が週150ドルを超えた。個人事業主にとって無視できない金額であり、売上ではなく利便性に払っていると判断し、大半のボットを停止。手作業に戻っていた。

この記事はその fleet を再稼働させるために何をしたかの記録だ。


モデルを1行変えてコストが96分の1に

移行先はDeepSeek V4 FlashVercel AI Gateway経由で利用する。

価格差はゲートウェイのモデルカタログから直接引用すると、入力で38倍、出力で96倍安い。週150ドルの fleet が一桁ドルに収まる計算になる。

コード上の変更はこれだけだ:

export default defineAgent({
  model: "deepseek/deepseek-v4-flash-0731",
  compaction: { thresholdPercent: 0.85 },
});

Vercel AI Gatewayは312モデルを1つの認証・1つのインターフェースで束ねている。ベンダー切り替えがSDKの差し替えや新しいAPIキーの取得ではなく、設定ファイルの1行変更で済む。5本のボットがAnthropicのSDKを直接呼び出していたが、Gateway経由にすることでプロバイダー依存を削除できた。

安さだけでなく、エージェントループが必要とするツール呼び出し・推論・暗黙キャッシュの3つをすべてサポートし、コンテキストウィンドウは1M tokens。ツールが呼べないモデルはループの主体が tool-calling であるこの fleet では使い物にならないため、この点は重要な確認事項だった。


ローカル実行との比較も済ませた

DeepSeek V4 Flashはm5 Max(128GB統合メモリ)上でも動く。80.76 GiBの量子化版がほぼメモリを埋める形で動作する。

Zack Proserはこれを信用せず、60回の独立したコーディング実行でベンチマークを取った。ローカルのDeepSeek、Gateway経由のDeepSeek、Claude Sonnet 5を比較。12の実リポジトリタスク、スコアラーは隠蔽、正確な課金も記録した。

結果:ローカルとAPI経由の品質に統計的な差はなかった。Strict acceptanceはローカル8/20、API経由9/20。ペア比較で両者を分離できなかった。差が出たのは速度で、ローカルの中央値20分に対しAPI経由は8.7分だった。品質は同等、速度が違う。

Fleet にはAPI経由を使う(Slackで眠っている間も動かす必要があるため)。自分のリポジトリでのコーディング作業はローカルで動かす(レイテンシは自分の問題であり、課金は発生しない)という使い分けになった。


「1行の変更」では終わらなかった部分

モデルの差し替えよりも手がかかったのがプラットフォーム側の作業だった。

eveのバージョン問題。 最初のデプロイが即座に失敗した:

Unsupported Eve version detected (eve@0.11.10).
Please update to version 0.18.0 or later.

ここでいう「eve」はVercelが提供するエージェント構築フレームワーク(Vercel AI SDKのエージェント向けランタイム層)を指す。ホスト側が要求する最低バージョンが引き上げられており、11本のボットはすべて0.11.6に固定されていた。モデル設定以前に全ボットがデプロイ不可の状態だった。現行は0.29.4、18マイナーバージョンの一括アップグレードが必要になった。

実際の破壊的変更は3点だった:

  • **needsApprovalapproval**(eve 0.14.0):9ボット21箇所の純粋なリネーム
  • **ExperimentalWorkflowexperimental_workflow()**(0.17.0):オーケストレーター1ファイル
  • Sandboxのruntimeキー削除:1ファイル

教訓として「チェンジログを読んだうえで、自分のコードに対してgrepで該当箇所を確認してから判断すること」と述べている。派手に見えた変更が無関係で、ビルドを壊した変更はリリースノートで目立たなかった。typecheckで初めて発覚した。

チーム移行による静かな障害。 全ボットを1つのVercelチームに統合した際に、3つの問題が無音で発生した:

  • Slackが止まった:Vercel ConnectのコネクターはチームスコープのためSlackイベントが届かなくなる。アプリはデプロイ成功・ヘルスチェック200を返すが、メッセージが消える
  • Sandboxテンプレートが孤立:移行前のビルドのテンプレートが残存し、後続ビルドが全失敗
  • GitリンクがオーナーIDで切れた:GitHub orgを移動したリポジトリのオーナーIDが古いままになり、1ヶ月以上自動デプロイが止まっていた

「ヘルスチェックが200を返すことはアプリが起動していることしか示さない。何かがアプリに届いているかどうかは別の話だ」とZack Proserは指摘する。


失ったもの

正直なコストとして1点だけ挙げている。ブログボットはドラフトを2つのコールドリーダーで評価しており、意図的にClaudeとGPTの異なるベンダーを使っていた。自分の出力を自分で採点しないための設計だ。DeepSeekに統合したことでV4 ProとV4 Flashという同系列の2モデルになり、独立性が下がった。環境変数で別ベンダーに切り替えられるようにはしているが、今はコストと引き換えにこの独立性を諦めている。


結果

11ボット全てがdeepseek/deepseek-v4-flash-0731に移行し、週150ドル超から数ドルへ。11ファイルで文字列を1つ変えた結果だ。

詳細はRightsizing My Agent Spend: From Opus to DeepSeek V4 Flash…を参照していただきたい。