← 기술 블로그로

AI Agent가 파일을 안전하게 수정하는 법: VFS 모범 사례

AI Agent 안전 파일 수정과 Virtual File System

AI Agent가 프로덕션 저장소에 직접 write / rm을 실행하면 환각 한 번으로 데이터 삭제·키 유출·반쯤 쓰인 설정이 될 수 있습니다. Virtual File System(VFS)은 에이전트를 버릴 수 있고, 검토·롤백 가능한 뷰에 가두고, 사람 또는 CI 승인 후에만 실제 디스크에 병합합니다.

1. 직접 쓰기가 위험한 이유

코딩 Agent는 자신 있게 대량 실행하고 무인 루프에서 재시도합니다. 경로 탈출, rm -rf, 중간 실패로 인한 반쯤 쓰기, diff 없는 shell 편집이 대표적입니다.

원칙: 기본 권한은 「읽기 위주, 쓰기는 반드시 롤백 가능」.

2. VFS 3계층

  1. Base(읽기 전용):깨끗한 스냅샷
  2. Overlay(쓰기):모든 변경은 여기에만
  3. Publish:검토·테스트 후 병합

3. 네 가지 구현 패턴

Git worktree, OverlayFS/컨테이너, 원격 샌드박스, IDE 가상 계층. 장시간 자율 Agent는 전용 머신 + 고정 샌드박스가 적합합니다.

4. 권한·화이트리스트

  • $WORKSPACE/**만 쓰기 허용
  • .env*, secrets/ 기본 거부
  • 파일 API + shell 이중 게이트

5. 원자 쓰기와 diff

overlay 스테이징 → unified diff → rename 또는 단일 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 금지
  • ☐ 쓰기 경로 화이트리스트
  • ☐ 실행별 롤백
  • ☐ 상주 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요금 보기.

더 읽기

한정 혜택 →