0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

業務でClaude Codeを使うときのContext Compaction対策まとめ

0
Last updated at Posted at 2026-05-26

はじめに

Claude Codeを業務で使っていると、PRJの仕様書や設計資料を読み込ませた途端にContext Compaction(コンテキスト圧縮)が発生する、という経験をしたことはないでしょうか。

Compactionは会話が長くなったときに自動的に発生し、それまでの会話が要約されます。細かい仕様の数値や固有名詞が抜け落ちることがあり、「大事な情報が消えてしまった」という感覚に陥りがちです。

この記事では、実際の業務シーンを想定したContext Compaction対策と、サブエージェントを活用した効率的なワークフローを紹介します。


Context Compactionとは

Claude Codeは会話履歴をコンテキストウィンドウに保持しています。これが上限に近づくと、それまでの会話を自動的に要約(Compaction)して空き容量を確保します。

コンテキストウィンドウ
┌───────────────────────────────────┐
│ 会話履歴・読み込んだ資料・コード... │  ← 上限に近づくと
└───────────────────────────────────┘
          ↓ Compaction
┌───────────────────────────────────┐
│ (要約)                           │  ← 圧縮される
└───────────────────────────────────┘

Compaction後もタスクは継続されますが、要約の過程で細部の情報が失われる可能性があります。


対策1:CLAUDE.md に重要情報を書く

最も根本的な解決策です。

毎回資料を貼り付けるのではなく、プロジェクトの重要情報を CLAUDE.md に事前に記述しておきます。Claude Codeはセッション開始時に自動で読み込むため、コンテキストを消費せずに参照できます。

# CLAUDE.md

## アーキテクチャ概要
- フロントエンド: React + TypeScript
- バックエンド: Node.js + Express
- DB: PostgreSQL

## 参照資料
- 要件定義: docs/requirements.md
- API仕様: docs/api-spec.md
- DB設計: docs/db-schema.md

## 重要な制約
- 認証にはJWT(有効期限24時間)を使用
- 外部APIのレート制限: 100req/min

対策2:資料はファイルとして置いて都度参照させる

「資料をコンテキストに載せる」から「資料はファイルに置いて必要なとき読みに行く」へ発想を転換します。

❌ 今まで: 資料全文を貼り付ける → コンテキスト圧迫
✅ 推奨:  資料をファイルに保存 → Claude が必要なときに読む

Claude Codeはファイルシステムに直接アクセスできるため、「この仕様書の○○の部分を確認して」と言えば都度読みに行きます。Compactionが起きてもファイルは消えないので、情報の永続性が保たれます。

docs/
  requirements.md     # 要件定義
  architecture.md     # アーキテクチャ
  api-spec.md         # API仕様
  db-schema.md        # DB設計

CLAUDE.md にはインデックスだけ書いておくと、Claudeが何がどこにあるかを常に把握できます。


対策3:図・画像はテキスト化して保存する

ExcelやPDFの図・画像はテキストの数倍〜数十倍のトークンを消費します。

解決策:一度だけ読ませてMarkdown化する

1回目: 図をClaudeに読ませる → 説明をMarkdownで保存
2回目以降: そのMarkdownを参照(画像トークン不要)

Claudeへの指示例:

この図の内容を、後で自分が参照できるように
Markdownのテキストとして docs/figures/arch-diagram.md に保存して

PDFのテキスト抽出

どうしてもPDFから情報を取り出したい場合は、図を除いたテキストだけを抽出するツールが有効です。

# pdftotext を使う場合
pdftotext input.pdf output.txt

# pdfminer を使う場合(Pythonが必要)
pip install pdfminer.six
pdf2txt.py input.pdf > output.txt

運用フロー

【初回セットアップ(1回だけ)】
資料の図 → Claudeが読む → docs/summaries/ にMarkdown保存

【日常作業】
Claudeは docs/summaries/ のテキストを参照
→ 画像トークン消費ゼロ

対策4:調査タスクはサブエージェントに委譲する

Claude Codeはサブエージェントに調査タスクを委譲できます。サブエージェントは独立したコンテキストウィンドウで動作するため、メインの会話とは別枠でトークンを消費します。

メインセッション(あなたとの会話)
  └── サブエージェント(別コンテキストで起動)
        ├── 独自のコンテキストウィンドウを持つ
        ├── 大量のファイルを読んでも
        └── メインには結果だけが返ってくる

メインコンテキストへの影響は「返答テキスト」のみです。サブエージェントが内部で100ページの資料を読んでも、メインには要約だけが戻ります。

指示例:

Explore エージェントを使って docs/ 以下の仕様書を調べて、
○○機能の要件をまとめて

発展:サブエージェントで資料調査 → メインでテストシナリオ作成

サブエージェントを複数並列で走らせ、それぞれに異なる資料を読ませてから、メインで統合するというワークフローが組めます。

結合試験シナリオ作成の例:

以下を並列で調査して結果をまとめて:

Agent 1: docs/requirements.pdf を読み、機能一覧と業務フローを抽出
Agent 2: docs/api-spec.xlsx を読み、APIの入出力・エラーケースを抽出
Agent 3: docs/db-schema.pdf を読み、テーブル間の依存関係を抽出

その結果をもとに結合試験シナリオを作成して

フローイメージ

サブエージェント群(並列実行)
  ├── Agent A: 要件定義書 → 機能一覧・制約
  ├── Agent B: API仕様書  → エンドポイント・データ構造
  └── Agent C: DB設計書   → テーブル・リレーション

メインセッション
  └── 3つの結果を統合 → 結合試験シナリオ生成

品質を上げるコツ

サブエージェントへの指示は具体的にするほど精度が上がります。

❌ 「仕様書を読んで」
✅ 「試験シナリオ作成に必要な、機能間の依存関係と異常系の条件を抽出して」

また、統合前に一度確認を挟むと抜け漏れを防げます。

Step 1: 各エージェントの抽出結果をメインで確認
Step 2: 抜け漏れがあれば追加で調査指示
Step 3: 揃ってからシナリオ生成

まとめ

対策 効果 難易度
CLAUDE.md に重要情報を書く ★★★
資料をファイルとして置く ★★★
図・画像をテキスト化 ★★★
サブエージェントに委譲 ★★★

Context Compactionは完全には防げませんが、「コンテキストに乗せるもの」を最小化し、「ファイルに永続化するもの」を最大化する設計にすることで、大幅に影響を抑えられます。

特にサブエージェントの活用は、単なるCompaction対策にとどまらず、大規模資料の並列処理や複雑な成果物の生成など、業務効率を劇的に向上させるポテンシャルを持っています。


補足:サブエージェントの注意点

  • サブエージェントはメインの会話履歴を知らない状態で起動する
  • そのためプロンプトに必要な背景情報を明示する必要がある
  • サブエージェント自身にもコンテキスト上限はあるので、極端に大きい資料は処理できない場合がある
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?