
Claude Code v2.1.302 の主要アップデート - fork サブエージェントの既定有効化と claude -p の権限モード変更
クラウド事業統括本部の石川です。Claude Code の v2.1.302(2026年10月16日 公開)がリリースされました。今回は claude -p や Agent SDK など、ターミナル以外の実行環境での既定動作に関わる変更が含まれています。fork サブエージェントの既定有効化を試してみました。
前回のアップデート記事はこちらです。
アップデートサマリー
v2.1.302 では 63 件の変更が入りました。43 件が不具合の修正で、既定動作の変更が 3 件、新機能が 3 件、サービス終了の告知が 1 件含まれます。63 件のうち 27 件は、クラウドセッション、Claude Tag(Slack)、VS Code、Remote Control、Code Review 向けの変更です。
注目のアップデート
fork サブエージェントが claude -p・Agent SDK などでも既定で有効に
fork サブエージェント(subagent_type: "fork")が、ターミナルと同様に claude -p、Agent SDK、デスクトップアプリ、VS Code でも既定で有効になりました。CLAUDE_CODE_FORK_SUBAGENT=0 で無効化でき、claude mcp serve では提供されません。
claude -p や Agent SDK でサブエージェントを使った自動化を組んでいる方は、従来の挙動を保ちたい場合に CLAUDE_CODE_FORK_SUBAGENT=0 を指定するとよいと感じます。
claude -p と Agent SDK の既定パーミッションモードの変更
パーミッションモードを指定していない claude -p と Agent SDK のセッションが、サードパーティプロバイダー利用時、テレメトリーがオフのとき、または新規インストール時に default モードで開始するようになりました。--permission-mode auto を指定すれば auto のままです。CHANGELOG の原文では、条件は「on third-party providers, with telemetry off or on a fresh install」と記載されています。
該当条件でパーミッションモードを指定せずに claude -p を CI やバッチから呼んでいる方は、許可が必要なツール呼び出しを含む実行結果が変わらないか確認しておくとよいと感じます。
CLAUDE_CODE_AUTO_MODE_MODEL の追加
環境変数 CLAUDE_CODE_AUTO_MODE_MODEL が追加され、クライアント側の auto モード分類器(classifier)が使うモデルを選べるようになりました。サーバー側 auto モードのモデルは変わりません。
クライアント側の分類器を使っている環境で、分類器のモデルを明示的に固定したい方に向いた設定だと感じます。
スタンドアロンの Claude Design の終了告知
/design-sync と /design-login に、スタンドアロンの Claude Design(claude.ai/design)が 2026年12月14日までに終了する旨の通知が追加されました。
スタンドアロンの Claude Design と /design-sync を組み合わせて使っている方は、2026年12月14日の終了に備えて運用を見直しておくとよいと感じます。
MCP プロトコルバージョン 2026-07-28 のサーバーでツールが使えない問題の修正
MCP サーバーがプロトコルバージョン 2026-07-28 をネゴシエートしつつ resultType・ttlMs・cacheScope を省略した場合に、ツールが表示されない、またはすべてのツール呼び出しが失敗する問題が修正されました。
プロトコルバージョン 2026-07-28 をネゴシエートする MCP サーバーを自作・運用していて、ツールが表示されない症状が出ていた方は、アップデートで解消するか確認する価値があると感じます。
Read ツールが 128 MB を超える画像ソースを拒否
Read ツールが任意サイズの画像ファイルや、画像のような名前のパイプ・デバイスを丸ごとメモリに読み込む問題が修正され、128 MB を超える画像ソースは拒否されるようになりました。
大きな画像や、画像のような名前のパイプ・デバイスを Read で開いてメモリを圧迫していた方に効く修正だと感じます。Read で 128 MB を超える画像ソースを扱う必要がある場合は、事前に縮小するなどの対応が必要になりそうです。
アップデート内容
新機能
- 環境変数
CLAUDE_CODE_AUTO_MODE_MODELが追加され、クライアント側の auto モード分類器が使うモデルを選べるようになりました。サーバー側 auto モードのモデルは変わりません。 /configにIdle compactionの行が追加され、アイドル時のコンパクション(idle compaction)をオフ/オンに切り替えられるようになりました。アイドルコンパクションの後に表示される通知にも、オフにする方法が表示されるようになりました。- [Cloud sessions] ルーティン(routine)のページに、直前の実行が開始しなかった理由(組織の同時クラウドセッション数の上限到達など)を示すバナーが追加されました。
改善
- 多数のプラグインを有効にしている場合の起動時間が改善されました。プラグインのコマンド・エージェントファイルの読み込みに必要なファイルシステム呼び出しが大幅に減り、特に Windows で効果が大きくなっています。
- サーバー側分類器を使う auto モードで、安全性チェックに対して会話が長すぎる場合、チェック対象のツール呼び出しをすべて拒否するのではなく、会話をコンパクションするようになりました。
- prompt フックと agent フックについて、同一イベントで同時に実行されるのは最大 12 個までとなり、残りは順番待ちになるよう変更されました。
- Claude in Chrome の指示をシステムプロンプト内で配置し直し、新しい会話が共有プロンプトキャッシュから読み込めるよう変更されました。
- このほか、Claude Tag 管理設定(リポジトリ検索の対象拡大、Add place と Add > Domain の表示タイミング、4 タブへの整理、Roles ページでのロールのまとめ方)、クラウドセッション開始失敗時のエラー表示、フッターの
← for agentsヒント、/feedbackが無効化されている場合のメッセージなどが改善・変更されています。
修正
- MCP サーバーのツールが表示されない問題を修正: MCP サーバーがプロトコルバージョン 2026-07-28 をネゴシエートしつつ
resultType・ttlMs・cacheScopeを省略した場合に、ツールが表示されない、またはすべてのツール呼び出しが失敗していました。 - Read ツールが画像を丸ごとメモリに読み込む問題を修正: 任意サイズの画像ファイルや、画像のような名前のパイプ・デバイスを丸ごとメモリに読み込んでいました。128 MB を超える画像ソースは拒否されるようになりました。
claude pluginなどの設定書き込みが失われる問題を修正:claude pluginなどのサブコマンドが、キューに入った設定・config の書き込み完了前に終了することがあり、変更が失われたり.tmpファイルが残ったりしていました。- コンパクション中の停止で "Prompt is too long" になる問題を修正: 会話のコンパクション中にターンを停止すると "Prompt is too long" エラーになっていました。
- ToolSearch 経由の再読み込みでプロンプトキャッシュがミスする問題を修正: セッション途中で追加されたツールを ToolSearch 経由またはコンパクション後に再読み込みした際に、プロンプトキャッシュがミスしていました。
- プロンプト候補がクレジットを消費する問題を修正: クレジットでのみ支払うモデルで、プロンプト候補(prompt suggestions)が利用クレジットを消費していました。クレジット課金の応答の後はプロンプト候補がスキップされるようになりました。
- Windows の exFAT / FAT32 ドライブでファイル書き込みが拒否される問題を修正: exFAT / FAT32 ドライブ上のプロジェクトで、すべてのファイル書き込みが拒否される、または確認を求められていました(
--plugin-dirで開始したセッションを含む)。 - ルーティンの再実行で作業が重複する問題を修正: [Cloud sessions] 途中で失敗したスケジュール実行のルーティンが 1 時間以上後に最初から再実行され、同じレポートを 2 回投稿するなど作業が重複することがありました。
- このほか、Bedrock・Vertex へのセッション途中の切り替え、OpenTelemetry の
tool_decisionイベント、PowerShell ツール、VS Code 拡張機能、クラウドセッションや Claude Tag(Slack)など、多数の細かな不具合が修正されています。
破壊的変更・非推奨
claude -p と Agent SDK の既定パーミッションモード
注目のアップデートで紹介した変更です。以下はコマンド例です。変更前の開始モードは CHANGELOG に記載がないため、コメントには書いていません。
変更前(〜v2.1.301):
# パーミッションモードを指定しない実行
claude -p "テストを実行して結果をまとめて"
変更後(v2.1.302〜):
# 上と同じ実行は、サードパーティプロバイダー利用時・テレメトリーがオフのとき・新規インストール時に default モードで開始する
claude -p "テストを実行して結果をまとめて"
# auto モードで動かす場合は明示する
claude -p --permission-mode auto "テストを実行して結果をまとめて"
fork サブエージェントの既定有効化
注目のアップデートで紹介した変更です。以下はコマンド例です。
変更前(〜v2.1.301):
# claude -p では fork サブエージェント(subagent_type: "fork")は既定で有効ではない
claude -p "..."
変更後(v2.1.302〜):
# claude -p でも fork サブエージェントが既定で有効
claude -p "..."
# 無効化する場合
CLAUDE_CODE_FORK_SUBAGENT=0 claude -p "..."
サブエージェントのフォアグラウンド・バックグラウンド実行
デスクトップアプリと VS Code で、メイン会話のサブエージェントを Claude に選ばせず、ターミナルと同様に常にバックグラウンドで実行するよう変更されました。また、claude -p、Agent SDK、デスクトップアプリ、VS Code では、サブエージェント自身が呼ぶ Agent が既定でフォアグラウンド実行になりました。
CHANGELOG の記述を表に整理すると次のとおりです。
| 対象 | 変更前(〜v2.1.301) | 変更後(v2.1.302〜) |
|---|---|---|
| デスクトップアプリ・VS Code のメイン会話のサブエージェント | バックグラウンドで実行するかを Claude が選ぶ | ターミナルと同様に常にバックグラウンドで実行 |
claude -p・Agent SDK・デスクトップアプリ・VS Code で、サブエージェント自身が呼ぶ Agent |
CHANGELOG に記載なし | 既定でフォアグラウンドで実行 |
スタンドアロンの Claude Design の終了告知
注目のアップデートで紹介した変更です。
| 対象 | 変更前(〜v2.1.301) | 変更後(v2.1.302〜) |
|---|---|---|
/design-sync・/design-login の実行時 |
終了の通知なし | スタンドアロンの Claude Design(claude.ai/design)が 2026年12月14日までに終了する旨を通知 |
CHANGELOG に記載されているのは通知の追加で、/design-sync・/design-login 自体の廃止については記載されていません。
fork サブエージェントの既定有効化を試してみた
v2.1.302 の claude -p で、何も設定しなくても Agent ツールの subagent_type に指定できる値に fork が含まれ、CLAUDE_CODE_FORK_SUBAGENT=0 を指定すると外れるかを確認しました。
作業用ディレクトリで claude -p を 1 ターンだけ(--max-turns 1)実行し、--output-format stream-json --verbose で出力されるイベントをファイルに保存しています。Claude には、ツールを使わずに Agent ツールの subagent_type に指定できる値を列挙させました。
Claude の回答(result)と init イベントの agents 一覧を jq で取り出しました。
既定のまま実行:
% claude -p --max-turns 1 --output-format stream-json --verbose "Agent ツールの subagent_type に指定できる値を、ツールを使わずに 1 行に 1 つずつ列挙してください。説明は不要です。" | jq -r 'if .type=="system" and .subtype=="init" then "version: \(.claude_code_version // "-")\nagents: \((.agents // []) | join(", "))" elif .type=="result" then "result:\n\(.result // .subtype)" else empty end'
version: 2.1.302
agents: claude, Explore, general-purpose, Plan, statusline-setup
result:
claude
Explore
general-purpose
Plan
statusline-setup
fork
fork サブエージェントを無効化して実行:
% CLAUDE_CODE_FORK_SUBAGENT=0 claude -p --max-turns 1 --output-format stream-json --verbose "Agent ツールの subagent_type に指定できる値を、ツールを使わずに 1 行に 1 つずつ列挙してください。説明は不要です。" | jq -r 'if .type=="system" and .subtype=="init" then "version: \(.claude_code_version // "-")\nagents: \((.agents // []) | join(", "))" elif .type=="result" then "result:\n\(.result // .subtype)" else empty end'
version: 2.1.302
agents: claude, Explore, general-purpose, Plan, statusline-setup
result:
claude
Explore
general-purpose
Plan
statusline-setup
Claude の回答では、既定のまま実行したときだけ先頭に fork が挙がり、CLAUDE_CODE_FORK_SUBAGENT=0 を指定したときは挙がりませんでした。Claude の回答は渡された Agent ツールの説明にもとづくと考えられるため、既定では subagent_type の値に fork が含まれ、CLAUDE_CODE_FORK_SUBAGENT=0 で外れていると見ています。一方、init イベントの agents 一覧は 2 回とも同じで、fork は含まれていませんでした。この一覧では、fork を使えるかどうかを判別できませんでした。
fork サブエージェントが既定で有効になる点でターミナルと claude -p・Agent SDK の扱いがそろったことで、対話で試したワークフローを非対話の自動化へ持ち込みやすくなったと感じます。
最後に
ターミナル、claude -p、Agent SDK、デスクトップアプリ、VS Code の間で、fork サブエージェントの既定有効化やバックグラウンド実行の扱いをそろえる変更が入り、環境差は少しずつ縮まってきたと感じます。
claude -p や Agent SDK、デスクトップアプリ、VS Code で Claude Code を使っている方は、アップデートして既定動作の変化を確かめてみてはいかがでしょうか。
参考文献









