forkd: AI 에이전트 팬아웃을 위한 마이크로VM 샌드박스 런타임, 밀리초 수준 스냅샷 포크 지원
forkd: AI 에이전트 팬아웃을 위한 마이크로VM 샌드박스 런타임, 밀리초 수준 스냅샷 포크 지원
해결하고자 하는 문제
forkd는 AI 에이전트 팬아웃을 위해 설계된 마이크로VM 샌드박스 런타임입니다. AI 에이전트가 코드 해석, 도구 사용, 평가 롤아웃 등 많은 짧은 수명의 격리된 환경을 생성해야 할 때, 가상 머신이나 컨테이너를 콜드 부팅하는 데 발생하는 높은 지연 시간과 리소스 오버헤드를 해결합니다.
작동 방식
Firecracker 위에 구축된 forkd는 "warm 상태에서 포크" 방식을 사용합니다. 부모 VM은 한 번 부팅된 뒤 필요한 런타임(예: Python, ML 모델, NumPy와 같은 의존성)을 로드하고, 스냅샷으로 디스크에 일시 정지됩니다. 이후 자식 VM은 mmap 과 MAP_PRIVATE 를 이용해 부모의 메모리 이미지를 매핑함으로써 생성됩니다. 이는 페이지 수준의 copy‑on‑write(CoW)를 통해 자식들이 부모의 상주 메모리를 공유하도록 하여, 콜드 부팅에 비해 훨씬 빠른 스폰 시간을 제공합니다.
또한 forkd는 BRANCH 를 지원하여 실행 중인 샌드박스를 스냅샷하고 중간 단계에서 여러 갈래의 경로로 재개할 수 있게 하며, diff‑snapshot 체인 을 통해 (예: NumPy와 Pandas 각각에 대한 별도 스냅샷) 의존성 레이어를 기본 메모리 이미지를 복제하지 않고 쌓을 수 있습니다.
대상 사용자
- AI 에이전트 개발자: 각 도구 호출마다 새롭고 격리된 환경이 필요한 코드 인터프리터나 Jupyter‑kernel 샌드박스를 구축하는 사람들.
- ML 평가 프레임워크: Docker 콜드 스타트 오버헤드 없이 수백 개의 병렬 테스트 롤아웃(e.g., SWE‑bench)을 실행하는 사용자.
- 보안에 민감한 사용자: CI 혹은 다중 테넌트 환경에서 신뢰할 수 없는 코드 실행을 위해 KVM 수준의 하드웨어 격리를 필요로 하는 사람들.
- 셀프 호스팅: 관리형 샌드박스 SaaS 플랫폼의 오픈소스, Apache 2.0 대안을 찾는 개발자.
주요 특징
- 극한 스폰 속도: 약 101 ms 안에 100개의 마이크로VM을 포크할 수 있습니다.
- 실시간 BRANCH: 실행 중인 샌드박스를 스냅샷하고 최소 56 ms(p50) 내에 재개할 수 있습니다.
- 하드웨어 격리: 각 자식은 KVM을 기반으로 하는 별도 Firecracker 마이크로VM이며, 일반 컨테이너보다 강력한 격리를 제공합니다.
- 스택형 스냅샷: diff‑snapshot 체인을 지원해 레이어형 의존성을 효율적으로 관리합니다.
- 전체 Linux 환경: 일부 함수 수준 런타임과 달리, 각 자식은 다중 vCPU와 완전한 TCP 네트워킹을 갖춘 실제 Linux 커널을 제공합니다.
- 개발자 도구: REST API, Python/TypeScript/MCP SDK, Prometheus 메트릭을 포함합니다.
요약
AI 에이전트 팬아웃을 위한 마이크로VM 샌드박스 런타임으로, 스냅샷 copy‑on‑write 방식을 이용해 밀리초 단위로 격리된 워밍된 환경을 생성합니다.
제목
forkd: AI 에이전트 팬아웃을 위한 마이크로VM 샌드박스 런타임, 밀리초 수준 스냅샷 포크 지원
Sources
- undefineddeeplethe/forkd