bypassPermissionsは、エージェントが確認のために停止しないClaude Codeの権限モードです。モデルが実行を決めた瞬間、編集、コマンド、ネットワーク呼び出し、その他すべてが即座に実行されます。Anthropicのガイダンスでは、サンドボックス化された使い捨て環境でのみ使用することが推奨されています。このガイダンスはエージェントが何にアクセスできるかに関するものです。しかし、そこには含まれていない第二の問いがあります。それは誰がエージェントに指示を出しているかです。
自分専用のサンドボックスで動く自分自身のエージェントなら、bypassは速度を重視した設定です。他の人がリクエストを送信できるエージェントの場合、bypassは間に人間を介さず、それらの人々にローカル権限を完全に与える判断を意味します。この記事はその違いについて書かれています。
なぜbypassを使いたくなるのか
プロンプトは摩擦を生みます。長いリファクタリングの中で、「この編集を許可しますか?」という100回もの問いかけは、読まずに「はい」を押す癖をつけさせます。それらをオフにすることで、エージェントは申請フォームではなく同僚のように感じられます。多くの人がバージョン管理下のレポジトリでbypassを実行し、誤った編集もgit checkoutで戻せるから大丈夫だと判断します。そして、それは正しい判断です。
その論理が成立するのは、あなたがリクエストを書き、あなたが監視しており、不可逆なものに手が届かない状態であるという3点が真である場合に限られます。
他の人がリクエストを送ると何が変わるか
リクエストが自分のものではない。 チームメイトの「古いブランチを整理して」という指示は、彼らにとっての意味を持ちます。エージェントにとってはgit branch -Dを意味します。bypassでは、その間に一時停止するものが何もありません。
入力が信頼されていない。 リクエストには添付ファイルが付いてきます。スクリーンショット、ログファイル、貼り付けられたイシューなどです。それらのいずれにも、指示のように読めるテキストが含まれている可能性があります。共有された入力を介したプロンプトインジェクションは現実的な脅威ベクトルであり、bypassはそれを捕捉できる唯一のチェックポイントを取り除いてしまいます。
監視していない。 共有する目的はまさに、自分がその場にいないときでもエージェントに働いてもらうためです。あなたなら1秒で答えたであろうプロンプトが、誰も見ていないアクションへと変わります。
不可逆な操作に手が届く。 mainへのプッシュ、削除、支出、認証情報の読み取り。自分のマシン上での通常セッションではこれらは滅多に起きないため、bypassが安全に感じられます。しかしこれらは、他人が誤ってトリガーする可能性が最も高いアクションそのものです。
境界線
bypassは、自分だけが対話し、不可逆なものが存在しないディレクトリ内のエージェントに使用してください。エージェントが二人目の人物と同じルームに入った瞬間、問うべきはもはや「モデルをどれだけ信頼できるか」ではなく、「そこに到達できるすべての人とすべての添付ファイルをどれだけ信頼できるか」になります。
境界線を越えずに速度を維持する
ルームを使えば、このモードの上に2つの仕組みを追加することで、速度をほとんど落とさずに維持できます。
人ごとの許可。 事前付与により、信頼できる人はリクエストごとの承認なしで実行できます。エージェント自体のモードは、日常的な呼び出しに対して寛容なままで構いません。詳細は権限モードの解説をご覧ください。
常に一時停止する4つのアクション。 共有ブランチへのプッシュ、削除、金銭の消費、認証情報への接触は、他の人からのリクエストである場合、bypassであってもオーナーのために停止します。100回の日常的な編集は確認なしで実行されますが、1回のgit push origin mainはあなたを待ちます。その理由はエージェントが実行前に必ず確認すべき4つのアクションにあります。
実践的な推奨事項
- 共有するエージェント:レポジトリには
acceptEdits、探索的な作業にはplanを使用します。信頼する人に許可を与えてください。 - 使い捨てサンドボックスで自分だけが使用するエージェント:bypassで問題ありません。
- 作業ディレクトリに本番環境の認証情報が含まれるもの:
defaultを使用し、認証情報を必要としない部分には別のエージェントを用意します。 - 作業ディレクトリに鍵ファイルが含まれるエージェントは絶対に共有しないでください。モードではなく、鍵を移動してください。
よくある質問
ルームを使うと、実行中のbypassの意味が変わりますか? いいえ。実行中において、bypassは依然としてランタイムのプロンプトがないことを意味します。ルームは、誰が実行を開始できるか、およびどのアクションが必ず一時停止するかを追加します。
Codexの同等の設定はどうですか? 同じ構図、同じアドバイスです。サンドボックス内の自分自身には寛容でよく、共有エージェントには寛容にしてはいけません。
プッシュのたびにプロンプトが出るのは煩わしくないですか? 通常のセッションで共有ブランチへのプッシュは滅多にありません。もし頻繁にあるなら、エージェントの作業ディレクトリがおそらく広すぎます。
自分には素早く、他の誰に対しても慎重に。それがルームの役割です。エージェントにルームを用意しましょう。
公開日