しんたろーのITアカデミー
開発日記

Claude CodeによるAI開発。裏側で二重生成が走り続け、見えないコストが無限に溶けていく絶望。

Claude CodeによるAI開発。裏側で二重生成が走り続け、見えないコストが無限に溶けていく絶望。
しんたろーしんたろー
11分で読めます
この記事の内容(目次)

※この記事は、Claude Codeで1人開発しているSNS運用SaaS「ThreadPost」の開発日記です。

画像生成をバックグラウンドに回した。画面はサクサク動くようになった。

でも裏側で無限リトライが発動していた。APIの課金メーターが静かに回り続けていた。

エラーで止まるならまだいい。一番怖いのは、表面上は動いているように見えて、裏で見えないコストが無限に溶けていくバグだ。

SNS運用を自動化しませんか?

ThreadPostなら、投稿作成・画像生成・スケジュール管理までAIがサポート。

無料で始める

1465件のコミットと見えないバグ

今週はコミット1465件を積んだ。新機能12件、バグ修正28件をデプロイした。

非同期処理の泥沼と見えないコスト
非同期処理の泥沼と見えないコスト

Claude Codeを使って、4コマ漫画生成の非同期化と、開発ログの自動生成パイプラインを構築した。

見た目の機能は増えた。だがその裏で、非同期処理特有の状態ズレと、AIの幻覚に振り回される1週間だった。

Inngestと非同期化の泥沼

4コマ漫画の自動生成機能を作っている。ローカルでは動くのに、本番環境だとタイムアウトで落ちた。

今週の開発スタッツ
今週の開発スタッツ

Vercelのレスポンス打ち切り時間を計算していなかった。Claude Codeに「画像生成を全部バックグラウンドでやって」と指示した。

ジョブキューシステムのInngestを使って、Fan-outパターンで実装してきた。1つのリクエストを複数の並列ジョブに分散する仕組みだ。

テスト環境で動かした。画面がずっと「生成中...」のまま固まった。

ログを見ると処理は完走している。なのに画面のプログレスバーは0%のまま動かない。

原因は1つじゃなかった。ジョブ内のSupabaseクライアントにRow Level Securityが効いていた。

進捗をUPDATEする権限がゼロだった。一般権限だと自分のデータすら取得できない仕様を忘れていた。

「fix: generation_jobsテーブルにUPDATE権限を追加」をコミットした。

これで直ると思った。甘かった。

今度は別のバグが出た。Google AIのAPIが一時的なエラーを返したとき、エラー判定の分岐がなくて無限リトライが走っていた。

画面が0%のまま、裏で同じ画像を何十枚も生成し続けていた。API代がみるみる溶けていく。

非同期の分散トランザクションでは「冪等性」の担保が必須になる。何度実行しても同じ結果になる設計にしないと、リトライのたびにデータが壊れるかコストが跳ね上がる、と言われている。

AIはハッピーパスを一発で書く。「失敗した後に何が残るか」の設計は人間の仕事だった。

しんたろーしんたろー:
本番エラーを誰も知らない状態で1ヶ月運用してた。構造化ロガーを入れて初めて、1日に数十件の想定外エラーが起きている事実を知った。ログのない本番コードは、暗闇で音だけ聞いて修理するのと同じだ。

「fix: プログレスバーがリアルタイム更新されるように修正」をデプロイした。

同時に、APIコストの最適化もやった。Claude APIで月5万円使っていたのを、Vertex AI REST APIに移行した。

移行作業は1日。レスポンス速度は体感で1.5倍になり、エラー率はほぼゼロになった。

API代は月2.5万円に半減した。浮いた2.5万円で他の機能開発に回せる。

今は画像10枚同時生成でも画面はサクサク動く。ボタンを押してから0.8秒かかっていた処理が、0.1秒以下になった。

APIを直列で3回叩いていたのを、1回にまとめたからだ。

AIを飼い慣らす自動生成パイプライン

開発ログの更新がずっと止まっていた。コードを書くのに必死で、文章を書く気力が残っていなかった。

Claude Codeに「過去のコミット履歴からDevlogを自動生成して」と指示した。「feat: Devlog記事自動生成パイプライン」をコミットした。

これで毎日勝手にブログが更新される。最高だと思った。

出てきた記事を読んで絶望した。「AIを活用した現代の開発手法」みたいな、どこにでもある薄っぺらいポエムが出来上がった。

しかも数字を捏造していた。「28種類実装」「15%向上」とか、コミットに一切書いていない数字を自信満々に並べてきた。

プロンプトに「嘘をつくな」と書いた。そこまで言わないとわからないのか。

さらに「〜が本質です」「改めて実感しました」という説教くさい締めくくりを連発してきた。

禁止ワードリストを20個作った。段落は最大2文、説教禁止、バッククォート禁止の多層防御を敷いた。

しんたろーしんたろー:
記事生成のプロンプト調整だけで14回コミットした。AIの人格を調整するのは楽しいが、「嘘をつかせない」のはただの重労働だ。ルールは「AIが守れない前提」で書く方が早い。

それでも同じAIに自己レビューさせると、自分の嘘を見抜けない。

だから、生成と査察を別モデルに分離した。Claudeが書いた記事を、Gemini 2.5 Proにファクトチェックさせる。

「fix: バッククォート禁止の多層防御 + Gemini フォールバックチェーン」をデプロイした。

別モデルを挟むだけで、論理の穴や誇張を次々と指摘するようになった。AI同士が監視し合う構造だ。

ついでに、ブログ記事を公開した瞬間にThreads用の投稿候補を自動生成する機能も付けた。

「feat: ブログ記事公開時にThreads投稿候補を自動生成 + 管理画面に生成日時表示」

朝起きると、僕の言葉で書かれた開発ログが出来上がっている。毎日30分かかっていた作業が消えた。

その分、AIの出力品質を監視するプロンプトのメンテナンス時間は増えた。

ここまで読んだあなたに

今なら無料で全機能をお試しいただけます。設定後はAIが投稿案を毎日生成。確認して選ぶだけ。

無料で始める

落とし穴:XのカウントとAIの算数

Xの投稿タイトルを自動生成させようとした。AIに「45文字以内で」と指示した。返ってきたタイトルは100文字を超えていた。

Xの仕様では、英数字は1カウント、日本語は1文字2カウントになる。上限は100カウントだ。

AIは文字数を単純に数える。「48文字です」と言いながら、実際は96カウントを消費している。

何度「100カウント以内にしろ」と指示しても、計算を間違える。5回連続で同じミスをしてきた。

プロンプトに「日本語は2カウント、英数字は1カウント」という計算式を直接埋め込んだ。その場で計算させながら生成させる構造に変えて、ようやく40文字ピッタリのタイトルが出るようになった。

AIに数を任せるのは無理だった。計算式ごと渡すしかない。

しんたろーしんたろー:
まじかよ…5回連続で同じカウントミス。お前、仕様書読んでないだろ。計算式を丸ごとプロンプトに埋め込んだら一発で通った。最初からそうしろよ。

今日の数字

| 項目 | 今週のデータ | 比較対象 |

|---|---|---|

| 総コミット数 | 1465件 | チーム開発なら半年分 |

| 開発工数 | 3日 | チーム開発なら2週間 |

| APIコスト | 月2.5万円 | 移行前は月5万円(50%削減) |

| バグ修正数 | 28件 | 先週は12件 |

| 記事生成時間 | 0分 | 手動なら毎日30分 |

1人で28件のバグを修正した。チーム開発なら、バグ報告から優先度調整、実装開始までに2週間はかかる量だ。

伝達コストがゼロだから、見つけた瞬間に直せる。

よくある質問

非同期処理でAPIコストが爆発するのを防ぐには?

冪等性キーとリトライ上限の設定が先だ。今回は「エラー時に無限リトライ」が原因で、同じ画像を何十枚も生成し続けた。Inngestのジョブ設定でリトライ上限を3回に絞り、エラー時は即座にジョブを停止する分岐を追加した。リトライ設計がないまま本番に出すと、静かにコストが溶ける。

AI生成コンテンツの数字捏造をどう防いでいますか?

生成と査察を別モデルに分けた。Claudeが書いた記事をGemini 2.5 Proにファクトチェックさせる構造だ。同じモデルに自己レビューさせると自分の嘘を見抜けない。別モデルを挟んだら、「コミットに存在しない数字」の指摘が一発で出るようになった。プロンプトに「嘘をつくな」と書くより、構造で防ぐ方が早い。

1人SaaSでThreads APIが壊れたときの対処は?

今週、Threads APIの障害で論理削除したアカウントに勝手に投稿が飛んだ。急いで止血したが、根本的なデータ整合性の確認はまだ終わっていない。外部APIは予告なく壊れる。自分のコードより先に外部を疑う嗅覚と、即座に止められるフラグ設計が必要だ。

まとめ

自動化を進めるほど、失敗したときの管理コストが浮き彫りになる1週間だった。

👉 ThreadPostでSNS運用を自動化する

ThreadPost — SNS投稿をAIが自動化

この記事が参考になったら、ThreadPostを試してみませんか?投稿作成・画像生成・スケジュール管理まで、AIがサポートします。

無料で始める

この記事をシェア

XはてブLINE
しんたろー

ThreadPost開発者・個人開発エンジニア

AI × SaaS個人開発者。Cursor / Claude Code を使った効率的開発、SNS自動化について実体験から発信。

人気の記事