Skip to content

原文(日本語に翻訳)

Bedrock Application Inference Profile ARNを経由してOpus 4.7を使用する際の「thinking.type.enabled is not supported」400エラーを修正しました。

原文(英語)

Fixed thinking.type.enabled is not supported 400 error when using Opus 4.7 via a Bedrock Application Inference Profile ARN

概要

AWS Bedrock の Application Inference Profile(カスタムARN)経由で Claude Opus 4.7 を使用する際に、拡張思考(Extended Thinking)機能の thinking.type.enabled パラメーターに関連する 400 エラー(「thinking.type.enabled is not supported」)が発生する問題がありました。今回の修正により、Bedrock Application Inference Profile ARN を使用する場合でも、拡張思考機能が正しく動作するようになります。

基本的な使い方

bash
# AWS Bedrock 経由でのClaude Code設定
export ANTHROPIC_MODEL="arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/claude-opus-4-7"
export AWS_REGION="us-east-1"

# 修正前: /effort max や拡張思考を使うと400エラー
# 修正後: 正常に動作
claude

実践例

Bedrock Application Inference Profile の設定

bash
# AWS Bedrock Application Inference Profile の設定例

# 1. AWS認証情報の設定
export AWS_ACCESS_KEY_ID="your-access-key"
export AWS_SECRET_ACCESS_KEY="your-secret-key"
export AWS_REGION="us-east-1"

# 2. カスタムARNの設定
export ANTHROPIC_MODEL="arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/my-opus-profile"

# 3. Bedrock使用フラグ
export CLAUDE_CODE_USE_BEDROCK=1

# 4. Claude Codeを起動
claude

# 修正後: 拡張思考機能が正常に使用できる
/effort max

拡張思考(Extended Thinking)の使用

python
# AWS Bedrock 経由での拡張思考使用例
import boto3
import json

bedrock = boto3.client('bedrock-runtime', region_name='us-east-1')

# Application Inference Profile ARN を使用
model_id = "arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/claude-opus-4-7"

# 修正後: 拡張思考パラメーターが正しく処理される
response = bedrock.invoke_model(
    modelId=model_id,
    body=json.dumps({
        "anthropic_version": "bedrock-2023-05-31",
        "max_tokens": 16000,
        "thinking": {
            "type": "enabled",
            "budget_tokens": 10000
        },
        "messages": [{
            "role": "user",
            "content": "複雑な数学問題を解いてください..."
        }]
    })
)

エラーが発生していた状況

python
# 修正前のエラー再現シナリオ

# Application Inference Profile ARN を使用
model_id = "arn:aws:bedrock:us-east-1:ACCOUNT:application-inference-profile/claude-opus-4-7"

# 拡張思考を有効にしたリクエスト
body = {
    "thinking": {
        "type": "enabled",    # ← これが400エラーを引き起こしていた
        "budget_tokens": 5000
    },
    ...
}

# エラーメッセージ:
# {
#   "message": "thinking.type.enabled is not supported",
#   "type": "ValidationException"
# }
# HTTP Status: 400

# 修正後:
# ARNをパースして正しいモデルを特定し、
# 拡張思考パラメーターを適切に設定してリクエスト

Claude Code での設定例

bash
# ~/.claude/settings.json での Bedrock設定

# または環境変数での設定
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION="us-east-1"

# Application Inference Profile ARN を使用
export ANTHROPIC_MODEL="arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/claude-opus-4-7-profile"

# /effort max などの拡張思考が必要な操作が修正後に動作する
claude

Bedrock でサポートされているモデルの確認

bash
# AWS CLI でサポートされているモデルを確認
aws bedrock list-foundation-models \
  --region us-east-1 \
  --query "modelSummaries[?contains(modelId,'claude')].[modelId,modelName]" \
  --output table

# Application Inference Profile の確認
aws bedrock list-inference-profiles \
  --region us-east-1 \
  --type-equals APPLICATION

注意点

  • この修正は AWS Bedrock の Application Inference Profile ARN を使用する場合のみ影響します
  • 標準のモデルID(anthropic.claude-opus-4-5:...等)での使用は影響しません
  • 拡張思考(Extended Thinking)は Claude Opus 4 以上のモデルで利用可能です
  • Application Inference Profile は、カスタム設定(スループット、コスト配分など)を持つモデルインスタンスです
  • AWS Bedrockでの拡張思考の使用には追加のコストが発生する場合があります

関連情報