Fallow設定でClaudeエージェントのトークン浪費と空振りを減らす
1. Mai 2026
0
Computing/SoftwareComments (0)
Log in to leave a comment
No posts yet
Log in to leave a comment
No posts yet
大規模なモノレポでAIエージェントを使ってみると、すぐに気づくことがあります。数万個のファイルを無差別に読み込み、財布の底をさらっていく一方で、出力されるコードは文脈を外したゴミ同然であるケースが少なくありません。エージェントの知能を責める前に、私たちが何を与えているかを見直すべきです。Rustベースのコード分析ツールであるFallowを活用し、エージェントに「本当に危険なコード」だけを選んで読み取らせる具体的な方法を紹介します。
エージェントにコードベース全体を丸投げするのは無責任です。情報が多すぎると、モデルは中間内容を忘れてしまう「Lost in the Middle」現象に陥ります。Fallowのインデキシング機能を活用し、エージェントが探索する範囲を物理的に制限する必要があります。
.fallow.json を作成します。exclude 配列に **/dist/**、**/tests/** やレガシーパッケージを叩き込んでください。ノイズを減らすことが最優先です。rules セクションで high-complexity の閾値を 15 程度に設定します。これは、エージェントが認知的複雑度の高いモジュールから優先的に目を通すように強制する仕掛けです。strictBoundaries オプションを有効にします。これにより、エージェントがパッケージの境界を無視して依存関係をこじらせるという大惨事を防げます。この設定だけで、エージェントが読み取るファイル数は激減します。実際に不要なファイル読み込みを遮断すれば、APIコストを40%以上節約できます。
エージェントにコードを一行ずつ読ませて問題を探させないでください。それはお金の無駄です。Fallowがあらかじめ計算した構造的データを要約して渡す方が、遥かに高速で正確です。
ターミナルで fallow audit --format json > audit_report.json を実行し、アーキテクチャ違反事項と複雑度のレポートを抽出します。このJSONデータをClaudeのコンテキストウィンドウに直接投入するか、CLAUDE.md ファイルで参照させます。システムプロンプトには「修正前に必ずレポートの verdict と complexity スコアを確認し、スコアの低い(複雑な)モジュールから着手せよ」と記述しておけば完了です。
開発者が長々と説明する必要はありません。エージェントはすでにデータで整理された優先順位に従い、最も腐敗しているコードから手術を開始します。
静的分析だけでは、実際に動作しているコードかどうかは分かりません。参照は生きているものの、実際には誰も呼び出していない「ゾンビコード」がモノレポの主犯です。MetaのSCARFフレームワークが証明したように、静的分析と動的カバレッジを組み合わせて初めて安全な削除が可能になります。
V8カバレッジデータ(NODE_V8_COVERAGE)を収集した後、Fallowの runtime-sync 機能を実行してください。「静的参照は存在するが、過去1ヶ月間一度も実行されなかった関数」のリストが導き出されます。エージェントにこのリストを与え、削除の承認を求めるように仕向けます。「この関数は6ヶ月間呼び出し記録がないため、削除しても安全です」という根拠を、エージェントの口から聞くことになるでしょう。
エージェントが書いたコードが今すぐ動くからといって、無批判にマージしてはいけません。長期的に可読性を損なわないかチェックする必要があります。Fallowはハルステッド複雑度と論理パス数を組み合わせて、メンテナンス性指数(MI)を計算します。
GitHub Actionsに fallow audit --base main --format json ステップを追加してください。health_score が70点を下回った場合にビルドを失敗させるようにすれば十分です。
このゲート一つが、シニアエンジニアのレビュー時間を毎週2時間以上削減してくれます。エージェントが散らかしたものを片付けるのではなく、すでに機械が検証した高品質なコードの設計だけを検討すれば済むからです。エージェントとの協業における生産性の差は、こうした決定論的なツールをいかに冷徹に使いこなせるかで決まります。