ブログ
基礎

公開日: 更新日

ShouryamaanとArag

AIエージェントのインフラコスト:モデル、ストレージ、コンピュート、ツール呼び出し

Markdownで読む

AIエージェントのインフラコストとは、完了したタスクにかかる費用です。モデルのトークン、有料ツール、実行時間、ストレージ、ネットワーク利用、再試行、アイドルリソースが含まれます。モデルの請求だけを追跡していると、エージェントが遠回りしたり途中で失敗したりしたときに増える費用を見落とします。

分母には、解決したチケット、デプロイしたアプリケーション、レビュー済みのドキュメントなど、有用な成果を使います。失敗するリクエストが増えると、リクエストあたりのコストが改善しても、完了タスクあたりのコストは悪化します。

6つのコスト要素

モデルのトークン

モデル呼び出しごとに、入力、キャッシュ済み入力、プロバイダーが公開している場合は推論、出力のトークン数を記録します。価格はモデルごとに異なり、変更される可能性もあります。一つの混合単価をハードコードせず、保存した利用量とバージョン管理された価格表から計算してください。

OpenAI APIの料金のようなプロバイダーページには課金単位が公開されています。過去の実行を現在の価格で再計算すると履歴を書き換えてしまうため、その実行で使った正確な価格を自身の記録に残してください。

有料ツールと外部API

検索、ブラウザーセッション、音声、メール、画像生成、地図、データプロバイダーでは、呼び出し、結果、分数、バイト単位で課金される場合があります。エージェントのツール呼び出しと並べてプロバイダーの操作を記録し、一つのワークフロートレースで振る舞いとコストの両方を説明できるようにします。

曖昧な結果を返すツールは、表示された単価そのものより、再試行によって費用が増える場合があります。誤ったツール利用のデバッグガイドは、選択の失敗とプロバイダー側の失敗を分けるのに役立ちます。

エージェントとサンドボックスのランタイム

アクティブなCPU時間またはworker時間、メモリ使用時間、サンドボックスの利用分数、最低セッション料金を計上します。コードが動いていなくても、モデルの長い待ち時間によってサンドボックスが稼働し続ける場合があります。プロバイダーが合計存続時間で課金する場合は、アクティブな実行時間と合計存続時間の両方を記録します。

データベース、ストレージ、ネットワーク

永続サービスには、エージェントの実行回数に左右されない基礎コストがあります。データベースのコンピュート、保持ログ、チェックポイント、ベクトルインデックス、オブジェクトストレージ、ネットワークegressを含めます。共有リソースはテナント別利用量、ワークフローの書き込み数、保存バイト数などの安定したルールで配賦し、そのルールを明示します。

再試行と失敗した実行

成功かどうかを問わず、すべての実行をattempted costに含めます。

cost per successful task = total attempted cost / successful tasks

100回の実行のうち20回が予算の大半を消費した後に失敗した場合、成功した80件の成果がその費用を負担します。そのため本番エージェントガイドでは、再試行の制限をコストと信頼性の両方を守る制御として扱います。

アイドルリソース

エージェントがデータベース、デプロイ、サンドボックスを作成し、削除しない場合があります。実行後も残るリソース、その所有者、最終アクティビティ、削除期限を追跡してください。リソース記録が作成元のワークフローを参照していなければ、実行単位のコストダッシュボードでは見落とします。

監査可能な計算

一つのワークフローについて、次のように計算します。

run cost = model + paid tools + runtime + storage allocation + network

completed-task cost =
  sum of successful, failed, and retried run costs
  divided by completed tasks

中央値とp95を報告します。平均値だけでは一部の長いループを隠し、最大値は通常の運用ではなくインシデントを表す場合があります。最大値は別のアラート対象として保持してください。

コストが発生する場所で予算を設定する

コスト源 強制可能な上限
モデル利用 実行ごとのトークン数、呼び出し数、または金額
ツール ツールごとの呼び出し数と同一引数の反復回数
ランタイム 経過時間、CPU、メモリ、同時セッション数
ストレージ バイト数、保持する成果物、チェックポイントの存続期間
再試行 操作ごとの試行回数と再試行の総費用
プロビジョニング リソース数、tier、自動失効期限

上限に達したら、ランタイムが処理を停止する必要があります。モデルに節約を求めるプロンプトは指針にはなりますが、予算を強制できません。

Cohesivityの利用量をモデルに組み込む方法

Cohesivityは、従量課金されるプロバイダー利用量とプランのquotaを分けています。料金ページには現在のbucketとfluidの利用枠が記載されています。fluid利用量を原因となったプロバイダー呼び出しへ対応付け、bucket利用量を消費対象のプロビジョニング済みサービスまたはアカウントquotaへ対応付けます。

診断が目的なら、これらの記録を一つのCohesivity利用額へまとめないでください。ブラウザーのループ、モデルの再試行、削除し忘れたデプロイのどれが変化を引き起こしたか、引き続き確認できる必要があります。

規模を見積もる前に測定する

代表的なタスクを一つ選び、すべてのモデル呼び出し、ツール呼び出し、再試行、ランタイム区間、作成リソースを記録します。値を実測、設定値、仮定に分類し、通常ケース、p95、一つの失敗ループを計算します。

以下のプロンプトは、調査中に費用を発生させず、プロジェクトからこのモデルを作成します。