O Rivet, um orquestrador de código aberto de uma equipe YC W23, introduz uma primitiva de actor leve para cargas de trabalho de agentes de IA. Em vez de iniciar uma sandbox ou container por agente, o Rivet executa cada agente como um Actor — um processo de longa duração que compartilha um processo de nó, utiliza 72 KB de RAM e inicia em 4,99 ms no p99 [1][5]. O projeto possui 6,6 mil estrelas no GitHub e 6.318 commits, sinalizando um desenvolvimento ativo [3].
Por que o modelo de actor muda a economia dos agentes
Plataformas de agentes tradicionais alocam uma sandbox completa (≈512 MB) por sessão de agente. Os Actors do Rivet compartilham um único processo de worker, permitindo que um servidor hospede centenas de milhares de Actors em vez de centenas de sandboxes [1][2]. A memória por Actor é medida em um aumento de 72,4 KB RSS utilizando o SDK em Rust [1]. O cold start cai de 1,7 segundos para uma sandbox para 4,99 ms p99 para um Actor do Rivet em um cluster de três zonas [1][5].
Estado durável sem servidor de banco de dados
Cada Actor possui seu próprio banco de dados SQLite. As gravações vão para SSDs locais em duas de três zonas de disponibilidade e, em seguida, são enviadas em lote para o S3 em segundo plano — o S3 nunca fica no caminho síncrono de gravação [6]. As leituras acessam o cache do SSD quando estão “quentes” e recorrem ao S3 quando estão “frias”. O resultado: gravações duráveis de 1,07 ms p99 e leituras de 1,36 ms p99 em um banco de dados de 50 MB [1]. Os custos de armazenamento são aproximadamente 10,4 vezes menores do que três volumes EBS gp3 replicados, utilizando os preços de tabela da AWS us-east-1 [1].
Hibernação e ativação sob demanda
Actors inativos gravam seu estado e são descarregados, consumindo 0 MB enquanto hibernam. A próxima requisição desperta o Actor com seu estado em memória e banco de dados SQLite intactos [1][3]. Não é necessário um escalonador separado; o agendamento via cron e timestamp reside dentro do plano de controle [1].
Estrutura operacional: binário único, sem operador Kubernetes
O plano de controle é entregue como um único binário estático em Rust, sem dependências externas. Ele se comunica via HTTP simples dentro da sua VPC atrás de um balanceador de carga — sem CRDs, sem operador, sem service mesh [1]. Os Actors se endereçam mutuamente por chave e fazem chamadas através do cluster como se fossem locais [1]. O posicionamento multi-região roteia as requisições para onde quer que cada Actor esteja residindo no momento [1].
Experiência do desenvolvedor: SDKs tipados e hooks de React
As definições de Actor geram tipos de cliente, portanto, uma alteração de assinatura quebra o build em vez de quebrar a produção [1]. Hooks de React nativos inscrevem componentes no estado de um Actor e os mantêm atualizados conforme o Actor evolui [1]. SDKs para TypeScript, Rust, Python, Swift e Effect estão disponíveis [2]. A observabilidade emite traces, métricas e logs do OpenTelemetry para o seu coletor existente [1].
Caminho de migração a partir de Cloudflare Durable Objects
A Amp migrou uma carga de trabalho de Durable Object para o Rivet em um fim de semana e agora o utiliza para orquestrar agentes multiplayer [5]. O modelo de programação é semelhante — objetos duráveis com WebSockets — mas o Rivet roda na sua própria infraestrutura, usa S3 para durabilidade e evita o lock-in de fornecedor [1][5].
Quando utilizar o Rivet
Considere o Rivet quando precisar de muitos agentes de longa duração com memória durável, multiplayer em tempo real ou fluxos de trabalho que devam sobreviver a reinicializações. Ele é ideal para agentes de codificação, agentes específicos de empresa com dados privados, assistentes pessoais e aplicativos colaborativos [1]. Se a sua carga de trabalho se encaixa em uma função stateless de requisição-resposta, uma plataforma serverless mais simples pode ser suficiente.
Primeiros passos
Instale o pacote de habilidades para o seu agente de codificação: npx skills add rivet-dev/skills. Em seguida, peça ao agente para criar a estrutura de um projeto Rivet localmente [1][2]. O guia de início rápido cria um Actor com SQLite, transmissão via WebSocket e ações tipadas em poucas dezenas de linhas [2][4].
Fontes
- Rivet - The Orchestrator for Agentic Workloads
- Launch HN: Rivet orchestrates agents… · AGI Hunt
- GitHub - rivet-dev/rivet: The orchestrator for agentic workloads. A …
- GitHub - danm-gh/rivet-dev-rivet: The orchestrator for agentic …
- SQLite Storage for Rivet Actors - Rivet
- Rivet gives each AI agent a 72 KB Actor · Hacker News | Zeli
- GitHub - rivet-dev/rivet: Rivet Actors are the primitive for stateful …
- State Management | rivet-dev/rivet | DeepWiki