← 技術ブログに戻る

AI Agent はどう安全にファイルを編集する?VFS ベストプラクティス

AI Agent 安全なファイル編集と Virtual File System

AI Agent に本番リポジトリへ直接 write / rm させると、幻覚 1 回でデータ削除・秘密漏えい・半端な設定ファイルになり得ます。Virtual File System(VFS) は、エージェントを破棄可能・レビュー可能・ロールバック可能なビューに閉じ込め、人間または CI が承認してから本番にマージする設計です。

1. 直接書き込みが危険な理由

コーディング Agent は大規模に自信満々に実行し、無監督ループでリトライします。パス脱出、rm -rf、途中クラッシュによる半書き込み、監査不能な shell 編集が典型です。Agent 時代の請求 で述べた通り、ロールバックコストも FinOps の一部です。

原則: デフォルトは「読み多く書き少なく、書くなら必ずロールバック可能」。

2. VFS の三層モデル

  1. Base(読み取り専用):クリーンなスナップショット。
  2. Overlay(書き込み可):Agent の変更はすべてここへ。
  3. 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 サンドボックスを安定稼働—プランを見る

関連記事

限定オファー →