AIエージェントを作って動かしてみたら、思ったより請求額が大きかった。よくある話です。原因は1回あたりの単価ではなく、会話のたびに過去のやり取りを全部送り直していることにあります。
今回は計算しました。往復を重ねたときのトークン量を出しています。結果を先に言うと、40往復で費用が4.3倍になり、送っている内容の93%が過去の履歴でした。
1回の応答の単価ではなく、会話全体の長さで決まります。やり取りのたびに、それまでの履歴を丸ごと送り直しているためです。
エージェントのコスト制御を考えるとき、費用は送った量と返ってきた量で計算されます。ここまでは単純なのですが、見落とされやすいのが「送った量」に過去のやり取りが全部含まれる点です。
AIは前回の会話を覚えていません。そのため、続きを話すにはこれまでのやり取りを毎回添えて送る必要があります。会話が長くなるほど、1回あたりに送る量が増えていきます。
エージェントの場合、送る内容は4つに分かれます。役割を指示するシステムプロンプト、使えるツールの定義、これまでの履歴、そして今回の発話です。前の3つは会話が続く限り毎回送られます。
毎回同じ内容を送るなら、そこを保存しておいて再利用する仕組みがあります。プロンプトキャッシュと呼ばれるもので、公式の価格表によればキャッシュから読み出す場合は通常の入力価格の10%になります。
| 操作 | 通常の入力価格に対する倍率 | 有効期間 |
|---|---|---|
| 5分キャッシュへの書き込み | 1.25倍 | 5分間 |
| 1時間キャッシュへの書き込み | 2倍 | 1時間 |
| キャッシュからの読み出し | 0.1倍 | 直前の書き込みと同じ |
モデルの価格表を比べて安い方を選ぶ、という判断をしがちです。ただ実際の請求額は「何トークン送ったか」で決まります。次の節で見るとおり、送る量の設計の方が単価より大きく効く場合があると編集部は考えています。
会話の往復を重ねたときのトークン量を計算しました。履歴をそのまま積む場合と圧縮する場合で、費用に4.3倍の差が出ました。
エージェントのコスト制御は、言葉で説明するより数字を見た方が早いので計算しました。往復のたびに増えていくトークン量を出しています。
条件は次のとおりです。システムプロンプト1,200・ツール定義800・利用者の発話150・応答400・ツールの実行結果900トークン。価格は入力100万トークンあたり3ドル、出力15ドルと仮定しています。
1会話あたりのトークンと費用(入力$3 / 出力$15 per 1M と仮定) 往復数 履歴そのまま 履歴を圧縮 5回 25,250tok $0.106 25,250tok $0.106 10回 86,750tok $0.320 51,800tok $0.215 20回 318,500tok $1.075 109,250tok $0.448 40回 1,217,000tok $3.891 219,800tok $0.899 40往復での差: 4.3倍 入力トークンの内訳(40往復・履歴そのまま): 履歴が全体の 93%
開きました。40往復で$3.891と$0.899、4.3倍の差です。5往復の時点では差がありません。会話が短いうちは問題にならず、長くなってから効いてきます。
1回あたりに送る量が毎回増えるからです。往復ごとに履歴が伸び、その伸びた履歴を次の回でまた送ります。増え方が足し算ではなく累積になります。
40往復時点の内訳を見ると、送っている入力の93%が過去の履歴でした。システムプロンプトもツール定義も今回の発話も、合わせて7%しかありません。
5往復では差がない。20往復を超えたあたりから開きが大きくなる。
圧縮といっても複雑なことはしていません。履歴が一定量を超えたら、古い部分を短い要約に置き換えているだけです。それだけで4分の1以下になります。
Cache read tokens are charged when a subsequent request retrieves the cached content.原文Claude Docs「Pricing」 この内容の有効期限2026-11-17
順番があります。まず履歴の扱い、次に毎回同じ部分のキャッシュ、最後にモデルの選択です。逆順にやると効果が出ません。
エージェントのコスト制御で最初にやることは、モデルを変えることではありません。送っている量を減らすことです。順に見ていきます。
前の節で見たとおり、長い会話では入力の9割以上が履歴になります。ここを放置したまま単価を下げても、効果は限定的です。
システムプロンプトとツール定義は、会話のあいだ変わりません。ここをキャッシュすると読み出しが通常の10%になります。
ただし注意点があります。公式が明記しているとおり、キャッシュへの書き込みは最初に保存するときに課金されます。しかも通常より割高です。1回しか読まない内容をキャッシュすると、かえって高くつきます。
キャッシュは読み出す回数で損得が変わる。書き込みが割高な分を、読み出しの割引で回収する形。
ここまでやってからモデルの選択を考えます。送る量が最適化されていない状態で単価だけ下げても、削減幅は小さいためです。判断に必要な場面だけ高性能なモデルを使い、他は軽いモデルに振り分ける構成もあります。
実際にかかっている額を把握する方法は、エージェント可観測性の記事で扱っています。どこで費用が発生しているかが見えないと、この順番の判断もできません。
Cache write tokens are charged when content is first stored.原文Claude Docs「Pricing」 この内容の有効期限2026-11-17
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る