smol-machines/smolvm

An embeddable, portable, branchable virtual machine to safely run Agents locally.

smol‑machines / smolvm – 브랜치 가능한 AI 에이전트용 마이크로 VM

이것이 무엇인가 – smolvm은 모든 OCI 컨테이너 이미지에서 소형 하드웨어 가상화 머신(마이크로 VM)을 빠르게 생성할 수 있는 오픈소스 런타임입니다. libkrun VMM과 맞춤형 게스트 커널(libkrunfw)을 기반으로 하며 macOS(Hypervisor.framework), Linux(KVM), Windows(Hypervisor Platform)에서 실행됩니다. AI 개발자에게 핵심적인 장점은 각 에이전트를 자체 VM에 격리할 수 있고, 200ms 미만의 빠른 부팅, 탄력적인 메모리, 실행 중인 VM을 체크포인트, 되감기, 브랜치할 수 있는 기능을 제공한다는 점입니다. 이는 재현 가능한 실험, 신뢰할 수 없는 코드의 샌드박싱, 에이전트 상태 유지에 유용합니다.

사용 방법

  • Homebrew, 스크립트 또는 Windows zip으로 설치합니다.
  • CLI(smolvm machine …)는 VM을 생성, 시작, 명령 실행, 패킹합니다. 예: smolvm machine run --net --image alpine -- uname -a.
  • Smolfile에서 VM을 선언적으로 정의합니다(이미지, 리소스, 포트, 마운트, 네트워크 정책).
  • Node/TS, Python, Rust용 SDK를 통해 자체 코드에 런타임을 포함할 수 있습니다. 단일 Machine 객체로 VM 생성, 명령 실행, 삭제가 가능하며 백그라운드 데몬이 필요 없습니다.

주요 기능

기능 AI/ML 워크로드에 중요한 이유
브랜치 가능 / 체크포인트 가능 실행 중인 에이전트를 고정하고, copy-on-write 브랜치를 만들거나 이전 상태로 되감을 수 있습니다. 디버깅이나 모델 추론 경로 재현에 이상적입니다.
휴대용 .smolmachine 아티팩트 VM(상태 포함)을 단일 파일로 패킹하고, OCI 레지스트리에 푸시하거나 다른 호스트에서 독립 실행형 실행 파일로 실행할 수 있습니다.
하드웨어 격리 각 VM은 자체 커널을 가지며, 네트워킹은 기본적으로 꺼져 있고 호스트를 화이트리스트에 추가하거나 자격 증명을 안전하게 전달할 수 있습니다.
빠른 부팅 및 탄력적 메모리 200ms 미만으로 부팅되며, virtio balloon을 통해 메모리가 필요에 따라 할당되어 노트북에서 많은 에이전트가 공존할 수 있습니다.
임베드 가능한 SDK 별도 데몬 없이 Python, Node, Rust에서 직접 API에 접근할 수 있어 에이전트 프레임워크나 오케스트레이션 도구에 쉽게 통합할 수 있습니다.
Kubernetes RuntimeClass 클라우드 네이티브 AI 워크로드를 위해 팟을 마이크로 VM으로 실행합니다.
GPU 지원 로드맵 virtio-gpu를 통한 Vulkan과 CUDA 리모팅이 문서화되어 있지만 아직 프로덕션 준비는 되지 않았습니다.

AI 에이전트의 일반적인 워크플로우

  1. 생성: Python 또는 CUDA 이미지에서 VM 생성: smolvm machine create --name agent --image python:3.12-alpine.
  2. 시작: 브랜치 가능하게 시작: smolvm machine start --name agent --branchable.
  3. 실행: 내부에서 추론 코드 실행: smolvm machine exec --name agent -- python infer.py.
  4. 체크포인트: 중요한 단계 후 체크포인트: smolvm machine checkpoint --name agent -o step1.chk.
  5. 브랜치: 전체 환경을 다시 초기화하지 않고 대체 프롬프트를 시도합니다.
  6. 패킹: 배포를 위해 최종 상태를 패킹: smolvm pack create --from-vm agent -o agent.smolmachine.

안전 모델 – VM은 워크로드를 격리하며, 호스트 폴더 마운트, 네트워크 호스트 또는 자격 증명 전달을 명시적으로 허용해야 합니다. 신뢰할 수 없는 코드는 허용하지 않는 한 호스트 파일 시스템에 접근할 수 없으므로 타사 모델이나 도구의 공급망 위험을 줄입니다.

제한 사항 – Windows에서는 아직 GPU 가속이 없으며, 런타임은 플랫폼별 하이퍼바이저에 의존합니다. 컨테이너 런타임이 아니며, OCI 이미지는 필요하지만 Docker 데몬은 필요 없습니다.

더 알아보기 – 문서는 https://smolmachines.com/docs, SDK 참조, 예제 프로젝트(Python, Node, Docker-in-VM, 로컬 LLM, 헤드리스 브라우저, Doom)에서 확인할 수 있습니다. 소스는 smol-machines/smol 저장소에 있으며, 이 저장소에는 런타임 자체가 포함되어 있습니다.


라이선스: Apache-2.0

관련

  • 프로젝트
  • Dispatch
  • 프로젝트
  • 프로젝트
  • 프로젝트