| レベル | 設定 | 推奨用途 |
|---|---|---|
| Lv1 | 手動確認 | 企業環境 |
| Lv2(①後述) | .batのみ許可 | 個人開発(推奨) |
| Lv3 | tools配下のみ許可 | 高度な自動化 |
| Lv4(②後述) | global autoApprove | 実験環境のみ |
1. 背景
近年、Visual Studio Code と GitHub Copilot の組み合わせにより、
- コード生成
- 修正
- テスト
- ビルド
- デプロイ
までを半自律的に回すことが可能になってきた。
しかし問題はここにある。
Copilot がターミナルコマンドを実行するたびに
「Allow?」と確認が出る。
完全自律化を目指すなら、この確認をどう扱うかが設計の核心になる。
2. 自律実行の基本構造
Copilot のターミナル実行は内部的に
chat.tools.terminal
という仕組みで管理されている。
ここに autoApprove 設定を入れることで、
- 一部コマンドだけ無確認
- 全コマンド無確認
が制御可能になる。
3. ① 最も安全な設計:.bat だけ許可する(推奨)
設定内容
{
"chat.tools.terminal.autoApprove": {
"/.*\\.bat(\\s.*)?$/i": true
}
}
何が起きるのか
この正規表現は:
.batファイル実行のみ許可- 引数付きも許可
- 大文字小文字を無視
つまり:
tools\build.bat
deploy.bat production
は無確認で実行されるが、
rm -rf *
curl https://...
git reset --hard
などは引き続き確認が必要。
なぜ安全なのか
- 実行対象を「あなたが作った .bat」に限定できる
- 予期しない Linux コマンドや削除系をブロックできる
- 自律化と安全性のバランスが取れる
さらに安全にする例
toolsフォルダだけ許可:
{
"chat.tools.terminal.autoApprove": {
"/.*\\\\tools\\\\.*\\.bat(\\s.*)?$/i": true
}
}
これでプロジェクト配下の特定領域のみ自律実行可能になる。
4. ② 危険だが強力:完全無確認モード
{
"chat.tools.global.autoApprove": true
}
何が起きるのか
- すべてのターミナルコマンドが確認なし
- ワークスペース全体で有効
- Copilotが提案したコマンドは即実行
メリット
- 完全な自律エージェント挙動
- 修正 → テスト → 再実行のループが高速
- AI駆動開発が最速化
デメリット(重要)
- 誤生成コマンドも即実行
- 削除・上書き・リセット事故リスク
- VS Code 側も警告前提の設計
本番開発環境では基本非推奨。
5. 自律実行レベルの設計指針
| レベル | 設定 | 推奨用途 |
|---|---|---|
| Lv1 | 手動確認 | 企業環境 |
| Lv2 | .batのみ許可 | 個人開発(推奨) |
| Lv3 | tools配下のみ許可 | 高度な自動化 |
| Lv4 | global autoApprove | 実験環境のみ |
6. なぜ「.bat限定」が理にかなっているか
Windows環境では:
- .bat = 開発者が明示的に用意したスクリプト
- 実行ロジックが固定
- 意図しない自然言語コマンドが走らない
つまり、
自律性を “設計された範囲内” に閉じ込める
これが安全設計の本質。
7. 自律実行アーキテクチャの完成形
推奨構成:
Copilot
↓
VS Code
↓
autoApprove(.batのみ)
↓
tools/*.bat
↓
git / build / deploy
この構造なら、
- AIは自律的に動く
- 破壊的コマンドは防げる
- 人間は設計者として統制可能
8. 結論
完全自律化は可能だが、
無制限自律は危険。
最適解は:
✅ .bat だけ autoApprove
❌ global autoApprove は実験用


コメント