Skip to content

原文(日本語に翻訳)

CLAUDE_CODE_EXTRA_BODYoutput_config.effort が、effortをサポートしていないモデルへのサブエージェント呼び出しやVertex AIで400エラーを引き起こす問題を修正しました。

原文(英語)

Fixed CLAUDE_CODE_EXTRA_BODY output_config.effort causing 400 errors on subagent calls to models that don't support effort and on Vertex AI

概要

CLAUDE_CODE_EXTRA_BODY 環境変数に output_config.effort を設定した場合、その設定がeffortパラメーターをサポートしていないモデルへのサブエージェント呼び出しや、Vertex AI経由の呼び出しにも引き継がれてしまい、400エラー(Bad Request)が発生する問題がありました。今回の修正により、effortパラメーターは対応していないモデルやプラットフォームへの呼び出し時には自動的に除外されます。

基本的な使い方

bash
# CLAUDE_CODE_EXTRA_BODY の設定例
export CLAUDE_CODE_EXTRA_BODY='{"output_config": {"effort": "high"}}'

# 修正前: サブエージェントがeffort非対応モデルを使用する場合に400エラー
# 修正後: 対応していない場合は自動的にeffortパラメーターを除外

実践例

CLAUDE_CODE_EXTRA_BODY の設定

bash
# ~/.zshrc や ~/.bashrc に設定する例
export CLAUDE_CODE_EXTRA_BODY='{"output_config": {"effort": "max"}}'

# または環境変数として一時的に設定
CLAUDE_CODE_EXTRA_BODY='{"output_config": {"effort": "high"}}' claude

# 修正後: この設定でサブエージェントを使っても400エラーが出なくなる

Vertex AI 経由での利用

bash
# Vertex AI を使用する環境変数の設定
export ANTHROPIC_VERTEX_PROJECT_ID="your-project-id"
export CLOUD_ML_REGION="us-east5"

# EXTRA_BODY に effort を設定してもVertex AI経由では正しくスキップされる
export CLAUDE_CODE_EXTRA_BODY='{"output_config": {"effort": "high"}}'

# 修正前: Vertex AIはeffortパラメーターをサポートしていないため400エラー
# 修正後: effortパラメーターが自動的に除外されて正常に動作

サブエージェントでの動作

# メインエージェント: Claude Opus 4(effortをサポート)
# サブエージェント: Claude Haiku(effortをサポートしない場合)

# CLAUDE_CODE_EXTRA_BODY で effort を設定した場合:
# 修正前:
# - メインエージェント: effort=max で動作 ✓
# - サブエージェント: effort パラメーターによって400エラー ✗

# 修正後:
# - メインエージェント: effort=max で動作 ✓
# - サブエージェント: effortが自動除外されて正常動作 ✓

エラーログの確認

bash
# 修正前に見られたエラーログ
ERROR: API Error 400 Bad Request
{
  "error": {
    "type": "invalid_request_error",
    "message": "output_config.effort is not supported for this model"
  }
}

# 修正後: このエラーは発生しなくなる
# サポートされていないパラメーターは自動的に除外される

設定例と影響するプラットフォーム

bash
# effortパラメーターをサポートするプラットフォーム:
# - Anthropic API (claude.ai)
# - 対応しているモデル (Claude Opus 4 など)

# effortパラメーターが自動除外されるケース:
# - Vertex AI 経由の呼び出し
# - AWS Bedrock 経由の呼び出し(モデルによる)
# - effortをサポートしていないモデルへの呼び出し

# 設定例
export CLAUDE_CODE_EXTRA_BODY='{
  "output_config": {
    "effort": "high"
  },
  "other_config": "value"
}'
# → effortのみが非対応環境で除外され、他の設定は引き継がれる

注意点

  • この修正は CLAUDE_CODE_EXTRA_BODY を使用しているユーザーにのみ影響します
  • effortパラメーターは自動除外されるため、非対応モデルでは「中程度のエフォート」(デフォルト)で実行されます
  • Vertex AIでの effort サポートは将来的に追加される可能性があります
  • CLAUDE_CODE_EXTRA_BODY に設定した他のパラメーターは引き続き全ての呼び出しに適用されます
  • エラーが発生した場合は、Claude Codeのバージョンが v2.1.113 以上であることを確認してください

関連情報