TL;DR
Claude Code の Agent Teams 機能を AWS Bedrock 経由で使うと、サブエージェント起動時に Bedrock が認識できないモデル ID が渡されてしまうバグ?があります。
CLAUDE_CODE_TEAMMATE_COMMAND に --model 引数を書き換えるラッパースクリプトを指定することで回避できます。
自分の環境ではこれでAgent TeamsがBedrock経由のモデルで起動することになったので、参考程度に
問題の背景
環境
| settings.json 設定 | 値 |
|---|---|
CLAUDE_CODE_USE_BEDROCK |
1 |
ANTHROPIC_MODEL |
jp.anthropic.claude-sonnet-4-6 |
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS |
1 |
※WSL2+tmuxでの稼働を想定してます
この構成で Agent Teams を使うと、サブエージェント(Teammate)が起動したタイミングでエラーになります。
何が起きているか
Agent Teams がサブエージェントを起動するとき、内部で次のようなコマンドが実行されます。
claude --model sonnet ...
ANTHROPIC_MODEL に設定してある jp.anthropic.claude-sonnet-4-6(Bedrock 用のフル ID)ではなく、sonnet / haiku / opus のような短縮名が渡されます。Bedrock
はこの短縮名を認識できないため、サブエージェントの起動がエラーになります。
この問題は GitHub の Issue として報告されています。
解決策:ラッパースクリプトで --model 引数を書き換える
1. ラッパースクリプトを作成する
cat > ~/.local/bin/claude-bedrock-wrapper << 'EOF'
#!/bin/bash
# サブエージェントに渡されるモデル ID を Bedrock 用のフル ID に書き換える
# See: https://github.com/anthropics/claude-code/issues/25193
BEDROCK_MODEL="${CLAUDE_BEDROCK_MODEL_OVERRIDE:-jp.anthropic.claude-sonnet-4-6}"
REAL_BINARY="$(readlink -f "$HOME/.local/bin/claude")"
args=()
while [[ $# -gt 0 ]]; do
if [[ "$1" == "--model" ]]; then
args+=("--model" "$BEDROCK_MODEL")
shift 2 # 元のモデル値をスキップして置き換える
else
args+=("$1")
shift
fi
done
exec "$REAL_BINARY" "${args[@]}"
EOF
chmod +x ~/.local/bin/claude-bedrock-wrapper
スクリプトの処理内容:
- --model 引数を検知したら、値を BEDROCK_MODEL(Bedrock 用のフル ID)に差し替える
- それ以外の引数はそのまま claude 本体に渡す
2. settings.json に設定を追加する
~/.claude/settings.json に CLAUDE_CODE_TEAMMATE_COMMAND を追加します。
{
"env": {
"CLAUDE_CODE_USE_BEDROCK": "1",
"AWS_PROFILE": "bedrock",
"AWS_REGION": "ap-northeast-1",
"ANTHROPIC_MODEL": "jp.anthropic.claude-sonnet-4-6",
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1",
"CLAUDE_CODE_TEAMMATE_COMMAND": "/home/your-username/.local/bin/claude-bedrock-wrapper"
}
}
your-username は実際のユーザー名に変更してください。
CLAUDE_CODE_TEAMMATE_COMMAND は、Agent Teams がサブエージェントを起動するときに使うコマンドを上書きする設定です。デフォルトは claude ですが、ここにラッパースクリプトを指定することで --modelを書き換えられます。
まとめ
| 項目 | 内容 |
|---|---|
| 問題 | サブエージェントに渡す --model が sonnet などの短縮名になり Bedrock で認識されない |
| 原因 | Claude Code 内部でモデル ID が短縮名に変換される(Issue #25193) |
| 解決策 |
CLAUDE_CODE_TEAMMATE_COMMAND でラッパースクリプトを指定し --model を書き換える |
| 設定場所 | ~/.claude/settings.json |