Rivet, open-source оркестратор от команды YC W23, представляет легковесный примитив актора для рабочих нагрузок ИИ-агентов. Вместо запуска «песочницы» или контейнера для каждого агента, Rivet выполняет каждого агента как актор — долгоживущий процесс, который использует общий процесс узла, потребляет 72 КБ оперативной памяти и запускается за 4,99 мс (p99) [1][5]. Проект имеет 6,6 тыс. звезд на GitHub и 6318 коммитов, что свидетельствует об активной разработке [3].
Почему модель акторов меняет экономику агентов
Традиционные агентные платформы выделяют полноценную «песочницу» (≈512 МБ) на сессию агента. Акторы Rivet используют общий рабочий процесс, поэтому один сервер может содержать сотни тысяч акторов вместо сотен «песочниц» [1][2]. Память на одного актора измеряется как увеличение RSS на 72,4 КБ при использовании Rust SDK [1]. Время «холодного старта» сокращается с 1,7 секунды для «песочницы» до 4,99 мс (p99) для актора Rivet в трехзонном кластере [1][5].
Устойчивое состояние без сервера баз данных
Каждый актор получает собственную базу данных SQLite. Записи направляются на локальные SSD в двух из трех зон доступности, а затем пакетно передаются в S3 в фоновом режиме — S3 никогда не находится на пути синхронной записи [6]. Чтение происходит из кэша SSD, если данные «горячие», и из S3, если «холодные». Результат: 1,07 мс (p99) для устойчивых записей и 1,36 мс (p99) для чтения на 50-МБ базе данных [1]. Расходы на хранение примерно в 10,4 раза ниже, чем при использовании трех реплицируемых томов EBS gp3, согласно прайс-листу AWS us-east-1 [1].
Гибернация и пробуждение по запросу
Простаивающие акторы записывают свое состояние и выгружаются, потребляя 0 МБ во время гибернации. Следующий запрос пробуждает актора, при этом его состояние в оперативной памяти и база данных SQLite остаются нетронутыми [1][3]. Отдельный планировщик не требуется; планирование по cron и временным меткам реализовано внутри плоскости управления (control plane) [1].
Операционная модель: один бинарный файл, без Kubernetes-оператора
Плоскость управления поставляется в виде одного статического бинарного файла на Rust без внешних зависимостей. Она общается по обычному HTTP внутри вашего VPC за балансировщиком нагрузки — никаких CRD, операторов или сервис-мешей [1]. Акторы обращаются друг к другу по ключу и вызывают методы внутри кластера так, будто они локальные [1]. Мультирегиональное размещение направляет запросы туда, где в данный момент находится каждый актор [1].
Опыт разработчика: типизированные SDK и React-хуки
Определения акторов генерируют типы клиентов, поэтому изменение сигнатуры ломает сборку, а не продакшн [1]. React-хуки от разработчиков Rivet подписывают компоненты на состояние актора и поддерживают их актуальность при обновлении актора [1]. Доступны SDK для TypeScript, Rust, Python, Swift и Effect [2]. Система наблюдаемости отправляет трассировки OpenTelemetry, метрики и логи в ваш существующий коллектор [1].
Путь миграции с Cloudflare Durable Objects
Компания Amp мигрировала рабочую нагрузку с Durable Objects на Rivet за выходные и теперь использует его для оркестрации многопользовательских агентов [5]. Модель программирования схожа — устойчивые объекты (durable objects) с WebSockets, — но Rivet работает на вашей инфраструктуре, использует S3 для обеспечения устойчивости и позволяет избежать привязки к поставщику [1][5].
Когда стоит выбрать Rivet
Рассмотрите Rivet, если вам нужно много долгоживущих агентов с устойчивой памятью, многопользовательские функции в реальном времени или рабочие процессы, которые должны переживать перезагрузки. Он подходит для агентов-программистов, корпоративных агентов для работы с частными данными, персональных помощников и приложений для совместной работы [1]. Если ваша рабочая нагрузка укладывается в stateless-функцию типа «запрос-ответ», может быть достаточно более простой serverless-платформы.
Начало работы
Установите пакет навыков (skills pack) для вашего агента-программиста: npx skills add rivet-dev/skills. Затем попросите агента создать каркас проекта Rivet локально [1][2]. Quickstart создает актора с SQLite, широковещательной рассылкой WebSocket и типизированными действиями всего за несколько десятков строк кода [2][4].
Источники
- Rivet — оркестратор для агентных рабочих нагрузок
- Launch HN: Rivet оркеструет агентов… · AGI Hunt
- GitHub — rivet-dev/rivet: Оркестратор для агентных рабочих нагрузок. A …
- GitHub — danm-gh/rivet-dev-rivet: Оркестратор для агентных …
- Хранилище SQLite для акторов Rivet — Rivet
- Rivet дает каждому ИИ-агенту актора размером 72 КБ · Hacker News | Zeli
- GitHub — rivet-dev/rivet: Акторы Rivet — это примитив для stateful …
- Управление состоянием | rivet-dev/rivet | DeepWiki