website/src/content/docs/integrations/vercel-eve.mdx
{/* Keep this guide synchronized with rivet-dev/agentos/website/src/content/docs/docs/frameworks/vercel-eve.mdx. This intentionally hardcodes the agentOS example instead of using CodeSnippet: importing snippets across repositories would add an agentOS dependency to Rivet. The default walkthrough demonstrates agentOS and Rivet World together. */}
<Info> This integration is in beta. APIs may change between releases. </Info>Eve owns the agent runtime and session lifecycle, while agentOS maps every sandbox session to an isolated VM actor with a durable /workspace filesystem.
npx eve@latest init my-agent
cd my-agent
npm add @rivet-dev/agentos @rivet-dev/agentos-eve @rivet-dev/vercel-world
@rivet-dev/agentos: Provides the agentOS VM.@rivet-dev/agentos-eve: Connects Eve's sandbox API to agentOS.@rivet-dev/vercel-world: Runs Eve workflows on Rivet World.Update agent/agent.ts:
import { defineAgent } from "eve";
export default defineAgent({
model: "anthropic/claude-sonnet-5",
build: {
externalDependencies: [
"@rivet-dev/agentos",
"@rivet-dev/agentos-core",
"@rivet-dev/agentos-eve",
"@rivet-dev/agentos-runtime-core",
"@rivet-dev/agentos-sidecar",
"@rivet-dev/vercel-world",
"@rivetkit/engine-cli",
],
},
experimental: {
workflow: { world: "#world" },
},
});
Rivet World lets you run Eve on top of Rivet.
Add the World module import to package.json:
{
"imports": {
"#world": "./world.ts"
}
}
Create world.ts:
import { createWorld as createRivetWorld } from "@rivet-dev/vercel-world";
import { registry } from "./registry";
export const createWorld = () => createRivetWorld({ registry });
The first World operation starts this registry and waits for the Rivet envoy to be ready.
</Step> <Step title="Configure agentOS">Create registry.ts:
import { agentOS, setup } from "@rivet-dev/agentos";
import { vercelWorldActors } from "@rivet-dev/vercel-world/registry";
const vm = agentOS({
// Configuration will go here.
});
export const registry = setup({
use: {
...vercelWorldActors,
vm,
},
});
Create agent/sandbox.ts:
import { agentOSBackend } from "@rivet-dev/agentos-eve";
import { defineSandbox } from "eve/sandbox";
import { registry } from "../registry";
export default defineSandbox({
backend: agentOSBackend({ actor: "vm", registry }),
});
Link Eve to Vercel once so it can call your configured model:
npm exec -- eve link
Then run the agent:
npm exec -- eve dev
agentOS is a drop-in replacement for any Eve sandbox backend.
Read the Eve sandbox documentation →
agentOS() configures the VM's filesystems, software, extensions, and limits.
Read the agentOS + Vercel Eve documentation →
Rivet World stores Eve's runs in Rivet Actors so agents resume instead of restarting.