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을 갖춘 내구성 있는 액터입니다.

일반적인 사용 사례

  1. AI 지원 코딩 어시스턴트 – 파일을 읽고 쓰고, node, bash 또는 기타 도구를 실행하며, 웹 UI에 결과를 반환하는 코딩 에이전트(Pi, Claude-Code)를 배포.
  2. 서버 측 도구 자동화 – 내부 함수를 바인딩으로 노출시키고 LLM이 이를 오케스트레이션하도록 합니다(예: 데이터 파이프라인 단계, 관리 스크립트).
  3. 다중 사용자 협업 에이전트 – 멀티플레이어 기능을 사용하여 여러 프론트엔드가 동일한 에이전트 세션을 관찰하고 상호 작용할 수 있도록 합니다.
  4. 워크플로 오케스트레이션 – 재시도 및 분기가 있는 여러 에이전트 작업을 연결하고 단계 간 상태를 유지합니다.
  5. 안전하고 저렴한 샌드박싱 – 전체 컨테이너의 오버헤드 없이 격리된 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 코딩 어시스턴트가 완성됩니다.


더 알아보기


라이선스

Apache-2.0(저장소의 LICENSE 파일에 따름).

관련

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