AI Agent に本番リポジトリへ直接 write / rm させると、幻覚 1 回でデータ削除・秘密漏えい・半端な設定ファイルになり得ます。Virtual File System(VFS) は、エージェントを破棄可能・レビュー可能・ロールバック可能なビューに閉じ込め、人間または CI が承認してから本番にマージする設計です。
1. 直接書き込みが危険な理由
コーディング Agent は大規模に自信満々に実行し、無監督ループでリトライします。パス脱出、rm -rf、途中クラッシュによる半書き込み、監査不能な shell 編集が典型です。Agent 時代の請求 で述べた通り、ロールバックコストも FinOps の一部です。
2. VFS の三層モデル
- Base(読み取り専用):クリーンなスナップショット。
- Overlay(書き込み可):Agent の変更はすべてここへ。
- Publish:diff レビューとテスト後にマージ。
3. 四つの実装パターン
Git worktree、OverlayFS/コンテナ、リモートサンドボックス(e2b 等)、IDE 仮想層(Cursor)。長時間自律 Agent は専用マシン + 固定サンドボックスが向きます。
4. 権限とホワイトリスト
$WORKSPACE/**のみ書き込み可.env*、secrets/はデフォルト拒否- ファイル API と shell の二重ゲート
5. 原子書き込みと diff
overlay へステージング → unified diff → rename(2) または単一 commit → run_id で一括ロールバック。
6. 秘密情報の隔離
実行時プレースホルダ注入、ログ/diff のマスキング、egress 制限。
7. サンドボックス例
def safe_resolve(path: str) -> Path:
p = (SANDBOX / path).resolve()
if not str(p).startswith(str(SANDBOX)):
raise PermissionError("path escape")
return p
8. 本番チェックリスト
- ☐ 無制限 shell 禁止
- ☐ 書き込みパスホワイトリスト
- ☐ run ごとにロールバック可能
- ☐ 常駐 Agent は専用ホスト
9. FAQ
VFS は遅い?
overlay オーバーヘッドは ms 級で、LLM 往復より軽いです。
小規模チームの最小構成は?
ブランチ + PR のみ、main 直 push 禁止。
Docker と両立?
コードは読み取り専用マウント、変更は書き込み層へ。
並列 multi-agent は?
Agent ごとに worktree、integrator がマージ。
Cursor は VFS?
制御されたツール + ワークスペース規則という同型の抽象です。
クラウド Mac との関係?
APFS スナップショットと専用 FS が長時間 Agent に向きます。
スナップショット可能な専用 Agent Runner
Nuvcloud クラウド Mac mini M4 で VFS サンドボックスを安定稼働—プランを見る。