知人から化粧品ショッピングモールの構築依頼を受けた。職場でCだけ書いていたので、新しい技術スタックを試す機会だった。決済はToss Payments、フロントはReact。「金融圏の次世代が全部Reactに行く」という話が気になっていたし、Toss PaymentsはNode親和的だった。方向はすぐ決まった。

当然このスタックを使ったことはなかった。やる気はあるが、勉強してから作れるような納期ではなかった。だからバイブコーディングを試してみた。

「化粧品を販売するためのショッピングモールを作って、リファレンスサイトのURLは〜だよ。」それだけだったのに、一人でカタカタやって、思いもよらない部分まで設計したモックアップができあがった。ああ、バイブコーディングが出て1年以上経つのに、完全に遅れていた。

Claudeが作るコードをもとに新しいスタックを学ぶという計画は愚かだった。コードを読む速度よりClaudeが生産する速度の方がはるかに速かった。だから自分でレビューするのではなく、自分自身でレビューするよう依頼した。(人間時代の終わりが来るようだ。)

そうやって使っていると、Claudeが前の内容を引き継げない現象が起きた。「context」という単語をググって原因を知った。サブエージェントで役割を分ければいいということもそこで見つけた。pm、dba、back、front、qa — 5つの構造をセットアップした。CLAUDE.mdにパスルールからセッション運用ガイドまで全て定義した。使用量は10%台半ば。これで十分じゃないか、と思った。

それから3時間後、You've hit your limit · resets 3am を見た。

午前3時リセットという文言は理解できた。でも理解できなかった。なぜ3時間で?

最初からボタンの掛け違いだった

5つのエージェントをセットアップしながら、間違った仮説を持っていた。「Claudeが多く考えるほどトークンが多くかかる。」根拠はなかった。ただそう思っただけだ。

エージェントごとにif-thenルールをびっしり整理した。Claudeが判断する余地をなくせば推論コストが減ると信じていた。CLAUDE.mdもその論理で埋めた。

limitを経験してからやっとググった。間違っていたとその時知った。Claudeが消費するトークンの大部分は推論ではなく読み込みだった。エージェントは実行されるたびにCLAUDE.mdを最初から全部読む。一生懸命埋めたCLAUDE.mdが毎回丸ごとコンテキストにロードされていた。

散文形式の説明をテーブルに圧縮し、重複項目を削除した。消費速度が減った。

もっと分割すればトークンが減るだろう

軽量化後、Compacting conversation...の頻度が減った。contextがうまく維持された。嬉しかった。

しかしトークン消費を見ると、むしろもっと漏れていた。

「役割をもっと細かく分ければ、各エージェントが扱う範囲が狭くなるんじゃないか。」これが次の試みだった。

5つから12に増やした。api-designer、ui-designer、performance-engineer、security-auditor… 段階的に体系的に分けた構造だった。

contextはうまく維持された。でもトークンがもう少し漏れている気がした。

涙を飲んで統廃合

Claudeに原因を診断してもらった。まるで裁判の判決を受けるようだった。token.. my precious…

エージェント数 = CLAUDE.md読み込み回数だった。12のエージェントがそれを12回ずつ全てコンテキストにロードした。分割するほど速く燃えていた。

減らさなければならなかった。本当に一生懸命作ったが、涙を飲んで統合した。

api-designerはbackend-developerに、ui-designerはfrontend-developerに、performance-engineerはcode-reviewerに吸収させた。

項目削減
エージェントファイル全体容量112KB40KB-64%
エージェント数12個9個-3個

使用量の消費速度が目に見えて変わった。

だからMaxにした

構造を整えてからやっとClaudeの作業速度を実感した。お金がかかるのは確かだ。でも処理速度が想像を超えていた。自分でやれば数日かかる作業が1セッションで終わった。

Maxプランに上げて、無駄なく充実に使おう。

構造の問題は解決した。my preciousを守るためにググるのをやめなかった。そして発見した。Claudeがファイルを読む時、500行なら500行全部読んでいた。テストを実行すると成功したケースまで結果全体をコンテキストにロードしていた。エージェント数の問題ではなかった。Claudeが見ること自体が問題だった。

どうすればClaudeに必要なものだけを見せることができるだろうか。

このシリーズの他の記事


参考