Claude Media
CLAUDE_CODE_AUTO_MODE_SERVERでauto modeのサーバー側レビューを止める

CLAUDE_CODE_AUTO_MODE_SERVERでauto modeのサーバー側レビューを止める

auto modeの安全確認をサーバーへ投げるのをやめ、自前クラシファイアだけで判定させる環境変数の使い方とバージョン要件を解説します。

CLAUDE_CODE_AUTO_MODE_SERVERでできること

CLAUDE_CODE_AUTO_MODE_SERVERは、auto modeの安全確認をサーバーに投げるかどうかを切り替える環境変数です。0を設定すると、Claude Codeは常に自前のクラシファイアリクエストで行動を判定します。Claude Code v2.1.271以降が対象で、直接Anthropic APIへ接続する構成ではv2.1.281以降が条件です。

サーバー側レビューとは何か

auto modeでは、シェルコマンドやネットワークアクセスなどの行動を実行前にクラシファイア(判定用の別モデル)がチェックします。サーバー側レビューが有効な接続では、この判定がClaude Code自身の追加リクエストとしてではなく、セッションの通常のモデルリクエストの一部としてサーバー側で行われます。

サーバーが判定する接続は次の3種類です。

  • Anthropic APIへの直接接続: 対話型ターミナルセッションで、Claude.aiの全プランおよびClaude APIアカウントに順次展開されます。Pro・Max・Teamプランはv2.1.271以降、EnterpriseプランおよびClaude APIアカウントはv2.1.278以降が条件です。v2.1.282からは、テレメトリを無効にしているなどフィーチャーフラグの取得をしないセッションも、種類を問わずサーバーへ既定で判定を依頼します。
  • クラウドプロバイダー、LLMゲートウェイ、プロキシ経由: Claude Platform on AWS、Amazon Bedrock、Google CloudのAgent Platform、Microsoft Foundry、そしてANTHROPIC_BASE_URLをLLMゲートウェイやプロキシに向けた構成で、プランを問わず対象です。既定でサーバーに依頼するにはv2.1.278以降が必要です。
  • サインイン済みのClaude apps gatewayセッション: v2.1.280以降が条件です。

サーバーが判定した結果はそのまま採用されますが、判定に至らないケースが2通りあります。1つはサーバーがそのセッションをレビューしない場合で、レビュー結果なしで応答が完了するか、サーバーが「このセッションはレビューしない」と答えるケースです。原因の多くは、レビュー用のリクエストや結果を落としてしまうLLMゲートウェイ・プロキシか、サーバー側チェックがまだ届いていないプラットフォーム・リージョン・認証情報です。この場合はClaude Code自身のクラシファイアリクエストにフォールバックします。もう1つはサーバーが判定を返さない場合で、レビュー結果が届く前に応答が終わった、あるいは結果をClaude Codeが解釈できない形式で受け取ったときに起こります。この場合、Claude Codeは実行せずに拒否します。

自前クラシファイアだけに切り替える手順

ゲートウェイやプロキシがレビュー用のリクエストとレスポンスを、認識できないフィールドも含めてそのまま通過させるように直せば、0にしなくてもサーバー側レビューを使い続けられます。管理者やゲートウェイの提供元にその改修をすぐ依頼できない、あるいは対応していないと分かっている場合は、サーバーへの問い合わせ自体を止めて、常にClaude Code自身のクラシファイアリクエストを使わせます。

export CLAUDE_CODE_AUTO_MODE_SERVER=0

シェルで直接設定する代わりに、設定ファイルのenvキーに書いてもかまいません。

{
  "env": {
    "CLAUDE_CODE_AUTO_MODE_SERVER": "0"
  }
}

Anthropic APIへの直接接続では、この変数自体の効果にv2.1.281以降が必要です。逆に直接接続で1を設定すると、-pフラグのセッションやAgent SDKセッションのようにまだサーバー判定が有効でないセッションでも、サーバー側レビューを有効にできます。ただしCLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1も設定している場合はこの限りではありません。CLAUDE_CODE_AUTO_MODE_SERVERを未設定のままCLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1だけを設定したときも、サーバーへの問い合わせは止まります。

CLAUDE_CODE_AUTO_MODE_SERVERは暫定的な設定で、公式ドキュメントは将来のリリースで削除される可能性があるとしています。

切り替えるとどう変わるか

0を設定すると、クラシファイアリクエストは常にClaude Code自身が発行する形に統一されます。この方式はサーバー側レビューが導入される前からある挙動で、対象のアカウントではトークン使用量としてそのまま課金されます。サーバー側レビューが有効なセッションでは、このクラシファイア判定がセッション自体のモデルリクエストに含まれるため無課金です。

セッション中に/statusを実行すると、Auto mode serverの行でどちらの経路が使われているか確認できます。サーバー側レビューが有効な間はEnabled、フォールバックした後はDisabledと表示されます。

サーバー側レビューからClaude Code自身のクラシファイアへフォールバックしたセッションでは、課金対象のアカウントに対して「classifier request charges」の通知が表示されます。あらかじめCLAUDE_CODE_AUTO_MODE_SERVER=0を設定しておけば、この通知自体が出なくなります。逆に言えば、この通知が繰り返し出る環境は0への切り替えを検討する候補です。

サーバーが応答しないときの挙動

サーバー側レビューにはもう1つ、事前に把握しておくべき挙動があります。サーバーがレビュー結果を返せなかった行動は、実行せず拒否されるという点です。エラーメッセージは次の形で表示されます。

The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>.

この拒否が10回連続で続くと、auto modeはターンを止めます。

Auto mode is unavailable — the server returned no safety verdict for the last 10 responses, so Claude stopped. Send a message to try again, or switch out of auto mode.

対話セッションでは警告としてターンが終了し、-pを使う非対話実行では実行エラーとして終了、サブエージェントが上限に達した場合はサブエージェントが途中で停止して、そこまでの成果物と「auto modeが停止させた」という注記が呼び出し元に渡ります。ゲートウェイがレスポンスを打ち切る構成では、判定なしの拒否が起こりやすくなります。こうした環境ではCLAUDE_CODE_AUTO_MODE_SERVER=0で自前クラシファイアに固定したほうが、ターン停止の頻度を抑えられます。

対話セッションでは、判定待ちの間スピナーにAuto mode check unavailableとカウントダウンが表示され、Escでそのターンを中断できます。一部の拒否では、Claudeの次の試行がすぐ後を追わないよう、Claude Codeが意図的に待ち時間を挟むこともあります。

接続方法別のバージョン要件

サーバー側レビューが既定で有効になる条件は、接続方法ごとにバージョンが異なります。導入前に自分の環境がどの行に当てはまるか確認してください。

接続方法サーバーが既定で判定する条件CLAUDE_CODE_AUTO_MODE_SERVERの要件
直接API接続(Pro・Max・Team)サーバーが既定で判定する条件v2.1.271以降CLAUDE_CODE_AUTO_MODE_SERVERの要件値を設定する場合はv2.1.281以降
直接API接続(Enterprise・Claude APIアカウント)サーバーが既定で判定する条件v2.1.278以降CLAUDE_CODE_AUTO_MODE_SERVERの要件値を設定する場合はv2.1.281以降
直接API接続・フィーチャーフラグを取得しないセッションサーバーが既定で判定する条件v2.1.282以降で種類を問わず既定CLAUDE_CODE_AUTO_MODE_SERVERの要件値を設定する場合はv2.1.281以降
Claude Platform on AWS・Bedrock・Google CloudのAgent Platform・Foundry・LLMゲートウェイ経由サーバーが既定で判定する条件v2.1.278以降CLAUDE_CODE_AUTO_MODE_SERVERの要件v2.1.271以降(直接接続の制限は対象外)
サインイン済みClaude apps gatewayサーバーが既定で判定する条件v2.1.280以降CLAUDE_CODE_AUTO_MODE_SERVERの要件v2.1.271以降(直接接続の制限は対象外)

CLAUDE_CODE_AUTO_MODE_SERVERという変数自体はv2.1.271以降で認識されますが、直接API接続で値を明示的に変える(0にしてサーバーを無効化する、あるいは1にして有効化する)にはv2.1.281以降が必要という2段構えです。バージョンを混同すると、変数を設定したつもりでも直接接続では反映されないことがあります。

全体の判定ルールをまとめて確認したい場合は、claude auto-mode defaultsを実行するとauto modeのルール一式がJSONで表示されます。

0が向くケースと向かないケース

状況設定の目安理由
ゲートウェイ・プロキシがヘッダーやレスポンスを書き換える設定の目安0理由サーバー判定が届かず「判定なしの拒否」が繰り返される
Pro・Max・Teamプランで直接API接続・v2.1.271以降設定の目安既定のまま理由サーバー側レビューは無課金
-pやAgent SDKでサーバー判定をあえて使いたい設定の目安1(v2.1.281以降の直接接続)理由既定でサーバー判定が有効でないセッション種別を明示的に切り替えられる
ゲートウェイが対応済みか確証がなく、通知が頻発する設定の目安0理由通知の原因調査より先に、まず課金対象の挙動を固定できる

名前が似た環境変数と混同しない

auto mode関連の環境変数は名前が似ているため、CLAUDE_CODE_AUTO_MODE_SERVERを導入する前に区別しておくと事故を避けられます。

  • CLAUDE_CODE_ENABLE_AUTO_MODE: 古いリリース向けの互換用変数で、現在は効果がありません。v2.1.158からv2.1.206の間だけ、Amazon Bedrock・Google CloudのAgent Platform・Microsoft Foundryでauto modeを使うために1を設定する必要がありましたが、v2.1.207以降は設定してもしなくても挙動は変わりません。CLAUDE_CODE_AUTO_MODE_SERVERとは別物です。
  • CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT: rm -rf /のような重要パスの削除に対する制限時間を外す変数です。1を設定すると、auto modeではこれらの削除もクラシファイアの判定に回るようになります(既定では時間制限付きの確認が入ります)。サーバー側レビューを使うかどうかの設定ではなく、削除コマンドの扱い方を変える設定です。
  • CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS: CLAUDE_CODE_AUTO_MODE_SERVERを未設定のまま1にすると、副作用としてサーバーへの問い合わせが止まります。ベータ機能全体を止めるための変数なので、サーバー側レビューだけを止めたい場合はCLAUDE_CODE_AUTO_MODE_SERVER=0を使うほうが意図が明確になります。

まとめ

CLAUDE_CODE_AUTO_MODE_SERVERは、auto modeの安全確認をサーバーに任せるか、Claude Code自身のクラシファイアリクエストに固定するかを選ぶための一時的な環境変数です。既定ではv2.1.271以降のPro・Max・Teamプランや、v2.1.278以降のEnterprise・Claude APIアカウント、対応プラットフォームでサーバー側レビューが優先され、無課金で動きます。ゲートウェイやプロキシがヘッダー・レスポンスを書き換えてしまう環境では、サーバー判定が届かず「判定なしの拒否」やターン停止が起きやすいため、CLAUDE_CODE_AUTO_MODE_SERVER=0で自前クラシファイアに固定するのが実務的な回避策です。直接API接続でこの変数自体を機能させるにはv2.1.281以降が必要な点も、導入前に確認してください。

auto modeの基本挙動と、サーバー側レビューが既定になった経緯はClaude Code v2.1.278とClaude Code v2.1.282で扱っています。クラシファイアが実際にどのような行動を止めるかは、Claude Codeのサーバー側プロンプトインジェクション対策も参考になります。

この記事を共有:XはてブLinkedIn