На этой неделе интернет проснулся под волну сообщений о людях, покупающих Mac mini для запуска Moltbot (ранее Clawdbot) — открытого, самодостаточного AI-агента, созданного для работы в качестве персонального помощника. Moltbot работает в фоновом режиме на собственном оборудовании пользователя, имеет обширный и растущий список интеграций для мессенджеров, AI-моделей и других популярных инструментов, а также может управляться удалённо. Он может помочь с финансами, соцсетями, планированием дня — и всё это через любимое приложение для обмена сообщениями.
Но что, если вы не хотите покупать новое специальное оборудование? И что, если бы вы могли эффективно и безопасно запускать своего Moltbot онлайн? Знакомьтесь с Moltworker — промежуточным воркером и адаптированными скриптами, которые позволяют запускать Moltbot на Cloudflare Sandbox SDK и API нашей платформы для разработчиков.
Персональный помощник на Cloudflare — как это работает?
Во-первых, Cloudflare Workers никогда ещё не был настолько совместим с Node.js. Если раньше нам приходилось эмулировать API, чтобы запустить некоторые пакеты, то теперь эти API поддерживаются средой выполнения Workers нативно.
Это изменило способ создания инструментов на Cloudflare Workers. Когда мы впервые реализовали Playwright — популярный фреймворк для веб-тестирования и автоматизации, работающий на Browser Rendering, нам пришлось полагаться на memfs. Это было плохо, потому что memfs не только является костылем и внешней зависимостью, но и заставлял нас отходить от официальной кодовой базы Playwright. К счастью, с улучшением совместимости Node.js мы смогли начать использовать node:fs нативно, снизив сложность и улучшив сопровождаемость, что облегчает обновление до последних версий Playwright.
Список нативно поддерживаемых нами API Node.js продолжает расти. В посте «Год улучшения совместимости Node.js в Cloudflare Workers» приведён обзор текущего положения дел и наших планов.
Мы также измеряем этот прогресс. Недавно мы провели эксперимент: взяли 1000 самых популярных пакетов NPM, установили их и позволили AI попытаться запустить их в Cloudflare Workers, в стиле "Ральфа Виггама в роли инженера-программиста", и результаты были удивительно хорошими. Исключая пакеты, которые являются инструментами сборки, CLI-инструментами или предназначены только для браузера и потому неприменимы, только 15 пакетов действительно не заработали. Это 1,5%.
Вот график нашей поддержки API Node.js с течением времени:
Мы собрали страницу с результатами нашего внутреннего эксперимента по поддержке пакетов npm здесь, чтобы вы могли проверить сами.
Moltbot не обязательно требует большой совместимости Workers с Node.js, потому что большая часть кода всё равно выполняется в контейнере, но мы сочли важным подчеркнуть, как далеко мы продвинулись в поддержке такого количества пакетов с использованием нативных API. Это потому, что, начиная создание нового приложения с AI-агентом с нуля, мы можем выполнять много логики непосредственно в Workers, ближе к пользователю.
Другая важная часть истории заключается в том, что список продуктов и API на нашей Платформе для разработчиков вырос до такой степени, что любой может создавать и запускать приложения любого рода — даже самые сложные и требовательные — на Cloudflare. А после запуска каждое приложение, работающее на нашей Платформе, сразу же получает преимущества нашей безопасной и масштабируемой глобальной сети.
Эти продукты и сервисы дали нам необходимые ингредиенты для начала работы. Во-первых, теперь у нас есть Песочницы (Sandboxes), где можно безопасно запускать ненадёжный код в изолированных средах, предоставляя место для работы сервиса. Далее, теперь у нас есть Browser Rendering, где можно программно управлять браузерными экземплярами без графического интерфейса и взаимодействовать с ними. И, наконец, R2, где можно постоянно хранить объекты. Имея эти строительные блоки, мы смогли начать работу по адаптации Moltbot.
Как мы адаптировали Moltbot для работы у нас
Moltbot на Workers, или Moltworker, — это комбинация воркера-точки входа, который выступает в качестве API-роутера и прокси между нашими API и изолированной средой (оба защищены Cloudflare Access). Он также предоставляет административный интерфейс и подключается к контейнеру Песочницы, где запущены стандартная среда выполнения Moltbot Gateway и его интеграции, используя R2 для постоянного хранилища.
Схема высокоуровневой архитектуры Moltworker.
Давайте углубимся.
AI Gateway
Cloudflare AI Gateway выступает в качестве прокси между вашими AI-приложениями и любым популярным AI-провайдером, а также предоставляет нашим клиентам централизованную видимость и контроль над проходящими запросами.
Недавно мы объявили о поддержке Bring Your Own Key (BYOK), где вместо передачи секретов провайдера в открытом виде с каждым запросом, мы централизованно управляем секретами за вас и можем использовать их в конфигурации вашего шлюза.
Ещё лучший вариант, когда вам вообще не нужно управлять секретами AI-провайдеров от начала до конца, — это использование Unified Billing (Объединённой системы биллинга). В этом случае вы пополняете свой счёт кредитами и используете AI Gateway напрямую с любым из поддерживаемых провайдеров. Cloudflare получает счёт, и мы спишем кредиты с вашего аккаунта.
Чтобы заставить Moltbot использовать AI Gateway, сначала мы создаём новый экземпляр шлюза, затем включаем для него провайдера Anthropic, после чего либо добавляем наш ключ Claude, либо покупаем кредиты для использования Unified Billing. Затем всё, что нужно сделать, — это установить переменную окружения ANTHROPIC_BASE_URL, чтобы Moltbot использовал конечную точку AI Gateway. Всё, без необходимости изменять код.
Как только Moltbot начнёт использовать AI Gateway, вы получите полную видимость затрат и доступ к журналам и аналитике, которые помогут понять, как ваш AI-агент использует AI-провайдеров.
Обратите внимание, что Anthropic — лишь один из вариантов; Moltbot поддерживает других AI-провайдеров, как и AI Gateway. Преимущество использования AI Gateway в том, что если у какого-либо провайдера появится лучшая модель, вам не придётся менять ключи в конфигурации вашего AI-агента и переразвёртывать его — вы можете просто сменить модель в конфигурации шлюза. Более того, вы можете указать резервные варианты (fallbacks) для моделей или провайдеров, чтобы обрабатывать сбои запросов и обеспечивать надёжность.
Песочницы (Sandboxes)
В прошлом году мы предвидели растущую потребность AI-агентов в безопасном запуске ненадёжного кода в изолированных средах и анонсировали Sandbox SDK. Этот SDK построен поверх Cloudflare Containers, но предоставляет простой API для выполнения команд, управления файлами, запуска фоновых процессов и открытия сервисов — всё из ваших приложений на Workers.
Короче говоря, вместо необходимости работать с низкоуровневыми API контейнеров, Sandbox SDK даёт вам удобные для разработчика API для безопасного выполнения кода и берёт на себя сложности жизненного цикла контейнеров, сетевого взаимодействия, файловых систем и управления процессами — позволяя сосредоточиться на построении логики приложения всего несколькими строками TypeScript. Вот пример:
import { getSandbox } from '@cloudflare/sandbox';
export { Sandbox } from '@cloudflare/sandbox';
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const sandbox = getSandbox(env.Sandbox, 'user-123');
// Создаём структуру проекта
await sandbox.mkdir('/workspace/project/src', { recursive: true });
// Проверяем версию Node.js
const version = await sandbox.exec('node -v');
// Запускаем код на Python
const ctx = await sandbox.createCodeContext({ language: 'python' });
await sandbox.runCode('import math; radius = 5', { context: ctx });
const result = await sandbox.runCode('math.pi * radius ** 2', { context: ctx });
return Response.json({ version, result });
}
};
Это идеально подходит для Moltbot. Вместо запуска Docker на вашем локальном Mac mini, мы запускаем Docker в Контейнерах, используем SDK Sandbox для выполнения команд в изолированной среде и применяем обратные вызовы к нашему воркеру-точке входа, эффективно устанавливая двусторонний канал связи между двумя системами.
R2 для постоянного хранения данных
Хорошая сторона запуска процессов на вашем локальном компьютере или VPS — это бесплатное постоянное хранилище. Однако Контейнеры по своей природе эфемерны, что означает, что данные, сгенерированные внутри них, теряются при удалении. Но не бойтесь — SDK Sandbox предоставляет метод `sandbox.mountBucket()`, который вы можете использовать для автоматического подключения вашего R2-бакета в качестве раздела файловой системы при запуске контейнера.
Как только у нас появляется локальная директория, которая гарантированно переживает жизненный цикл контейнера, мы можем использовать её для хранения файлов памяти сессий, диалогов и других активов Moltbot, которые должны сохраняться.
Browser Rendering для автоматизации работы с браузером
AI-агенты в значительной степени полагаются на просмотр зачастую не очень структурированной веб-страницы. Moltbot использует выделенные экземпляры Chromium для выполнения действий, навигации в интернете, заполнения форм, создания снимков экрана и обработки задач, требующих веб-браузера. Конечно, мы можем запустить Chromium и в Sandboxes, но что, если мы могли бы упростить и использовать вместо этого API?
С помощью Browser Rendering от Cloudflare вы можете программно управлять головыми экземплярами браузера и взаимодействовать с ними, работающими в масштабе в нашей граничной сети. Мы поддерживаем Puppeteer, Stagehand, Playwright и другие популярные пакеты, чтобы разработчики могли подключиться с минимальными изменениями кода. Мы даже поддерживаем MCP для ИИ.
Чтобы заставить Browser Rendering работать с Moltbot, мы делаем две вещи:
-
Сначала мы создаём тонкий прокси CDP (CDP — это протокол, позволяющий инструментировать браузеры на основе Chromium) из контейнера Sandbox в воркер Moltbot и обратно в Browser Rendering с использованием API Puppeteer.
-
Затем мы внедряем навык Browser Rendering в среду выполнения при запуске Sandbox.
С точки зрения среды выполнения Moltbot, у неё есть локальный порт CDP, к которому можно подключиться для выполнения задач в браузере.
Zero Trust Access для политик аутентификации
Далее мы хотим защитить наши API и административный интерфейс от несанкционированного доступа. Создавать аутентификацию с нуля сложно, и это именно то колесо, которое вы не хотите изобретать заново или иметь с ним дело. Zero Trust Access невероятно упрощает защиту вашего приложения за счёт определения конкретных политик и методов входа для конечных точек.
Конфигурация методов входа Zero Trust Access для приложения Moltworker.
Как только конечные точки защищены, Cloudflare будет обрабатывать аутентификацию за вас и автоматически включать JWT-токен в каждый запрос к вашим исходным конечным точкам. Затем вы можете проверить этот JWT для дополнительной защиты, чтобы убедиться, что запрос пришёл от Access, а не от злоумышленника.
Как и с AI Gateway, когда все ваши API находятся за Access, вы получаете отличную наблюдаемость за тем, кто ваши пользователи и что они делают с вашим экземпляром Moltbot.
Moltworker в действии
Время демонстрации. Мы развернули экземпляр Slack, где могли поиграть с нашим собственным экземпляром Moltbot на Workers. Вот некоторые забавные вещи, которые мы с ним сделали.
Мы ненавидим плохие новости.
Вот сессия чата, где мы просим Moltbot найти самый короткий маршрут между Cloudflare в Лондоне и Cloudflare в Лиссабоне с помощью Google Maps и сделать скриншот в канале Slack. Он проходит через последовательность шагов, используя Browser Rendering для навигации по Google Maps, и справляется с этим довольно хорошо. Также обратите внимание на работу памяти Moltbot, когда мы спрашиваем его во второй раз.
Сегодня нам хочется азиатской еды, давайте заставим Moltbot поработать на помощь.
Мы тоже едим глазами.
Давайте проявим больше креативности и попросим Moltbot создать видео, где он просматривает нашу документацию для разработчиков. Как видите, он загружает и запускает ffmpeg для генерации видео из кадров, которые он захватил в браузере.
Запустите свой собственный Moltworker
Мы открыли исходный код нашей реализации и сделали её доступной на https://github.com/cloudflare/moltworker, так что вы можете развернуть и запустить своего собственного Moltbot на базе Workers уже сегодня.
README проведёт вас через необходимые шаги для настройки всего. Вам понадобится учётная запись Cloudflare и как минимум платная подписка на план Workers стоимостью $5 США для использования Контейнеров Sandbox, но все остальные продукты либо бесплатны, как AI Gateway, либо имеют щедрые бесплатные тарифы, которые вы можете использовать для начала работы и работать сколько угодно в разумных пределах.
Обратите внимание, что Moltworker — это proof of concept, а не продукт Cloudflare. Наша цель — продемонстрировать некоторые из самых интересных функций нашей Платформы для разработчиков, которые можно использовать для эффективного и безопасного запуска AI-агентов и неподконтрольного кода, а также получить отличную наблюдаемость, используя преимущества нашей глобальной сети.
Не стесняйтесь вносить вклад в наш репозиторий на GitHub или форкать его; мы будем следить за ним некоторое время для поддержки. Мы также рассматриваем возможность параллельного внесения вклада в основной официальный проект с навыками Cloudflare.
Заключение
Мы надеемся, что вам понравился этот эксперимент, и мы смогли убедить вас, что Cloudflare — идеальное место для запуска ваших AI-приложений и агентов. Мы неустанно работали, пытаясь предвидеть будущее и выпускать такие функции, как Agents SDK, который вы можете использовать для создания своего первого агента за считанные минуты, Sandboxes, где вы можете запускать произвольный код в изолированной среде без сложностей жизненного цикла контейнера, и AI Search, управляемый векторный поисковый сервис Cloudflare, и это лишь несколько примеров.
Cloudflare теперь предлагает полный набор инструментов для разработки ИИ: вывод, API хранилища, базы данных, устойчивое выполнение для состоятельных рабочих процессов и встроенные возможности ИИ. Вместе эти строительные блоки позволяют создавать и запускать даже самые требовательные ИИ-приложения в нашей глобальной граничной сети.