← Sandbox SDK / sandbox / tutorials
Запуск Devin Outposts на Cloudflare
Запустите Агенты Devin ↗ на Cloudflare. Каждая сессия Devin выполняется в собственной изолированной песочнице на базе Cloudflare Containers.
Предварительные требования
Вам понадобится:
- Организация Devin Enterprise с правами на управление outposts и сервисными пользователями
- Учётная запись Cloudflare с доступом к Workers, Containers и R2
- Для ручного развёртывания Node.js 24 ↗ и запущенный Docker ↗ демон
Получите учётные данные Devin
-
Откройте настройки Outpost организации Devin. Замените оба вхождения
my-orgв этом URL на слаг вашей организации:https://my-org.devinenterprise.com/org/my-org/settings/enterprise-environment?tab=outposts -
Создайте или выберите Outpost. Скопируйте его Outpost ID для
DEVIN_OUTPOST_IDи его токен дляDEVIN_API_TOKEN.
Дополнительную информацию об outposts см. в Обзор Devin Outposts ↗.
Разверните в один клик
Самый быстрый способ настройки использует Deploy to Cloudflare кнопки. Процесс развёртывания запрашивает ваш Devin Outpost ID и API-токен. Он также создаёт и настраивает необходимые контейнеры.
Введите эти учётные данные при появлении запроса:
| Переменная | Значение |
|---|---|
DEVIN_OUTPOST_ID |
Ваш Devin Outpost ID |
DEVIN_API_TOKEN |
Токен сервисного пользователя Devin с Запуск outpost-воркеров разрешение |
После завершения развертывания ваш outpost готов запускать сессии Devin на Cloudflare: выберите его в меню Virtual environment.
Настройте и разверните вручную
Используйте следующую процедуру, если нужно добавить в шаблон зависимости, инструменты или переменные окружения.
-
Создайте проект на основе шаблона Devin Outpost:
npm create cloudflare@latest -- cloudflare-devin-outpost --template=cloudflare/sandbox-sdk/devin -
Перейдите в каталог проекта и войдите в свою учётную запись Cloudflare:
cd cloudflare-devin-outpost npx wrangler login -
Создайте бакет R2 для контрольных точек сессии:
npx wrangler r2 bucket create devin-outpost-stateЧтобы использовать другое имя бакета, измените
bucket_nameвwrangler.jsonc. -
В
wrangler.jsonc, замените пустойDEVIN_OUTPOST_IDзначение на идентификатор вашего outpost.По умолчанию
DEVIN_API_URLэтоhttps://api.devin.ai/opbeta. Изменяйте это значение только если ваша среда Devin использует другой URL API. -
Сохраните токен Devin API в качестве секрета Worker:
npx wrangler secret put DEVIN_API_TOKENВведите токен сервисного пользователя, когда Wrangler предложит это сделать. Не добавляйте токен в
wrangler.jsonc. -
Разверните Worker и контейнер:
npm run deployWrangler собирает контейнер и разворачивает worker, контейнерное приложение и Cron Trigger.
-
Проверьте развёртывание по URL Worker из вывода Wrangler:
curl https://<YOUR_WORKER>.workers.dev/Worker возвращает:
{ "service": "devin-outpost", "status": "ok" }
Запуск сессии Devin
В Devin создайте сессию и выберите ваш outpost из Виртуальное окружение меню. Worker опрашивает Devin раз в минуту, поэтому запуск контейнера сессии может занять до одной минуты.
Как работает шаблон
Шаблон управляет жизненным циклом каждого сеанса Devin:
- Опрос: Cron Trigger запускается раз в минуту. Worker проверяет текущие статусы сессий для вашего Devin Outpost.
- Запуск: Каждая ожидающая или выполняющаяся сессия получает собственный контейнер. В контейнере выполняется официальная команда Devin worker.
- Приостановка: Когда сессия приостанавливается, контейнер архивирует
/root,/workspace, а также/opt/devin-persistentв R2. Контейнер восстанавливает контрольную точку при возобновлении сессии. - Завершение: Когда сессия завершается, worker удаляет свой контейнер и контрольную точку в R2.
Worker координирует работу контейнеров. Devin продолжает управлять распределением сеансов и их выполнением.