에이전트가 파일을 읽고 명령을 실행하는 영구적인 작업 공간을 클라우드에 두는 방법
AI 에이전트가 텍스트를 넘어 실제 파일 시스템을 탐색하고 명령을 실행하는 장면을 떠올려 보세요. 이 저장소는 에이전트가 사용할 수 있는 가상 컴퓨터를 만들어 줍니다. Durable Object 안에 SQLite로 상태를 저장하고, 필요에 따라 컨테이너나 워커에서 코드를 실행하는 환경을 제공합니다.
세 가지 실행 방식
파일 상태는 Durable Object의 SQLite에 저장되며, 이를 기반으로 세 가지 백엔드를 지원합니다. 컨테이너 백엔드는 SQLite 상태를 실제 FUSE 마운트로 투영해 완전한 Linux 환경을 제공합니다. 여기서 진짜 바이너리를 실행하고 네트워크에 접근할 수 있습니다. Isolate shell은 Dynamic Worker 안에서 just-bash를 실행하며, Workers RPC를 통해 상태에 직접 접근합니다. Isolate JavaScript는 ECMAScript 모듈을 실행하며, node:fs/promises와 같은 Node.js API를 지원합니다. workspace.runtime.exec를 통해 이 중 하나를 선택해 코드를 실행할 수 있습니다.
실행 가능한 예제
저장소의 examples/ 디렉터리에는 공개된 API를 사용하는 실행 가능한 예제가 포함되어 있습니다.
- 컨테이너 및 워커 실행 컨테이너 안에서
computerd를 실행하거나, 컨테이너 없이 Dynamic Worker에서 셸 명령과 자바스크립트 모듈을 실행하는 방법을 보여줍니다. - 에이전트 통합 MCP 프로토콜을 통해 에이전트가 이 컴퓨터를 도구로 사용하거나, 채팅 에이전트가 작업 공간으로 활용하는 예를 담고 있습니다.
- 콘텐츠 생성 및 배포 마크다운을 PDF로 변환하거나, Workers AI로 이미지를 생성해 공유 링크를 만드는 등 구체적인 작업 흐름을 시연합니다.
성능 벤치마크
컨테이너 백엔드의 FUSE 마운트는 메타데이터 처리가 많은 작업에서는 실제 디스크보다 빠릅니다. 반면 대용량 순차 입출력에서는 실제 디스크보다 느립니다. docs/19_performance.md에는 fs-bench 수치와 cloudflare/sandbox-sdk와의 비교 결과가 정리되어 있습니다.
프리뷰 단계의 한계
이 패키지는 피드백을 위한 프리뷰 버전으로, API가 불안정하고 설계가 변경될 수 있습니다. 프로덕션 환경에서는 사용하지 않는 것이 좋으며, 실험이나 프로토타입 개발에 적합합니다. docs/의 사양은 미래 지향적인 의도를 담고 있으므로 현재 코드와 다를 수 있습니다. MIT 라이선스로 공개되어 있으며, 기여는 이슈와 토론을 통해 이루어집니다.