Claude Code 最適化

1. プロジェクト容量の実測結果

Claude Codeのトークン消費がものすごい・・・いくら請求が来るやら(トークン量は1億となっていた!!)、これは大変なのでトークン削減・コスト最適化の実践を考える
iso_app プロジェクトの容量分析結果(2026年5月実測):

フォルダサイズ(MB)分類除外対象
node_modules/103.25npmライブラリ
✅ 除外必須
vendor/73.14Composerライブラリ✅ 除外必須
storage/app/59.91写真・添付ファイル✅ 除外必須
storage/logs/4.33ログファイル✅ 除外必須
storage/fonts/5.87IPAexフォント✅ 除外必須
storage/framework/0.27Laravelキャッシュ✅ 除外必須
public/18.39ビルド成果物・画像⚠ 一部除外
resources/1.32ビュー・CSS・JS❌ 必要(含める)
database/0.86マイグレーション❌ 必要(含める)
app/0.38実コード❌ 必要(含める)

⚠ 実コード(app/, resources/, database/, routes/, config/)の合計はわずか 2.7MB。全体の 1% です。

2. .claudeignore の設定

.claudeignore ファイルをプロジェクトルートに作成することで、Claude Code が読み込む対象を 268MB から 2.7MB に削減できます。

依存ライブラリ(最重要)
vendor/
node_modules/
アップロードされた写真・添付ファイル(iso_app固有)
storage/app/public/photos/
storage/app/public/evidence/
storage/app/public/plans/
storage/app/public/ra_attachments/
Laravelキャッシュ・ログ
storage/logs/
storage/framework/
storage/fonts/
ビルド成果物
public/build/
public/storage/
手書きCSSは含める
!public/css/print-common.css
Git・IDE
.git/
.idea/
.vscode/
バイナリ・大容量ファイル
*.zip *.tar.gz *.pdf *.xlsx *.sql *.sqlite

3. Claude Code のモデル設定

3.1 モデル別料金(2026年5月時点)
モデル入力(1Mトークン)出力(1Mトークン)用途の目安
Claude Haiku 4.5$1.00$5.00単純な分類・抽出・補助処理
Claude Sonnet 4.6$3.00$15.00一般的な開発作業(推奨)
Claude Opus 4.7$5.00$25.00複雑な設計・深い分析時のみ
3.2 推奨設定
設定項目推奨値理由
通常モデルSonnet 4.6Opusの60%のコストで同等品質
コンテキスト標準(200k)プロジェクト2.7MBに1Mは不要
Thinking modetrue(維持)複雑な業務ロジックに有効
Fast modefalse(維持)6倍の料金($30/$150)は不要
Auto-compacttrue(維持)長いセッションでも効率的
3.3 モデル切り替えの判断基準
作業内容使うモデル
プロジェクト構造の把握・ファイル探索Sonnet 4.6
単純なリファクタリング・バグ修正Sonnet 4.6
複雑なバグ調査・根本原因分析Opus 4.7
設計判断が必要な新機能の検討Opus 4.7
大規模なセキュリティ監査Opus 4.7
単純なファイル操作・テキスト整形Haiku 4.5
3.4 切り替えコマンド
/model             # モデル一覧を表示して選択
/model sonnet # Sonnet に変更
/model opus # Opus に変更
/cost # 現セッションのコスト確認
/clear # セッションをクリア(キャッシュも消去)

4. /cost の読み方

4.1 実測データ(セキュリティ監査セッション)
モデルinputoutputcache readcache writeコスト
Haiku 4.559610.2k1.3m93.8k$0.30
Opus 4.76191.5k130.9k69.1k$0.54
Sonnet 4.61.2k47.0k11.0m169.4k$4.65
合計$5.49

cache read が大きいほど効率的(再利用できている)です。この実測ではセキュリティ監査(Critical 1〜4対応)を約1時間半で完了しており、外注した場合の数十万円相当の作業を$5.49で実施しました。

5. /clear の使い方

  • 1つの作業が終わったら即 /clear → 次の作業に前のコンテキストを引きずらない
  • 大きな作業の途中でも、フェーズが変わったら /clear
  • /clear 後は「先ほどA機能を実装した、次はB機能に適用する」と1〜2行で再投入
  • 同じ機能の修正は同じセッションで続ける(キャッシュを活用)

6. 効率的な指示の書き方

6.1 NG例とOK例
NG例(曖昧)OK例(具体的)
「印刷が崩れるので直して」「resources/views/reports/sales-list.blade.php と public/css/print-common.css のみを対象に、A3横で出力できるよう修正。他のファイルは触らないこと」
「長いコードを貼り付けて修正依頼」「app/Http/Controllers/SalesController.php の calculateTotal メソッド(150行目前後)を修正して」(ファイルパスのみ指定)
「この機能を追加して」「作業1: ○○クラスを作成。作業2: △△への組み込み。完了後に修正ファイル一覧とテストケースを報告」
6.2 CLAUDE.md によるコンテキスト削減

CLAUDE.md にプロジェクト全体図を記述しておくと、Claude Code がファイルを探索する回数が減り、トークン消費が削減されます。

  • プロジェクト概要と主な機能の説明
  • 主要ディレクトリとその役割の対応表
  • 実装方針のルール(「新規帳票は layouts/print.blade.php を継承」等)
  • 共通コンポーネントとその場所
  • 禁止事項(「vendorフォルダは編集しない」等)

Claude API 利用コスト最適化

1. 現状分析

1.1 現在のAI利用の構造

iso_app における AI 利用は「パターンA: 都度プロンプトに全データを含める + CSV形式」で実装されています。このパターンは、設計を改善することで大幅なコスト削減が可能です。

利用機能対象ファイル送信データの特徴
環境側面の推論AiEnvAspectService.php工事概要・発注者要求・近隣要求・重機/化学物質詳細
推薦機能AiRecommendationService.php工事概要(発注者・予算・特殊仕様を含む可能性)
監査チェックリストAuditAiService.php被監査対象名・部署名・業務概要
安全パトロールSafetyPatrolController.php作業内容・使用機械・特殊作業の詳細
法規制選定CSV形式で送信固定語彙チェックボックス選択(現状は安全)
1.2 現在の設計の評価

法規制選定機能は「チェックボックス選択による固定語彙のみを送信」という設計になっており、情報セキュリティの観点で理想的なアプローチです。この設計の優れている点:
• 入力の語彙が固定されているため機密情報が混入する余地がない
• ユーザー教育不要(自由記述と違い、うっかり機密を書くリスクがない)
• AI への送信内容が予測可能で監査しやすい
• コストも予測可能(トークン数が安定)

3. コスト削減施策(効果の大きい順)

3.1 施策1: プロンプトキャッシュ(最大90%削減)

法規制CSVデータのように「毎回同じデータを送る」部分をキャッシュ対象にします。

// system プロンプトにキャッシュ設定を追加するだけ

'system' => [

  [

    'type' => 'text',

    'text' => '法規制データ: ' . $csvData,

    'cache_control' => ['type' => 'ephemeral']  // ★この1行で90%削減

  ]

],

重要な設計原則: 変わらない部分(法規制データ)はsystemに、毎回変わる部分(ユーザー条件)はmessagesに分離します。

3.2 施策2: モデルの使い分け
機能現状推奨コスト削減率
法規制選定不明Haiku 4.5最大80%削減
環境側面推論不明Sonnet 4.6Opus比40%削減
監査チェックリスト生成不明Sonnet 4.6Opus比40%削減
複雑な文書分析不明Opus 4.7品質維持が必要
3.3 施策3: 入力データの圧縮

CSVをそのまま投げる前に、不要な列・空白・長文フィールドを削除します。

// 必要な列だけ抽出(50〜70%削減可能)
$essentialColumns = ['id', '法令名', '分類', '概要', '対象業種'];

// 長い概要は切り詰める
'summary' => mb_strimwidth($row['概要'], 0, 100, '...'),

// 繰り返し値はコードマスタ化
// 「労働」→「1」にすると500行で1000トークン削減
3.4 施策4: レスポンスのLaravelキャッシュ

同じ条件の問い合わせ結果を Laravel のキャッシュに保存します。テスト段階で同じ条件を繰り返す際に特に効果的です。

$cacheKey = 'law_selection:' . md5($userCondition . $dataVersion);
return Cache::remember($cacheKey, now()->addDays(7), function() {
  return $this->claudeClient->selectLaws($condition);
});
3.5 施策5: 出力形式の最適化

AIに詳しい説明をさせるのではなく、IDだけを返させて詳細はDBから取得します。

出力指示トークン消費改善率
「該当する法規制を詳しく説明してください」200〜500トークン/件基準
「該当するIDのみカンマ区切りで返してください」10〜30トークン/件90〜95%削減

2. 料金体系(2026年5月時点)

モデル入力(1Mトークン)出力(1Mトークン)用途
Claude Haiku 4.5$1.00$5.00分類・ルーティング・抽出
Claude Sonnet 4.6$3.00$15.00一般的な推論・選定タスク
Claude Opus 4.7$5.00$25.00高度な推論が必要な場合のみ
2.1 プロンプトキャッシュ料金
種別料金説明
通常入力100%(基準)キャッシュなしの通常料金
キャッシュ書き込み(5分)125%(1.25倍)初回キャッシュ作成時
キャッシュ書き込み(1時間)200%(2倍)1時間保持する場合
キャッシュ読み込み(ヒット)10%(0.1倍)2回目以降 = 90%オフ
2.2 Batch API(バッチ処理)

Message Batches API を使うと、入力・出力の両方で 50% オフになります。24時間以内に結果が返ります。品質差はありません。リアルタイム応答が不要な処理に活用できます。

  • プロンプトキャッシュと組み合わせると最大95%削減可能
  • 大量データの一括処理・夜間バッチに適している

4. 優先実施スケジュール

施策難易度効果実施タイミング
プロンプトキャッシュ実装簡単(数行追加)最大90%削減今すぐ
Laravelキャッシュ追加簡単繰り返しコスト0今すぐ
モデル切り替え(Haiku/Sonnet)簡単コスト1/3〜1/5今週中
CSV軽量化(不要列削除)簡単30〜50%削減今週中
出力形式の最適化中程度出力コスト90%削減来週
2段階構成(Haiku→Sonnet)中程度品質維持しつつコスト削減来月

5. AI利用ログの実装

コスト管理のために、全AI呼び出しをDBに記録する仕組みを実装することを推奨します。

Schema::create('ai_usage_logs', function (Blueprint $table) {
  $table->id();
  $table->foreignId('user_id');
  $table->foreignId('company_id');
  $table->string('feature');          // 機能名
  $table->string('model');             // 使用モデル
  $table->integer('input_tokens');
  $table->integer('output_tokens');
  $table->integer('cache_read_tokens')->default(0);
  $table->decimal('cost_usd', 10, 6);
  $table->integer('duration_ms');
  $table->timestamps();
});

これにより「どの機能がいくら使っているか」「キャッシュが効いているか」が後から検証できます。会社ごとのコスト分析や、商用化に向けた価格設計にも活用できます。

6. 将来計画: 組織内AI(自前サーバー)

契約事項・技術的背景・経営内容の文書化を扱う際の、情報漏洩リスクゼロのアーキテクチャです。

段階内容期間
Step 1: ルールベース匿名化氏名・会社名・金額を自動マスキング。既存Laravelサーバーで動作可能2〜4週間
Step 2: ローカルLLM検証Ollama + Llama 3.2 などで自前AIの感触をつかむ(無料)別途検討
Step 3: 統合パイプライン匿名化→外部AI→固有名詞復元の完全な流れを構築3〜6ヶ月

ブックマークする パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です