rivet-dev/agentos
Tiny, fast, Linux-compatible sandboxes. Powered by WebAssembly.
agentOS – AI 에이전트를 위한 작고 빠른 Linux 호환 샌드박스
정의 – agentOS는 단일 프로세스 내에서 격리된 가벼운 Linux 유사 환경을 실행할 수 있게 해주는 JavaScript/TypeScript 라이브러리(및 호스팅 서비스)입니다. 각 에이전트는 자체 파일 시스템, 프로세스, 셸, 네트워킹을 가지며 JavaScript, TypeScript, Python 및 컴파일된 WebAssembly 도구를 실행할 수 있습니다. 격리는 전체 VM이 아닌 V8 격리 및 WebAssembly에 의해 제공되므로 매우 빠른 콜드 스타트와 작은 메모리 공간을 제공합니다.
주요 사항
| 기능 | 중요한 이유 |
|---|---|
| WebAssembly + V8 격리 | 게스트 코드(셸, coreutils, Python 등)를 동일한 런타임을 공유하는 샌드박스에서 실행하여 무거운 마이크로 VM을 피합니다. |
| 라이브러리 모드 | npm에서 @rivet-dev/agentos-core를 설치하고 자체 백엔드 프로세스 내에서 VM을 시작합니다. |
| 호스팅 모드 | Rivet Cloud(또는 자체 호스팅)를 사용하여 HTTP로 주소를 지정할 수 있는 지속적인 VM을 실행하고, 서비스 노출을 위한 선택적 미리보기 URL을 제공합니다. |
| 콜드 스타트 속도 | 일반 컨테이너 샌드박스의 ~440ms(p50) 대비 ~5ms(p50) – 92배 빠름. |
| 메모리 효율성 | 전체 Linux 컨테이너의 >1GiB 대비 VM당 ~22MiB – 47배 적음. |
| 세분화된 권한 | 네트워크, 파일 시스템 및 리소스 제한은 선언적이며, 비밀은 호스트를 절대 떠나지 않습니다. |
| 영구 저장소 | SQLite, 호스트 디렉터리 또는 S3 버킷을 마운트하고, 인메모리 또는 영구 루트를 선택합니다. |
| 풍부한 API | 프로세스, 파일 시스템, 네트워킹, 언어 런타임(JS/TS, Python), cron, 소프트웨어 패키지 및 대화형 PTY가 모두 깔끔한 TypeScript API 또는 일반 HTTP 호출을 통해 노출됩니다. |
일반적인 사용 사례
- AI 에이전트 백엔드 – 각 LLM 기반 에이전트에 자체 샌드박스 OS를 제공하여 셸 명령 실행, 데이터 가져오기 또는 사용자 지정 Python/JS 코드를 안전하게 실행할 수 있습니다.
- 서버리스 스타일 워크로드 – 짧은 작업(예: 데이터 변환)을 위해 주문형 VM을 시작하고 즉시 폐기합니다.
- 테스트 및 CI – 전체 컨테이너를 생성하지 않고 격리된 빌드 단계 또는 보안에 민감한 스크립트를 실행합니다.
- 엣지 또는 저비용 컴퓨팅 – 단일 VM/인스턴스에서 많은 에이전트를 실행하여 메모리와 클라우드 비용을 절약합니다.
빠른 시작 (라이브러리 모드)
npm install @rivet-dev/agentos-core
import { AgentOs } from "@rivet-dev/agentos-core";
const vm = await AgentOs.create();
await vm.process.exec("echo hello && ls /home/agentos", {output:{capture:"all"}});
await vm.filesystem.writeFile("/home/agentos/hello.txt", "Hello, world!");
await vm.javascript.execute("console.log(1+2)");
const answer = await vm.python.evaluate<number>("21*2");
await vm.dispose();
구성(영구 FS, 마운트, 환경 변수, 네트워크 규칙, 리소스 제한)은 AgentOs.create()에 전달됩니다 – 전체 스키마는 README를 참조하세요.
빠른 시작 (호스팅 모드)
npm install @rivet-dev/agentos
import { createAgentOsClient } from "@rivet-dev/agentos";
const client = createAgentOsClient({endpoint:"https://api.rivet.dev"});
const vm = client.agentOS.getOrCreate(["my-vm"]);
const res = await vm.v1.process.run({command:"sh", args:["-c","echo hi"] , options:{captureStdio:true}});
console.log(res.stdout);
모든 작업은 일반 HTTP(POST /gateway/{vm_id}/action/v1.<group>.<action>)를 통해서도 사용할 수 있으므로 모든 언어에서 호출할 수 있습니다.
아키텍처 개요
- 사이드카 커널 (Rust) – 가상 커널, 파일 시스템, 프로세스 테이블, 소켓 및 권한 시스템을 소유하는 별도 프로세스입니다.
- 게스트 코드 – V8 격리(JS/TS) 또는 WebAssembly 모듈(셸, coreutils, Python)로 실행됩니다.
- 라이브러리 –
@rivet-dev/agentos-core패키지는 사이드카를 생성하고 stdio/Unix 소켓을 통해 통신하며 TypeScript API를 제공합니다. - 호스팅 서비스 – Rivet Cloud는 동일한 사이드카를 실행하고 REST/JSON API를 노출합니다. 사이드카를 자체 호스팅할 수도 있습니다.
- 격리 모델 – 게스트 코드의 모든 시스템 호출은 샌드박스된 syscall입니다. 호스트 리소스는 명시적 마운트, 호스트 함수 또는 네트워크 허용 목록을 통해서만 접근할 수 있습니다.
라이선스
이 프로젝트는 저장소의 LICENSE 파일(README가 가리키는)에 있는 라이선스에 따라 릴리스됩니다.
더 알아보기 – 문서, 벤치마크 및 자세한 API 참조는 https://rivet.dev/agentos 및 저장소의 docs/ 폴더에서 호스팅됩니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트