04 Claude Code統合 — fast-jev-compactionの導入と公式compaction機能
Claude CodeにJevを組み込む公開実装「fast-jev-compaction」の導入手順と、 2026-09に公式ドキュメント化されたAPIレベルのcompaction機能との対比を扱います。
fast-jev-compaction とは
tamaratran/fast-jev-compaction(MIT)は、Claude Codeの標準圧縮(要約方式)を、Jevによる削除方式に置き換えるプラグインです。要約せず捨てるので、要約による情報の欠落が起きません(仕組みは5層ハーネス理論の第2層)。
導入手順
方法1: npmライブラリとして
npm install fast-jev-compaction
export TYPESAFE_API_KEY=...
方法2: Claude Codeプラグインとして
~/.claude/settings.jsonにCLAUDE_CODE_ENABLE_FUNCTION_HOOKS: "1"とAPIキーを設定claude plugin marketplace add tamaratran/fast-jev-compactionclaude plugin install fast-jev-compaction@fast-jev-compaction
⚠ 前提条件 機能フックはClaude Codeの早期アクセス機能で、Claude Code 2.1.274 以上が必要です(README記載)。
仕組み(READMEベース)
- 要約は行わず削除のみ。
tool_useとtool_resultをtool_use_idで対応付けて評価 - 会話全体(ツール結果は短い注記に置換)をJevへの状態として送り、トークン上限に段階的に圧縮
- 呼び出しごとに2つの質問(呼び出しを残すか/結果を原文のまま残すか)をバッチ分割して並行実行
- 判定は3択: 両方保持 / 呼び出しのみ保持+結果を先頭300文字に短縮 / 両方削除
- ユーザー・アシスタントのテキストは常に原文のまま順序も維持
設定項目(デフォルト値)
| 設定 | デフォルト | 意味 |
|---|---|---|
keepThreshold |
0.5 | この確率以上なら保持と判定 |
preserveRecentMessages |
6 | 直近メッセージは無条件保持 |
truncateHeadChars |
300 | 短縮時の先頭残し文字数 |
maxStateTokens |
25,000 | Jevへ渡す状態の上限(文字数ベース推定) |
maxRequestTokens |
30,000 | 1リクエストの上限 |
goal |
直近3件のユーザープロンプト | 圧縮の判断基準となる目標 |
Limitations(README公式)
- 削除候補はツール呼び出しと結果のみ。テキストメッセージは状態内でしか短縮されない
- トークン数は文字数ベースの推定で、トークナイザー不使用
- 確率はリクエスト単位の較正值であり、削除の保証ではない
- 状態上限に近い履歴では、少数の質問ごとに1リクエストが発生(全状態を毎回再送)
⚠ READMEは実運用を推奨していない場面もある コミュニティの移植版には「実運用には推奨しない・実証実験として扱ってほしい」という注意書きが付いているものがあります。削除した情報が後から必要になる可能性は残ります(ただし「アシスタントは常にツールを再実行できる」ことが設計上の安全網です)。
Anthropic公式のcompaction機能との対比(2026-09)
2026-09-22時点で、Anthropic公式ドキュメントにAPIレベルのcompaction機能が一式揃いました。これはJevを使わない、モデル自身による要約方式です:
| fast-jev-compaction(Jev方式) | Anthropic公式compaction(API機能) | |
|---|---|---|
| 方式 | Jevが各ツール結果を「残す/短縮/捨てる」判定 | モデルが要約したcompactionブロックで履歴を置換 |
| 情報欠落 | 残すものは原文のまま(欠落なし) | 要約なので落とす(閾値・保持ターン数で調整) |
| 速度・コスト | 判定は0.1秒台・判定コストほぼゼロ(主張) | 通常のモデル呼び出しと同程度 |
| 種類 | 1種(プラグイン) | 自動(threshold)・オンデマンド・バックグラウンド・keep-recent-turns・thinking-blocks保持の5種 |
| 成熟度 | 発表直後・独立検証なし | 公式機能・ドキュメント完備 |
どちらを選ぶか
- 要約で情報が落ちて同じ失敗を繰り返した経験がある → Jev方式(削除方式)が候補
- 公式サポートと安定性を優先 → 公式compaction機能(threshold等の調整可能)
- まだどちらも試さない → まず効果測定の章の通り、現状のコンテキスト内訳を測定するのが最初の一手です