AIツールを業務に組み込むフリーランスが増えている。僕もその一人だ。記事の自動生成、案件の巡回、データの分析——便利すぎて気づけばAPIをバンバン叩いている。
そしてある日、請求画面を見て固まった。
「え、今月もう3万超えてるんだけど……」
まだ月の半ばだった。本番のお客さん向けサービスじゃない。自分のワークフローをテストしていただけ。なのにこの金額。フリーランスにとって固定費の増加は地味に致命的だ。
この記事では、僕が実際にやらかしたAPI費用の爆発と、そこから学んだコスト削減の具体策を紹介する。「AIで自動化したら逆に赤字」なんてことにならないために、ぜひ参考にしてほしい。
そもそもなぜAPI代は「気づかないうちに」膨らむのか
AIのAPI(外部からAIの機能を呼び出す仕組み)は、基本的に「トークン」という単位で課金される。トークンとは、AIが処理するテキストの量を測る単位で、日本語だと1文字あたり1〜3トークンくらいになる。
厄介なのは、送る文章だけじゃなく、AIから返ってくる文章にもトークンが発生すること。しかも入力より出力のほうが単価が高いモデルも多い。
僕の場合、自作のAIエージェントシステムをVPS(自分専用のサーバー)上で動かしている。記事のネタ収集、スコアリング、記事生成、投稿——この一連の流れをAIが自動でやってくれる。便利なのだが、裏を返せば「人間が見ていないところでトークンを消費し続ける」ということでもある。
家の水道を出しっぱなしにして外出しているようなものだ。帰ってきたら床が水浸し……いや、財布が空っぽ、のほうが正確か。
僕がやらかした4つの「トークン浪費パターン」
API代が膨らんだ原因を分析してみたら、大きく4つのパターンに分類できた。海外のエンジニアコミュニティでも似たような失敗談が共有されていて、「あるある」なんだなと妙に安心した(安心している場合ではない)。
パターン1:コンテキストの肥大化
AIに指示を出すとき、「前回の結果も踏まえて」「この背景情報も考慮して」と、どんどん情報を付け足していた。1回の指示に含まれるテキスト量がじわじわ増えていく。これを「コンテキストクリープ」と呼ぶらしい。
1回あたりの増加は微々たるものだから、本人は気づかない。でもトークン数は確実に積み上がる。毎日ジュース1本買うのと同じで、月末に合計を見て「マジか」となるやつだ。
僕の場合、記事生成のプロンプト(AIへの指示文)に過去の記事一覧やスタイルガイドを全部突っ込んでいた。「情報は多いほうがいいだろう」という素朴な信仰。実際には、必要な情報だけ渡したほうがAIの出力品質も上がるし、コストも下がる。一石二鳥だった。
パターン2:ツール出力の垂れ流し
自動化システムでは、あるステップの出力が次のステップの入力になる。ログ、APIのレスポンス、差分情報——これらを「とりあえず全部渡す」設計にしていた。
出力が入力になり、その入力をもとにした出力がまた次の入力になる。雪だるま式にトークンが膨らんでいく。しかもログの大半はデバッグ用の情報で、AIの判断には不要だった。
パターン3:定期実行ジョブの「毎回フル装備」
僕のシステムではcronジョブ(決まった時間に自動実行される処理)でAIを呼び出している。問題は、毎回の実行で大きなプロンプトをゼロから組み立てていたこと。
1回あたりは「まあこんなもんか」という金額でも、1日に何回も、毎日繰り返すと結構な額になる。月の固定費として考えると笑えない。
パターン4:リトライによる二重実行
ネットワークエラーやタイムアウトで処理が失敗したとき、自動リトライが走る。それ自体は正しい設計なのだが、前回の処理が実は成功していたケースがある。結果、同じ重たい処理が2回走る。
僕も実際にブログ記事の重複投稿バグに遭遇した。同じ記事がWordPressに2回投稿されてしまったのだ。投稿自体は消せばいいが、AIによる記事生成のトークンは2倍消費されている。お金は戻ってこない。
実際にやった5つのコスト削減策
原因がわかれば対策はシンプルだ。派手なテクニックは一つもない。地味。でも効く。
1. プロンプトのダイエット
まず、AIに渡す情報を必要最小限に絞った。「あれもこれも」と詰め込んでいたコンテキストを、本当にその処理に必要な情報だけにカットする。
具体的には、記事生成のプロンプトから過去記事の全文を削除し、スタイルの要点だけを箇条書きで渡すようにした。これだけで1回あたりのトークン消費が半分以下になった。
2. ツール出力のトリミング
次のステップに渡すデータから、不要な情報を削ぎ落とす処理を入れた。ログは要約だけ、APIレスポンスは必要なフィールドだけ。「全部渡しておけば安心」という発想を捨てた。
料理でいえば、食材を丸ごと鍋にぶち込むのをやめて、ちゃんと下ごしらえしてから入れるようにした感じだ。手間は増えるが、結果はずっと良くなる。
3. 定期ジョブのセッション分離
cronジョブでは、毎回クリーンな状態からスタートするようにした。前回の実行結果を引きずらない。必要な情報だけをコンパクトに渡して、処理が終わったらコンテキストを捨てる。
これは衛生面でも良い。古い情報が混ざって判断がおかしくなる「コンテキスト汚染」の防止にもなる。
4. 排他制御で二重実行を防止
リトライ時に前回の処理が完了済みかどうかをチェックする仕組みを入れた。僕の場合は処理のステータスを記録しておいて、「処理中」なら新しいジョブを走らせない、というシンプルなロック方式にした。
重複投稿バグの修正もこの延長線上でやった。地味だけど、無駄なAPI呼び出しが確実に減る。
5. モデルの使い分け(これが一番効いた)
正直、これだけでコストの大半が削れた。
AIのAPIには複数のモデルが用意されていて、性能と価格にグレードがある。最上位モデルは賢いが高い。下位モデルは少し精度が落ちるが格段に安い。
僕は全部の処理に最上位モデルを使っていた。ネタの分類も、スコアリングも、記事生成も。でも冷静に考えれば、「この記事ネタはブログ向きかnote向きか」を判断するのに最高級AIは要らない。
そこで、処理の重要度に応じてモデルを切り替えるようにした。
- 単純な分類・フィルタリング → 軽量モデル
- スコアリング・要約 → 中間モデル
- 記事生成など品質が重要な処理 → 上位モデル
これだけで月のAPI代が3分の1以下になった。「全部松竹梅の松にしてたら、そりゃ高いわ」という話である。
フリーランスこそAPI代を「経費」として意識すべき
サラリーマンなら会社が払ってくれるAPIの費用も、フリーランスは自腹だ。そして確定申告のとき、この費用はちゃんと経費(通信費や外注費)として計上できる。
逆に言えば、いくら使っているか把握していないと、節税のチャンスも逃す。僕はAPI費用を月次で記録するようにしている。会計ソフトに登録するときに「うわ、今月こんなに使ったのか」と気づけるのも副次的なメリットだ。
AIのAPI代に限らず、フリーランスのツール代は「投資」と「浪費」の境界線が曖昧になりがちだ。「便利だから」で課金し続けると、気づけばサブスクだけで月5万円なんてことも珍しくない。
定期的に棚卸しをして、「このツールは売上に貢献しているか?」を問い直す習慣をつけたい。僕自身、今回のAPI代爆発で痛い目を見て、ようやくこの習慣が身についた。失敗から学ぶのは人間もAIも同じらしい。
まとめ
AIのAPI費用が膨らむ原因は、だいたい地味なものの積み重ねだ。
- プロンプトにあれこれ詰め込みすぎる
- ツールの出力を無加工で次に渡す
- 定期ジョブが毎回フルコストで走る
- リトライで同じ処理が二重に走る
- 全部の処理に最高級モデルを使う
対策も地味だ。プロンプトを削る、出力をトリミングする、セッションを分離する、排他制御を入れる、モデルを使い分ける。どれも「言われてみれば当たり前」のことばかり。
でも、この「当たり前」をやるかやらないかで、月のAPI代が数万円変わる。フリーランスにとって、その数万円は利益そのものだ。
AIを使って稼ぐなら、AIにかかるコストも自分でコントロールする。それがAI時代のフリーランスに必要なスキルだと、僕は財布の痛みとともに学んだ。
【PR】フリーランスエンジニアにおすすめのツール
マネーフォワード クラウド確定申告
API代やサブスク費用の経費管理に使っている。銀行口座やクレジットカードと連携すれば、AIツールの課金も自動で取り込んでくれるので記帳の手間がほぼゼロ。フリーランスなら確定申告の効率化は最優先事項だと思う。
カゴヤ・ジャパン レンタルサーバー
自動化システムを動かすサーバーとして検討したサービスの一つ。法人利用の実績が豊富で、安定性重視のフリーランスには安心感がある。コスト管理を考えるなら、サーバー代も比較検討する価値あり。
DMM 株
フリーランスの余剰資金の運用先として使っている。API代を削減して浮いたお金を投資に回すのも、フリーランスの資産形成の一つの形。手数料の安さが決め手だった。


コメント