
Claude Code v2.1.316 の主要アップデート - サブエージェントの effort 指定と Opus 4.8 fast mode の非推奨
クラウド事業統括本部の石川です。Claude Code の v2.1.316(2026-10-31 公開)がリリースされました。npm には前日に v2.1.315(2026-10-30 公開)も公開されていますが、CHANGELOG には v2.1.315 の記載がないため、本記事では v2.1.316 の変更を紹介します。本日は、CLAUDE_CODE_SUBAGENT_EFFORT を試してみました。
前回のアップデート記事はこちらです。
アップデートサマリー
v2.1.316 では 55 件の変更が入りました。CHANGELOG の記載では、修正(Fixed)が 34 件、追加(Added)が 10 件、改善(Improved)が 5 件、変更(Changed)が 5 件、非推奨(Deprecated)が 1 件です。本記事では、このうち権限・制限・ポリシーの適用に関わる 6 件をセキュリティとしてまとめ、非推奨 1 件と挙動が変わる 1 件を破壊的変更・非推奨として扱います。Claude apps gateway(6 件)、VS Code 拡張(5 件)、クラウドセッション(5 件)、Slack 向けの Claude Tag(4 件)を対象とした変更も含まれます。
また、Caludeの公式Xでにて、Claudeの有料プランの名称変更のアナウンスがありました。「Max 5x」は「Max」に、「Max 20x」は「Ultra」になります。料金はMaxが月100ドル、Ultraが月200ドルのままで、既存の契約者は何もする必要がありません。あわせて、本人確認済みのUltraアカウントでは「5時間ごとの利用上限」がなくなります。今日から既存契約者の大半に適用されます。新しいアカウントは不正利用を防ぐため、確認が終わるまで一時的に上限が残り、解除されるとメールで知らせが届きます。週ごとの上限は変わりません。
注目のアップデート
サブエージェントの effort を指定する CLAUDE_CODE_SUBAGENT_EFFORT の追加
環境変数 CLAUDE_CODE_SUBAGENT_EFFORT が追加されました。ほかに effort の指定がない場合に、サブエージェントはセッションの effort を継承する代わりに、この変数で指定した effort レベルで動作します。
調査やレビューをサブエージェントに任せることが多い方は、メインのセッションは高い effort のまま、サブエージェントだけ effort を下げる使い方を検討する価値があると感じます。
ultrathink キーワードを無効にする CLAUDE_CODE_DISABLE_ULTRATHINK の追加
環境変数 CLAUDE_CODE_DISABLE_ULTRATHINK が追加されました。ultrathink キーワードを無効にします。
公式ドキュメントでは、ultrathink はプロンプトに含めると、セッションの effort 設定を変えずにそのターンでより深い推論を求めるキーワードと説明されています。ターミナルのプロンプトに入力した場合は、そのターンを xhigh effort に上げることもあります。また v2.1.316 では、VS Code 拡張でも ultrathink を含むターンが xhigh effort で実行されるよう変更されました。
effort を設定で決めた値のまま運用したい方は、ultrathink を含むプロンプトでターンの effort が上がるのを止める目的で、この環境変数を使えるのではと考えます。
Opus 4.8 の fast mode の非推奨
Opus 4.8 の fast mode が 2026 年 10 月 30 日付で非推奨になり、2026 年 11 月 30 日に削除されます。削除後は Opus 4.8 への fast mode のリクエストがエラーになり、通常の Opus 4.8 へのフォールバックは行われません。CHANGELOG では、高速化を続けるには Opus 5.5 へ移行するよう案内されています。削除前後の挙動は、後述の「破壊的変更・非推奨」で整理します。
Opus 4.8 で fast mode を使っている方は、11 月 30 日の削除後はリクエストがエラーになるため、それまでに Opus 5.5 への切り替えを済ませておくのが安全だと考えています。
Claude apps gateway の Bedrock アップストリームに guardrail.input_tagging を追加
Claude apps gateway の Amazon Bedrock アップストリームに guardrail.input_tagging が追加されました。Amazon Bedrock Guardrails のプロンプト攻撃フィルターが必要とする入力タグでプロンプトを囲みます。all_messages_and_system を指定すると、システムプロンプトもタグ付けされます。
なお、Amazon Bedrock のドキュメントでは、InvokeModel・InvokeModelWithResponseStream でガードレールを使う場合、入力タグがないとプロンプト攻撃はフィルタリングされないと説明されています。
Claude apps gateway 経由で Amazon Bedrock を使い、ガードレールのプロンプト攻撃フィルターを有効にしている組織は、この設定を確認しておく価値があると感じます。
--restricted と Claude apps gateway のモデル制限の適用漏れの修正
次の 2 件が修正されました。
- Read の allow ルールが対象にしている場合に、
--restrictedセッションが作業ディレクトリ外のファイルをアップロードする問題 - Claude apps gateway が、リクエストで指定されたすべてのモデルを
availableModels・deniedModels・modelsと照合していなかった問題(修正後、ブロック対象のモデルを指定したリクエストには、該当するフィールド名を示す 400 エラーが返ります)
--restricted で読み取り範囲を絞っている方や、gateway のモデル制限で利用モデルを管理している組織にとっては、これまで制限が適用されていなかった経路でも適用されるようになる修正のため、早めのアップデートが望ましいと感じます。
Vertex AI・Amazon Bedrock でモデルエイリアスが旧モデルに切り替わらない問題の修正
Vertex AI と Amazon Bedrock で、最新モデルがアカウントやリージョンでまだ利用できない場合に、sonnet・opus・haiku が旧モデルへ切り替わらず、セッションの途中でエラーを表示する問題が修正されました。
Bedrock や Vertex AI でモデルをエイリアスで指定していて、新しいモデルがアカウントやリージョンで使えるようになる前にセッション途中のエラーに遭遇していた方には、恩恵がある修正だと感じます。
Claude Code の終了後にシェルコマンドが残る問題の修正
Claude Code が自ら終了したとき(認証情報が拒否された場合や、クラウドセッションがアーカイブされた場合など)に、macOS と Linux でシェルコマンドが実行されたまま残る問題が修正されました。
認証の拒否やクラウドセッションのアーカイブで Claude Code が自ら終了した後も、実行中のシェルコマンドが残らなくなるため、時間のかかるコマンドを任せることが多い方には安心できる修正だと感じます。
アップデート内容
新機能
- 環境変数
CLAUDE_CODE_SUBAGENT_EFFORTを追加: ほかに effort の指定がない場合に、サブエージェントはセッションの effort を継承する代わりに、この変数で指定した effort レベルで動作します。 - 環境変数
CLAUDE_CODE_DISABLE_ULTRATHINKを追加:ultrathinkキーワードを無効にします。 - 環境変数
CLAUDE_CODE_DISABLE_LOOPED_CROSS_CERT_DROPを追加: 互いをループ状に認証し合うシステムのクロス証明書を保持します。プライベート CA がそうした証明書を必要とするサーバー向けです。 - Claude apps gateway にグループ共有の予算(pooled group budgets)を追加: 各メンバー個人の上限に加えて、グループのメンバーが共有する月次予算を 1 つ設定できます。設定は spend limits admin API の
pooled_budgetで行います。 - Claude apps gateway に
managed.policy_mode: layeredを追加: 開発者に一致するすべてのポリシーが適用され、各ポリシーは一覧でその下にあるポリシーの上にマージされます。最初に一致した 1 件だけが適用されるわけではありません。 - Claude apps gateway の Amazon Bedrock アップストリームに
guardrail.input_taggingを追加: Amazon Bedrock ガードレールのプロンプト攻撃フィルターが必要とする入力タグでプロンプトを囲みます。all_messages_and_systemはシステムプロンプトもタグ付けします。 - [VS Code] チャットパネルから Claude apps gateway へのサインインを追加: ターミナルを使わずにサインインできます。
- [Cloud sessions] フォームカードを追加: MCP サーバーが求めるフォームに入力するか辞退するかを選べ、リクエストがユーザーに表示されないままキャンセルされることがなくなります。
- [Cloud sessions] 「Catching up…」の行を追加: 切り替えて戻ったクラウドセッションや Remote Control セッションがメッセージを最新の状態に更新している間に表示されます。
- [Code Review] 分析ページに重大度別の findings カードを追加: 期間中の findings の合計、重大度で積み上げた日次グラフ、重大度ごとの件数を表示します。
セキュリティ
--restrictedセッションが作業ディレクトリ外のファイルをアップロードする問題を修正: Read の allow ルールが対象にしている場合に発生していました。- Claude apps gateway がリクエスト内のすべてのモデルを照合していなかった問題を修正:
availableModels・deniedModels・modelsとの照合が対象です。ブロック対象のモデルを指定したリクエストには、該当するフィールド名を示す 400 エラーが返ります。 - PowerShell フックが終了コード 2 でブロックしない問題を修正: コマンドが型キャスト、
param、using、属性のいずれかで始まる場合に発生していました。 - managed の
autoMode.allowに組み込みの例外が戻る問題を修正:"$defaults"を含まないリストに、ホストアプリの--settings、/permissionsで最初に追加したルール、/auto-mode-setupのいずれかによって組み込みの例外が戻っていました。 "$defaults"を含まないautoMode.allowでもスケジュールタスク用の組み込みルールを残すよう変更: スケジュールタスクのプロンプトに関する組み込みルールが削除されなくなりました。- Team・Enterprise ログインのサーバー管理設定(server-managed settings)の扱いを変更: Anthropic の API から取得した設定は承認プロンプトなしで適用され、検証に通らない保存済みのコピーは拒否されます(後述の「破壊的変更・非推奨」でも扱います)。
改善
/code-reviewの結果表示を改善: Claude Desktop の Code タブや Web から開始した/code-reviewで、クラウドセッションとclaude remote-controlセッションの結果がプレーンテキストの一覧ではなく findings カードで表示されます。- 大規模リポジトリでの
/diffを改善: 更新ごとに実行されるリポジトリ全体の git コマンドが通常 1 回減り、git が遅いときは更新の間隔が空けられます。 - SSL 証明書エラーのメッセージを改善: 考えられる原因(中間証明書を送らないサーバーなど)と、それぞれの対処方法が表示されます。
- [VS Code]
ultrathinkの扱いを変更:ultrathinkを含むターンがxhigheffort で実行され、ターミナルと同様にチャットボックス内で虹色に表示されます。 - [Cloud sessions] ネットワークシークレットの権限を変更: Enterprise メンバーが自分のクラウド環境で、閲覧だけでなく追加・削除もできます。
- [Claude Tag] Slack チャンネルの「Respond automatically」スイッチを変更: チャンネルの Configure ページと Claude Tag の管理設定にある「How Claude participates」の選択肢になりました。
- このほか、GitHub リモートが見つからないときのメッセージ(
/ultrareview・クラウドセッション・クラウドエージェント)や、クラウドセッションの Changes ペインの表示が改善されています。
修正
- シェルコマンドが終了後も残る問題を修正: Claude Code が自ら終了したとき(認証情報の拒否、クラウドセッションのアーカイブなど)に、macOS と Linux でシェルコマンドが実行されたまま残っていました。
- Vertex AI・Amazon Bedrock でモデルエイリアスがエラーになる問題を修正: 最新モデルがアカウントやリージョンでまだ利用できない場合に、
sonnet・opus・haikuが旧モデルへ切り替わらず、セッションの途中でエラーを表示していました。 - SHELLOPTS の export 時に bash スクリプトが止まる問題を修正:
SHELLOPTSが export されているとき、Bash ツールから起動した bash スクリプトが最初のコマンドの後で止まっていました。 - 圧縮レスポンスの破損時にリクエストが止まる問題を修正: 圧縮されたレスポンスが途中で切れたり壊れたりしたときに、一部のネットワークリクエストが応答を待ったまま止まっていました。
- 不可視文字を含むプロンプトの送信に Enter が 2 回必要な問題を修正: 通常のプロンプトは 1 回目の Enter で不可視文字を取り除いて送信され、コマンドは引き続き確認待ちになります。
- サブエージェントのモデル継承が再開時に外れる問題を修正: 親サブエージェントのモデルを継承したサブエージェントが、バックグラウンドジョブやメッセージで再開されたときにメインのモデルへ切り替わっていました。
- Windows で Grep・Glob が結果を返さない問題を修正: 検索プロセスがタイムアウトで kill されても終了しない場合に発生していました。
- [VS Code]
[1m]タグ付きのモデル設定で Effort スライダーなどが表示されない問題を修正: モデル設定がopus[1m]のような場合に、Effort スライダー・Ultracode スイッチ・モデル名が表示されていませんでした。 - [VS Code] プラン承認後の会話が Auto mode で戻る問題を修正: 「Yes, and manually approve edits」でプランを承認した会話が、リロードや再起動の後に Auto mode の状態で戻っていました。
- 地味に嬉しい修正: このバージョンが認識しないモデルを
/model <id>で指定したとき、auto-compact が 200K のコンテキストウィンドウを前提にすることを警告しない問題が修正されました。ゲートウェイ経由で独自のモデル ID を使っている方には、コンパクションが想定より早く始まる理由に気付きやすくなる修正だと感じます。 - このほか、Bash ツールのシェルでのエイリアス・関数の扱い、auto mode がターンを止めたときの表示と失敗の扱い、プラグインの MCP や SDK、セルフホストランナー、クラウドセッション、Claude Tag(Slack)など、多数の細かな不具合が修正されています。
破壊的変更・非推奨
本記事では、次の 2 件を扱います。
Opus 4.8 の fast mode の非推奨(2026 年 11 月 30 日に削除予定)
Opus 4.8 の fast mode が 2026 年 10 月 30 日付で非推奨になりました。2026 年 11 月 30 日の削除後は、Opus 4.8 への fast mode のリクエストがエラーになり、通常の Opus 4.8 へのフォールバックは行われません。日付で区切った挙動の例は次のとおりです。削除前の挙動は、CHANGELOG の「After removal, fast mode requests on Opus 4.8 return an error」という記述からの推測です。
削除前(〜2026-11-29、推測):
Opus 4.8 で fast mode を使う → fast mode で処理される(非推奨)
削除後(2026-11-30〜):
Opus 4.8 で fast mode を使う → エラー(通常の Opus 4.8 にはフォールバックしない)
高速化を続ける場合 → Opus 5.5 へ移行する
Team・Enterprise のサーバー管理設定が承認プロンプトなしで適用される
Team・Enterprise ログインで、Anthropic の API から取得したサーバー管理設定が承認プロンプトなしで適用されるよう変更されました。検証に通らない保存済みのコピーは拒否されます。以下は挙動の例です。変更前の挙動は、CHANGELOG の「now apply without an approval prompt」という記述からの推測です。保存済みのコピーの扱いについて、変更前の挙動は CHANGELOG に記載がありません。
変更前(〜v2.1.315、推測):
Team・Enterprise ログイン
Anthropic の API から取得したサーバー管理設定 → 承認プロンプト → 適用
変更後(v2.1.316〜):
Team・Enterprise ログイン
Anthropic の API から取得したサーバー管理設定 → 承認プロンプトなしで適用
検証に通らない保存済みのコピー → 拒否
CLAUDE_CODE_SUBAGENT_EFFORT を試してみた
v2.1.316 で追加された CLAUDE_CODE_SUBAGENT_EFFORT を設定したときに、サブエージェントがセッションとは別の effort で動作するかを、環境変数の有無で比較しました。
公式ドキュメントでは、サブエージェントの effort は、サブエージェント定義の effort フィールドや、呼び出し時に Claude が渡す effort パラメータでも指定できると説明されています。公式ドキュメントと CHANGELOG の記述から、サブエージェントの effort の優先順位をまとめると次のとおりです(1 が最優先)。
| 優先順位 | 指定方法 | 適用される対象 |
|---|---|---|
| 1 | 環境変数 CLAUDE_CODE_EFFORT_LEVEL |
メインのセッションとサブエージェント |
| 2 | 呼び出し時の effort パラメータ(v2.1.292 以降) |
fork 以外のサブエージェント |
| 3 | サブエージェント定義の effort フィールド |
そのサブエージェント |
| 4 | 環境変数 CLAUDE_CODE_SUBAGENT_EFFORT(v2.1.316 で追加) |
2・3 の指定がないサブエージェント |
| 5 | セッションの effort(--effort・/effort・effortLevel 設定) |
1〜4 の指定がないサブエージェント(継承) |
- 4 の位置は、CHANGELOG の「when nothing else names one」の「ほかの指定」が 2 と 3 を指すと読んだ場合の推測です。
- 1 と 4 の両方を設定した場合にどちらが優先されるかは、公式ドキュメントにも CHANGELOG にも記載がなく、今回は確認していません。
- 2 は、特定の effort でサブエージェントを動かすよう Claude に頼んだときに、Claude がその呼び出しに渡すパラメータです。
今回は 2 と 3 を使わず、セッションの effort(5)だけを指定した状態で、4 の有無を比べています。
検証の方法
以降のコマンドでは、検証用ディレクトリの絶対パスをシェル変数 V に入れて使います。今回の検証では、Claude Code のセッション用の一時ディレクトリの下に作ったディレクトリを使いました。試す場合は、次の例のように空のディレクトリを作り、そのパスを V に入れてから実行してください。
# 例: 検証用の空ディレクトリを作成し、そのパスを V に入れる
% V="$(mktemp -d)"
% mkdir -p $V/work
% cd $V/work
検証の条件は次のとおりです。
$V/workを作業ディレクトリとしてclaude -pを実行し、Agent ツールで general-purpose サブエージェントを 1 つ起動させる--effort highでセッションの effort をhighにする--tools Agentで使えるツールを Agent だけにし、--strict-mcp-configで MCP サーバーを読み込まない- プロンプトでは effort を指定しない
環境変数なし
% claude -p --max-turns 1 --effort high --tools Agent --strict-mcp-config \
--output-format stream-json --verbose \
"Agent ツールで general-purpose サブエージェントを 1 つ起動し、「ok」とだけ返答させてください" > $V/runA.jsonl
環境変数あり(CLAUDE_CODE_SUBAGENT_EFFORT=low)
% CLAUDE_CODE_SUBAGENT_EFFORT=low claude -p --max-turns 1 --effort high --tools Agent --strict-mcp-config \
--output-format stream-json --verbose \
"Agent ツールで general-purpose サブエージェントを 1 つ起動し、「ok」とだけ返答させてください" > $V/runB.jsonl
結果の確認
effort は、Claude Code が自動で保存するセッション記録(JSONL)で確認しました。今回の環境では、メインのセッションの記録は ~/.claude/projects/<作業ディレクトリに対応するディレクトリ>/<セッション ID>.jsonl に、サブエージェントの記録は同じ場所の <セッション ID>/subagents/agent-*.jsonl に保存されていました。次のコマンドでは、このディレクトリをセッション ID から求め、各記録の assistant レコードにある effort の値を集計します。
% for r in runA runB; do
SID=$(jq -r 'select(.type=="system" and .subtype=="init") | .session_id' $V/$r.jsonl | head -1)
P=$(dirname "$(ls -d ~/.claude/projects/*/"$SID".jsonl)")
echo "== $r"
echo "main:"; jq -r 'select(.type=="assistant") | .effort' "$P/$SID.jsonl" | sort | uniq -c
echo "subagent:"; jq -r 'select(.type=="assistant") | .effort' "$P/$SID"/subagents/agent-*.jsonl | sort | uniq -c
done
== runA
main:
2 high
subagent:
2 high
== runB
main:
2 high
subagent:
2 low
数字は、各記録の assistant レコードのうち、その effort の値を持つものの件数です。
- 環境変数なし(runA)ではサブエージェントもセッションと同じ
highで動作しました。 - 環境変数あり(
CLAUDE_CODE_SUBAGENT_EFFORT=low)(runB)ではメインのセッションはhighのまま、サブエージェントだけがlowで動作していました。
メインを高い effort にするとサブエージェントも同じ effort で動いていたところを、環境変数 1 つで分けられるようになったのは嬉しい変更だと感じます。
最後に
v2.1.316 は、サブエージェントの effort を環境変数で指定できるようになったほか、--restricted や Claude apps gateway のモデル制限が適用されていなかった経路の修正が入ったバージョンだと感じます。Opus 4.8 の fast mode は 2026 年 11 月 30 日に削除される予定のため、使っている方は移行先の Opus 5.5 を早めに試しておくのが良いと考えています。
サブエージェントを使うことが多い方や、Opus 4.8 の fast mode を使っている方は、アップデートして試してみてはいかがでしょうか。
参考文献








