rivet-dev/agentos
Give agents an operating system as a library. Runs in your existing backend – no sandboxes, VMs, or SaaS. Powered by WebAssembly & V8 isolates.
agentOS – AI 에이전트를 위한 "운영 체제" (Node.js 라이브러리)
소개 – agentOS는 자신의 Node.js 프로세스 내부에 작고 격리된 가상 머신을 실행하고 그 안에서 AI 에이전트(Claude-Code, Codex, Pi, OpenCode 또는 자신의 것)를 실행할 수 있게 해주는 npm 패키지 런타임입니다. 이 VM은 POSIX 유사 환경을 에뮬레이트하고 실제 파일 시스템, 프로세스 및 네트워크 스택을 제공하지만 호스트 OS에는 직접 접근하지 않는 side-car 커널에 구축됩니다. 몇 밀리초 안에 시작되고 수십 메가바이트의 RAM만 사용하며, 다른 서버 측 구성 요소처럼 지속되거나, 예약되거나, 오케스트레이션될 수 있는 가벼운 샌드박스로 생각하시면 됩니다.
왜 중요한가
| 주장 | README의 설명 |
|---|---|
| 빠른 콜드 스타트 | 가장 빠른 공개 샌드박스의 약 440ms에 비해 4.8ms의 중간 시작 시간(약 92배 빠름). |
| 낮은 메모리 | 비슷한 샌드박스의 약 1GiB에 비해 단순 셸 명령에 22MB(약 47배 작음). |
| 실행 비용 저렴 | Hetzner ARM에서 주류 샌드박스와 비교하여 실행 초당 최대 2,800배 저렴. |
| 프로세스 내 실행 | 마이크로 VM, 컨테이너 또는 중첩된 가상화 없음 – V8 isolates 및 WebAssembly만 사용. |
| 세분화된 보안 | 권한은 파일 시스템, 네트워크, 프로세스 및 환경 액세스를 제어합니다. 아웃바운드 네트워크는 기본적으로 거부됩니다. |
| 어디서나 배포 | 일반 npm 패키지로 사용하거나, npx rivetkit dev로 로컬에서 실행하거나, Rivet Cloud 또는 자체 호스팅에 배포. |
핵심 개념
| 개념 | 설명 |
|---|---|
| VM | 에이전트와 설치하는 모든 소프트웨어를 호스팅하는 경량 가상 머신(V8 isolate + side-car 커널). |
| Agent | **Agent Client Protocol (ACP)**를 통해 VM과 통신하는 LLM 기반의 "코딩" 또는 "어시스턴트" 모델(Pi, Claude-Code, Codex, OpenCode). |
| Registry | VM에 추가할 수 있는 에이전트, POSIX 유틸리티, 브라우저 및 기타 소프트웨어의 npm 기반 카탈로그(@agentos-software/*). |
| Bindings | 에이전트가 자신의 코드를 안전하게 호출할 수 있도록 CLI 스타일 명령으로 VM에 노출되는 호스트 측 JavaScript 함수. |
| Persistence | 모든 대화/세션은 자동으로 저장되며, 나중에 다시 시작하거나 디버깅을 위해 재생할 수 있습니다. |
| Orchestration | 멀티플레이어 관찰, 에이전트 간 위임, 재시도/분기가 있는 워크플로, cron 작업 및 웹훅에 대한 기본 지원. |
주요 기능
- 내장 에이전트 – Pi, Claude-Code(beta), Codex(beta), OpenCode, 그리고 커스텀 에이전트를 추가하는 간단한 방법.
- 통합된 트랜스크립트 형식 – 모든 에이전트에 동일한 로그 스키마를 사용하여 디버깅 및 감사 추적을 쉽게 합니다.
- 전체 프로세스 지원 – VM 내부에서 Bash, Node.js, Python 또는 등록된 모든 바이너리를 실행할 수 있습니다.
exec, 파일 읽기/쓰기 등이 가능합니다. - 마운트 가능한 스토리지 – S3 호환 버킷, Google Drive, 호스트 디렉토리 또는 메모리 내 마운트를 VM의 파일 시스템으로 연결.
- 브라우저 액세스(beta) – 클라우드 기반 Browserbase 인스턴스를 마운트하여 에이전트가 헤드리스 브라우저를 제어할 수 있습니다.
- 샌드박스 마운팅(beta) – 워크로드에 전체 Linux 샌드박스가 필요할 때, agentOS는 외부 샌드박스(E2B, Daytona 등)를 실행하고 필요에 따라 파일 시스템을 마운트할 수 있습니다.
- 보안 – VM별 권한, 네트워크 송신 제어, CPU/메모리 제한, side-car 커널을 통한 완전한 격리.
- Rivet Actor 통합 – 각 VM은 기본 지속성, 일시 정지/활성화 및 미리보기 URL을 갖춘 내구성 있는 액터입니다.
일반적인 사용 사례
- AI 지원 코딩 어시스턴트 – 파일을 읽고 쓰고,
node,bash또는 기타 도구를 실행하며, 웹 UI에 결과를 반환하는 코딩 에이전트(Pi, Claude-Code)를 배포. - 서버 측 도구 자동화 – 내부 함수를 바인딩으로 노출시키고 LLM이 이를 오케스트레이션하도록 합니다(예: 데이터 파이프라인 단계, 관리 스크립트).
- 다중 사용자 협업 에이전트 – 멀티플레이어 기능을 사용하여 여러 프론트엔드가 동일한 에이전트 세션을 관찰하고 상호 작용할 수 있도록 합니다.
- 워크플로 오케스트레이션 – 재시도 및 분기가 있는 여러 에이전트 작업을 연결하고 단계 간 상태를 유지합니다.
- 안전하고 저렴한 샌드박싱 – 전체 컨테이너의 오버헤드 없이 격리된 VM 내에서 신뢰할 수 없는 코드(사용자 제출 스크립트, 플러그인)를 실행합니다.
빠른 시작(README에서)
# Install core library and a built‑in agent
npm install @rivet-dev/agentos @agentos-software/pi
서버(VM 정의)
// server.ts
import { agentOS, setup } from "@rivet-dev/agentos";
import pi from "@agentos-software/pi";
const vm = agentOS({ software: [pi] });
export const registry = setup({ use: { vm } });
registry.start();
클라이언트(VM과 통신)
// client.ts
import { createClient } from "@rivet-dev/agentos/client";
import type { registry } from "./server";
const client = createClient<typeof registry>({ endpoint: "http://localhost:6420" });
const handle = client.vm.getOrCreate("my-agent");
const conn = handle.connect();
conn.on("sessionEvent", e => console.log(e));
await handle.openSession({ agent: "pi", env: { ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY! } });
await handle.prompt({ content: [{ type: "text", text: "Write a hello world script to /workspace/hello.js" }] });
const content = await handle.readFile("/workspace/hello.js");
console.log(new TextDecoder().decode(content));
tsx(또는 Node 호환 러너)로 두 파일을 실행하면 프로세스 내에 존재하는 완벽하게 작동하는 AI 코딩 어시스턴트가 완성됩니다.
더 알아보기
- 문서 및 빠른 시작 – https://agentos-sdk.dev/docs
- 소프트웨어 레지스트리 – https://agentos-sdk.dev/registry
- 벤치마크 및 방법론 – https://agentos-sdk.dev/docs/benchmarks
- Discord 커뮤니티 – https://rivet.dev/discord
라이선스
Apache-2.0(저장소의 LICENSE 파일에 따름).
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트