CelestoAI/celesto

Secure and persistent computer for AI agents

Celesto AI – AI 에이전트를 위한 안전하고 지속적인 샌드박스

개요 – Celesto(이전 명칭 SmolVM)는 대규모 언어 모델 에이전트(Claude, Codex, Pi 등)에게 코드 실행, 웹 브라우징 또는 전체 데스크톱 환경 사용을 가능하게 하는 개인용 고속 부팅 가상 컴퓨터를 제공하는 오픈소스 플랫폼입니다. 각 샌드박스는 경량 마이크로 VM(Linux의 Firecracker, KVM 기반 Windows 게스트)으로, 약 500ms 내에 부팅되며 하드웨어 수준에서 에이전트를 호스트와 격리하고 여러 API 호출에 걸쳐 유지될 수 있습니다.

중요성 – AI가 생성한 코드를 개발자의 노트북에서 직접 실행하는 것은 위험합니다. Celesto를 사용하면 일회용 VM 내에서 코드를 실행할 수 있으며, 다음과 같은 기능을 제공합니다:

  • 턴 간에 파일과 상태를 유지하여 다단계 워크플로우 가능.
  • "컴퓨터 사용" 에이전트를 위한 실제 브라우저 또는 전체 데스크톱 제공.
  • 엄격한 네트워크 정책(차단, 제한된 CIDR 또는 전체 인터넷) 강제.
  • 호스트 디렉토리를 읽기 전용 또는 쓰기 가능으로 마운트하여 파일을 복사하지 않고 기존 코드베이스에서 작업 가능.
  • VM 스냅샷 생성 및 재개, 또는 Python with 블록 종료 시 자동 삭제.

핵심 구성 요소

구성 요소 기능
Python SDK (celesto 패키지) 생성, 명령 실행, 파일 업로드, 디렉토리 마운트, 터미널 열기, 브라우저 관리를 위한 고수준 Computer / Celesto 클래스.
CLI (celesto 명령) 샌드박스 생성, 목록 확인, 중지, 셸 접속, 삭제; 브라우저 또는 데스크톱 세션 시작; Windows/macOS 미리보기 관리.
TypeScript 미리보기 (@celestoai/smolvm) JavaScript/TypeScript로 작성된 서버 측 에이전트에 유용한 동일한 샌드박스 기능을 위한 Node.js API.
Firecracker 기반 Linux 마이크로 VM 초고속 부팅, 하드웨어 격리, 구성 가능한 네트워크, 스냅샷 지원.
Windows 11 게스트 지원 KVM이 있는 Linux 호스트에서 실행; PowerShell 액세스 및 병렬 샌드박싱 제공.
macOS 데스크톱 미리보기 Apple 실리콘 Mac에서 UI 테스트를 위한 임시 macOS 데스크톱 실행(약 50GB 다운로드 필요).

일반적인 사용 사례

  • AI 생성 코드의 안전한 실행 – 호스트 OS를 위험에 빠뜨리지 않고 신뢰할 수 없는 코드 조각 실행.
  • 에이전트를 위한 브라우저 자동화 – CDP, VNC 또는 뷰어 URL을 통해 제어할 수 있는 라이브 Chromium 인스턴스를 LLM에 제공.
  • 코드베이스 지원 – 프로젝트 디렉토리를 마운트하여 에이전트가 샌드박스 내에서 읽기, 편집 및 변경 사항 커밋 가능.
  • 상태 유지 다중 턴 워크플로우 – 여러 API 호출에 걸쳐 동일한 VM을 유지하여 컨텍스트 보존.
  • 설치 프로그램 또는 GUI 앱 테스트 – macOS 또는 Linux 데스크톱 미리보기를 사용하여 UI 상호작용 자동화.

시작하기(퀵스타트)

# alpha 패키지 설치(Python 3.11+ 필요)
pip install 'celesto==0.0.15a0'

# 호스트 의존성 준비(Linux에서는 sudo가 필요할 수 있음)
celesto setup
celesto doctor   # 상태 점검
from celesto import Computer

# 메시지를 출력하는 일회용 샌드박스
with Computer(local=True) as comp:
    out = comp.run("echo 'Hello from the sandbox!'")
    print(out.stdout)

with 블록이 끝나면 샌드박스는 사라집니다. 지속적인 VM이 필요한 경우 lifetime="persistent"로 생성하고 나중에 Computer.get(id, local=True)를 통해 다시 연결하십시오.

클라우드에서 실행 – CELESTO_API_KEY를 설정하고 local=True를 생략하십시오. 동일한 Python API가 작동하지만 클라우드 사용 시 비용이 발생할 수 있습니다.

CLI 예제

# 샌드박스 생성, 목록 확인 및 중지
celesto sandbox create --name demo
celesto sandbox list
celesto sandbox stop demo

# 대화형 셸 열기
celesto sandbox shell demo

# 단일 명령 실행(스크립트에서 유용)
celesto sandbox exec demo -- python --version

브라우저 샌드박스 – 표시 가능한 Chromium 인스턴스를 시작하고 실시간으로 확인:

celesto browser start --live
# 뷰어 URL과 VNC URL이 출력됩니다. 브라우저에서 뷰어를 열어 세션을 확인하십시오.

Python 사용 시:

from celesto import Celesto
with Celesto.browser(headless=False) as b:
    print(b.viewer_url)   # 열어서 확인
    print(b.cdp_url)      # Playwright / CDP 도구에 전달

Windows 샌드박스 – KVM이 있는 Linux 호스트가 필요합니다. ISO에서 이미지를 빌드하거나 기존 QCOW2를 사용하십시오:

celesto windows build-image --iso Win11.iso --virtio-win-iso virtio-win.iso --output ~/.smolvm/images/win11.qcow2

그런 다음 os="windows"를 사용하여 Python API를 사용하십시오.

보안 및 격리

  • 각 샌드박스는 자체 VM 내에서 실행됩니다(하드웨어 수준 격리).
  • 네트워크는 완전히 비활성화하거나 특정 CIDR 블록으로 제한할 수 있습니다.
  • 파일 시스템 마운트는 기본적으로 읽기 전용입니다. 쓰기 가능 마운트는 명시적으로 요청해야 합니다.
  • 스냅샷은 전체 메모리, 디스크 및 프로세스 상태를 캡처하여 나중에 재개할 수 있습니다.

문서 및 커뮤니티

성숙도 – 이 프로젝트는 alpha 릴리스(0.0.15a0) 단계입니다. 핵심 Linux 마이크로 VM 기능은 안정적이지만 Windows 및 macOS 미리보기는 여전히 실험적입니다. CI 배지는 테스트 및 CodeQL 스캔이 통과되었음을 보여줍니다.


결론 – Celesto는 LLM 기반 에이전트에게 자체적인 고속 격리 컴퓨터를 제공하기 위한 인프라를 제공합니다. 헤드리스 명령 실행기, 전체 브라우저, 데스크톱 UI 중 무엇이 필요하든 대응 가능합니다. VM 프로비저닝, 네트워크 및 지속성을 추상화하여 개발자가 AI 기반 워크플로우를 안전하게 구축하는 데 집중할 수 있도록 합니다.

관련

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