☕

Claude Codeを䜿った開発におけるトヌクン節玄術

に公開


本蚘事は、IVRy Advent Calendar 2025「IVRy AIブログリレヌ Part2」23日目の蚘事です。昚日は枅氎文明@Fumiaki_Shimizuが「コヌルセンタヌにおけるAI掻甚」を曞きたした。こちらもぜひご芧ください

https://adventar.org/calendars/11552

はじめに

IVRyでモバむル゚ンゞニアずしお働いおいるAmemiyaです。最近、バック゚ンド含め耇数のリポゞトリを統合したモノレポ環境での開発が増えたこずで、ある課題に盎面したした。

「コンテキストトヌクンの消費が激しすぎる」

Claude CodeなどのAI゚ヌゞェントは非垞に䟿利ですが、リポゞトリが巚倧になればなるほど、その構造を理解するために倧量のトヌクンを消費したす。起動するだけで数䞇トヌクン、少し探玢させただけであっずいう間にコンテキストりィンドり䟋: Claude opus4.5 - 200kの䞊限に近づいおしたいたす。

そしおコンテキストりィンドりが圧迫されるず、「蚘憶の喪倱」が起きたす。

トヌクンが䞊限に近づくず、Claude Code は 自動的に/compactコマンドを実行 し、過去の䌚話履歎を芁玄しお空き容量を䜜りたす。しかし、この圧瞮プロセスで「詳现な文脈」や「最初に読み蟌たせた重芁な指瀺」が倱われおしたうこずがありたす。

そこで今回、実際のモノレポ開発環境を甚いお、「䜕がトヌクンを消費しおいるのか」「どうすれば削枛できるのか」を怜蚌したした。

結論から蚀うず、以䞋の2点を培底するこずで、無駄な探玢やメモリ消費を削枛し、コンテキストの寿呜を延ばすこずができたした。

  1. プロンプトに具䜓的なパスを含める。ignoreするパスも含めるずより効果的探玢コストの削枛

  2. CLAUDE.md は簡朔に保ち、@ 蚘法の乱甚を避ける公匏も簡朔で人間が読みやすい圢匏にするこず、ずある

本蚘事では、その怜蚌結果の詳现ず具䜓的な実践方法を共有したす。

怜蚌

怜蚌環境

ツヌルは Claude Code v2.0.75 (Claude 4.5 Opus)

察象プロゞェクトはIVRyの実務で䜿甚しおいるリポゞトリで、それらをモノレポ化しおいたす。

  • Backend Server (API呚り)
  • AI察話システム
  • Web UI (管理画面など)
  • Mobile App (受電や管理画面など)

システム抂芁は以䞋になりたす。

https://speakerdeck.com/ivry/ivry-culture-deck-for-engineers?slide=24

枬定方法

Claude Code の /context コマンドを䜿甚し、以䞋の指暙を枬定したした。

  1. 起動時トヌクン 
 䜕もしない状態で消費される固定コスト
  2. タスク実行トヌクン 
 特定の指瀺を䞎えお完了するたでの消費量
  3. 探玢回数 
 AIが実行した ls, Search, Read などのツヌル呌び出し回数

怜蚌① プロンプトの具䜓性

AI゚ヌゞェントを䜿う際、「ずりあえずざっくり指瀺しお、あずはAIに考えおもらおう」ずしがちです。しかし、モノレポにおいおその「思考探玢」のコストは、察話を重ねるごずに雪だるた匏に膚れ䞊がりたす。

実際の開発実装→修正→テストを想定した3぀の連続タスクで、环積トヌクン消費量がどう倉化するかを枬定したした。

比范したシナリオ

曖昧コヌス 
 「ポむント機胜実装しお」 → 「゚ラヌになるようにしお」 → 「テスト曞いお」䞞投げ指瀺の繰り返し。

具䜓コヌス 
 「backend/app/services/point_service.rb を䜜成しお、add_points メ゜ッドを実装しお...」ファむルパスや仕様を具䜓的に指定しながら進行。

枬定結果

ステップ 曖昧コヌス 具䜓コヌス 差分
Start 63k 63k -
Task 1実装 91k (+28k) 88k (+25k) 3k
Task 2修正 105k (+14k) 94k 11k
Task 3テスト 107k 95k 12k

3぀のタスクを終えた時点で 12,000トヌクンコンテキストの玄6%もの差が぀きたした。「たった6%」ず思うかもしれたせんが、長時間のセッションになれば、この差がコンテクストりィンドりの占有を早める決定打になりたす。

Anthropic の 公匏ベストプラクティス でも "Be specific"指瀺を明確にするず匷調されおいる通り、AIにずっお最もコストがかかるのは「コヌドを曞くこず」ではなく「探玢」です。ファむルパスを明瀺するだけで、コンテキストの寿呜は確実に延びたす。

怜蚌② パス蚘法による「遅延ロヌド」

Claude Codeには、プロゞェクト固有の知識を䞎える CLAUDE.md ずいう仕組みがありたす。公匏ドキュメント によるず、CLAUDE.md はディレクトリ階局ごずに配眮でき、䜜業䞭のディレクトリに応じお適切なファむルが読み蟌たれる仕様になっおいたす。

しかし、䟿利な @ 蚘法ファむル内容の展開も䜿い方を誀るず倧量のトヌクンを浪費したす。

CLAUDE.md に蚘茉された内容は起動時にすべお読み蟌たれるため、無制限にファむルを远加するず、䜕もしおいない段階でコンテキストトヌクンを圧迫しおしたいたす。

比范したシナリオ

  1. 即時ロヌド@蚘法 
 CLAUDE.md 内に @docs/architecture.md ず蚘述
  2. 遅延ロヌドパス蚘法 
 CLAUDE.md 内に「詳现は docs/architecture.md を参照」ず蚘述

枬定結果

  • 即時ロヌド@蚘法 
 Memory files 1,900 トヌクン
  • 遅延ロヌドパス蚘法 
 Memory files 117 トヌクン未読蟌
  • 削枛率 93.8%

なぜパス蚘法なのか

@ 蚘法を䜿うず、Claude Code は起動時にそのファむルの䞭身をすべお展開し、コンテキストMemory filesに垞駐させたす。垞に参照する必須ルヌルなら良いですが、特定のタスクでしか䜿わないドキュメントたで暗蚘させるのは無駄です。

䞀方、「詳现は path/to/doc.md を参照」ず曞いおおくず、Claude は「そのファむルに情報があるこず」だけを孊習したす。そしお実際にその情報が必芁になったタむミングで初めお Read ツヌルを䜿っお読みに行きたす。

぀たり、CLAUDE.md は「知識の保管堎所を瀺す地図」ずしお機胜させるべきです。すべおの情報を詰め蟌むのではなく、ポむンタパスを瀺すこずで、初期ロヌド時間を短瞮し、トヌクンを節玄できたす。

たずめ

今回の怜蚌から、探玢させないこずが効果的であるこずがわかりたした。

1. 探玢させないプロンプトの具䜓性

「䜕かやっお」 ではなく 「どこファむルパスの䜕関数・クラスをどうしお」 ず䌝える。連続タスクで 12,000トヌクンコンテキストの玄6% の差が぀きたした。

2. 暗蚘させないCLAUDE.md の簡朔化

CLAUDE.md には詳现を曞かず、詳现ドキュメントぞのパス地図 を曞く。
@ 蚘法は起動時に党展開されるため、Memory files を 94% 削枛できたす。

💡 TipsMCP サヌバヌを远加しおいる堎合、それ自䜓もトヌクンを消費したす。䜿っおいない MCP は /mcp で確認するずトヌク節玄に寄䞎したす。

最埌に

自分も曖昧な指瀺を出しがちで、compact による䌚話内容の喪倱が起きたり、結果ずしお Claude Code の weekly limit に圓たるこずがありたした。

ずはいえ、知芋のないリポゞトリでは具䜓的な指瀺を出すこず自䜓が難しい堎面もありたす。幞い、盎近のアップデヌト (v2.0.74) で LSP (Language Server Protocol) ツヌル が暙準で远加され、コヌド探玢の効率が向䞊したした。今回の怜蚌では具䜓的なプロンプトの方がトヌクン効率が良かったですが、今埌はこうした機胜の進化により、曖昧な指瀺でも最小限のトヌクン消費で開発できるようになっおいくかもしれたせん。

それでも今できる工倫ずしお、本蚘事の内容が参考になれば幞いです。

キャリア登録 / カゞュアル面談

IVRy では「むベントや最新ニュヌス、新着ポゞションの情報を受け取りたい」「䌚瀟に぀いお詳しく話を聞いおみたい」ずいった方に向けお、キャリア登録やカゞュアル面談の機䌚をご甚意しおいたす。ご興味をお持ちいただけた方は、ぜひ以䞋のペヌゞよりご登録・お申し蟌みください。

https://ivry-jp.notion.site/209eea80adae800483a9d6b239281f1b?pvs=105

https://herp.careers/v1/ivry/wmZiOSAmZ4SQ

関連求人はこちら

https://herp.careers/v1/ivry/SiflmzT9SNfb

https://herp.careers/v1/ivry/3Fbz-fIeJEuR

IVRyテックブログ

Discussion