自動承認
Bob Shellの自動承認アクションは繰り返しの承認プロンプトをなくしますが、セキュリティリスクが高まります。読み取り、書き込み、実行のパーミッションの安全な設定方法を学びます。
自動承認設定は確認プロンプトをバイパスし、Bobにシステムへの直接アクセスを与えます。これによりデータ損失、ファイルの破損、またはそれ以上の問題が発生する可能性があります。コマンド実行は特に危険で、システムにダメージを与えたりセキュリティを損なう有害な操作を実行する可能性があります。完全に信頼するアクションに対してのみ自動承認を有効にしてください。
承認の仕組み
Bobがツールを実行する前に、ターミナルに承認プロンプトが表示されます。プロンプトは一度に一つ表示されるため、各アクションが実行される前に明確で意図的な確認ができます。
編集可能なコマンド: Bobがターミナルコマンドを提案するとき、承認プロンプトでコマンドを直接編集できます。これによりタスクをキャンセルして言い直すことなく、正確な調整ができます。
タスクレベルの承認: グローバルな自動承認設定に加えて、タスクごとにツールグループの承認を設定できます。タスクレベルのオーバーライドは現在のタスクにのみ適用されます。
自動承認の設定
自動承認は~/.bob/settings/settings.jsonのapprovalキーで制御されます。自動承認したいパーミッショングループIDをallowed_permissions配列に追加します:
"approval": {
"allowed_permissions": ["read", "todo", "subtask"]
}Shellセッション中に/permissionsスラッシュコマンドを使用してインタラクティブに自動承認を切り替えることもできます。
コマンドごとの許可リスト、拒否リスト、グループごとのオプションを含む完全なJSONスキーマについては、承認設定を参照してください。
利用可能なアクション
アクションを自動承認すると、Bobは許可を求めずにそのアクションを完了します。
| アクション | 説明 | リスクレベル |
|---|---|---|
| 読み取り | ファイルとディレクトリの内容を表示する | 中 |
| 編集 | ディレクトリのファイルを作成、編集、保存する | 高 |
| 実行 | ターミナルでコマンドを実行する | 高 |
| MCP | 設定したMCPサーバーを使用する | 中〜高 |
| スキル | 定義したスキルをアクティブにする | 中 |
| Todo | Todoリストを更新する | 低 |
| Subtask | サブタスクを作成して完了する | 低 |
| Subagent | 集中したタスクを処理するsubagentを生成する | 低 |
| モード | タスクを完了するためにモードを切り替える | 低 |
自動承認を使う場面
自動承認が最も有益なシナリオ:
- 繰り返しの開発タスク:基本的なコードの生成など、Bobのアクションを信頼する場合。
- バッチ操作:中断なく複数のファイルを処理する必要がある場合。
- 探索的なコーディングセッション:常時プロンプトなしでフローを維持したい場合。
- ローカル開発環境:セキュリティリスクが限定されている場所。
アクションの理解
各アクションはBobが完了できる特定のワークフローを制御します。
読み取り
Bobは許可を求めずにプロジェクト内のファイルにアクセスして読み取ります。
これにはファイルの内容の表示、ディレクトリ構造のリスト、コードベースの検索が含まれます。このパーミッションはシステムへの変更ではなく情報収集に関するものです。
編集
Bobは許可を求めずにファイルを作成、変更、削除します。
Bobはコードの変更を適用し、既存のコードをリファクタリングし、ファイル構造を自動的に管理できます。これはコードベースを直接変更するため、高リスクです。
実行
Bobは許可を求めずにターミナルコマンドを自動的に実行できます。これにはビルドスクリプト、パッケージマネージャー、その他のコマンドラインツールの実行が含まれます。
コマンドはシステムレベルの操作を実行し、有害なプロセスを実行する可能性があります。このアクションは高リスクです。
MCP
Bobは許可を求めずに設定されたModel Context Protocol (MCP) サーバーを使用できます。
MCPサーバーはBobの機能を拡張する追加のツールとリソースを提供します。リスクレベルは特定のMCPサーバーがアクセスおよび変更できるものによって異なります。
スキル
Bobは許可を求めずに定義したスキルを自動的にアクティブにできます。
スキルはBobに特殊なワークフローとタスクを教える再利用可能なインストラクションセットです。有効にすると、Bobはリクエストとスキルの説明に基づいてスキルのインストラクションを読み込んで従います。リスクレベルはスキルのインストラクションがBobに指示するアクションによって異なりますが、スキルはBobの既存のツール制約の範囲内で動作します。
詳細については、スキルを参照してください。
Todo
Bobは許可を求めずにTodoリストを自動的に更新できます。
これによりBobは作業が進むにつれて進捗を追跡しタスク完了を管理できます。このパーミッションはシステムアクセスではなくタスク管理に関するものです。
Subtask
Subtaskは複雑な作業を管理しやすい部分に分解するためにBobが作成する別のタスクインスタンスです。Bobは確認を求めずにこれらのsubtaskを自動的に作成して完了できます。
このパーミッションはシステムアクセスではなくワークフローの整理に関するものです。
Subagent
Bobは許可を求めずに集中した自己完結したタスクを処理するsubagentを自動的に生成できます。
Subagentは独自の隔離されたコンテキストで実行され、完了したときにサマリーを返します。このパーミッションはシステムへの直接アクセスではなくワークフローの委任に関するものです。
詳細については、Subagentを参照してください。
モード
Bobはタスクの要件に基づいて自動的に異なるモード間を切り替えられます。
このアクションはワークフローの整理に関するものであり、システムアクセスには影響しません。
セキュリティのベストプラクティス
自動承認アクションを安全に使用するためのガイドライン:
- 制限的に始める:最小限のパーミッションから始め、必要に応じてのみ追加します。
- プロジェクト固有の設定を使用する:リスク許容度に基づいて各プロジェクトの自動承認設定をカスタマイズします。
- 不要なときは無効にする:機密コードや本番システムで作業するときは自動承認をオフにします。
- 定期的に変更を確認する:特にファイルの変更など、Bobが行ったアクションを定期的に確認します。
- 本番環境では自動承認しない:自動承認設定は開発環境のみに制限します。