Skip to content

原文(日本語に翻訳)

会話コンパクション中に CLAUDE_CODE_MAX_OUTPUT_TOKENS が無視されていた問題を修正しました

原文(英語)

Fixed CLAUDE_CODE_MAX_OUTPUT_TOKENS being ignored during conversation compaction

概要

CLAUDE_CODE_MAX_OUTPUT_TOKENS 環境変数は Claude Code が1回のターンで生成できる最大トークン数を制限するための設定です。しかし、会話が長くなった際に実行される「コンパクション(会話の圧縮・要約)」処理中はこの設定が無視され、設定した上限を超えたトークン数で応答が生成されることがありました。修正後はコンパクション処理でも CLAUDE_CODE_MAX_OUTPUT_TOKENS の設定が尊重されます。

基本的な使い方

bash
# 最大出力トークン数を設定
export CLAUDE_CODE_MAX_OUTPUT_TOKENS=4096
claude

# 修正後: コンパクション処理でも設定が尊重される

実践例

環境変数の設定方法

bash
# .bashrc / .zshrc に追記
export CLAUDE_CODE_MAX_OUTPUT_TOKENS=4096

# 一時的に設定してClaudeを起動
CLAUDE_CODE_MAX_OUTPUT_TOKENS=2048 claude

# シェル設定を再読み込み
source ~/.zshrc
claude

コスト制御のユースケース

bash
# API コストを制御するために最大トークン数を制限
export CLAUDE_CODE_MAX_OUTPUT_TOKENS=8192

# 長いセッションでのコンパクション時も制限が適用される
claude
# → 長い会話が蓄積
# → 自動コンパクションが実行
# → コンパクション出力も 8192 トークン以内に制限される(修正後)

Claude Code の設定ファイルでの指定

json
// ~/.claude/settings.json
{
  "env": {
    "CLAUDE_CODE_MAX_OUTPUT_TOKENS": "4096"
  }
}
bash
# または settings.json の maxOutputTokens で設定
{
  "maxOutputTokens": 4096
}

注意点

  • CLAUDE_CODE_MAX_OUTPUT_TOKENS を設定しない場合、モデルのデフォルト上限が使用されます
  • コンパクション処理は会話が長くなりコンテキストウィンドウの上限に近づいた際に自動実行されます
  • 過度に低い値を設定すると、コンパクション品質が低下する場合があります
  • この設定は通常の応答とコンパクション処理の両方に一貫して適用されるようになりました

関連情報