FULLALLGOL 技術ノート

LLM コーディングの費用は、生成ではなく「履歴の再送」で決まる

2026-08-31

コーディングエージェントの利用量を減らしたい、という話になると、たいてい最初に出るのは
「生成を軽いモデルに逃がす」「出力を短くする」だ。直感は出力側に向く。

1 か月分のセッションログを全部集計したら、支出構造の 83% は入力側だった。
生成は 17% しかない。この非対称を知らずに削減策を設計すると、必ず外す。

集計結果

ローカルに残るセッションログから、アシスタント発話 約 3 万件分の使用量を、
入力・キャッシュ書き込み・キャッシュ読み出し・出力の 4 本に分けて合計した。
費用比率は、入力の単価を 1 として出力 5 倍・キャッシュ書き 1.25 倍・キャッシュ読み 0.1 倍という
一般的な重み付けで換算している。

区分トークン量の比率費用の比率
キャッシュ読み出し96%57%
キャッシュ書き込み3.4%26%
出力0.6%17%
素の入力0.04%0.2%

読み方は 2 つある。

そのうえで支配項は依然として入力側だ。キャッシュ読み書きの合計で 83%
つまり費用は「何を書かせたか」ではなく、「何回、どれだけ長い履歴を送ったか」で決まっている。

だから「生成の外注」は上限 17% にしかならない

生成をローカルの小さいモデルへ逃がす構成を検討したことがある。
上の表を先に見ていれば、理論上の削減幅が 17% を超えないことは計算するまでもなかった。
実際に組んで試した結果も、投下したコストのほうが上回った。

効くのは別の軸だ。

いずれも「生成量を減らす」ではなく「再送の回数と長さを減らす」施策になっている。

実装上の落とし穴 ── 素の入力欄だけを見て「入力は少ない」と読む

使用量の記録には入力系の欄が 3 つある。素の入力、キャッシュ書き込み、キャッシュ読み出しだ。
このうち素の入力は「キャッシュに載らなかった残り」でしかない

ここだけ見ると 0.04%。「入力はほぼゼロ」という結論になる。典型的な誤読で、
プロンプトの総量は 3 つの合計だ。

集計はいつでも後から再現できる

セッションログはローカルに JSON Lines で残る。
アシスタント発話の使用量オブジェクトを 4 本のフィールドで足すだけで、
過去に遡って同じ表が作れる。

しかもログはプロジェクトのディレクトリ単位で分かれる。
作業ツリーが分かれていれば記録も分かれるので、案件ごとの消費量を後から切り出せる
「どの案件にいくらかかったか」を、事前の計測設計なしに答えられるということだ。

日別に並べると、もっと有用なことが分かる。消費は平らではない
実測では、突出した数日が全体を押し上げていた。
平均を下げようとしても数字は動かない。その日の作業パターンを潰すのが最短になる。

削減策は「どこが重いか」を測ってから設計する。測らずに設計すると、
全体の 17% しかない項目を一生懸命に削ることになる。

定額プランなら、この換算はそのまま請求額を意味しない。
それでも消費量の物差しとしては同じように使える

まとめ