Пока каждый второй AI-инструмент обзаводится собственным нодовым редактором, российский разработчик запустил открытый проект SnarkRoute - конструктор, в котором ноды наконец становятся переносимыми артефактами, а не заложниками одной платформы.
Острова без мостов
Нодовые редакторы расплодились стремительно. ComfyUI, n8n, внутренние пайплайны студий, самописные обвязки вокруг Replicate и Fal - по существу, все они решают одну задачу. Но каждый варит её в собственном, несовместимом ни с чем форматом. Воркфлоу, собранный в одном месте, в другое не переезжает. Его трудно воспроизвести, ещё труднее передать коллеге. Пользователь оказывается намертво прибит к интерфейсу - вместо того чтобы работать с логикой процесса.
Именно в эту дыру и метит SnarkRoute. Публичный рабочий фрагмент проекта уже доступен под именем BoojumRoute Lab - локальный блочный редактор маршрутов. Под ним лежит ключевое: Open Route Protocol, переносимый формат описания AI-, model- и API-воркфлоу. Примерно так же, как когда-то HTML вырвал документы из рук проприетарных редакторов - ORP пытается сделать то же самое с графами задач.
Маршрут как главный артефакт
Центральная идея проекта проста и неочевидна одновременно. В центре внимания - не модель и не редактор, а маршрут. Читаемый документ воркфлоу с нодами, связями, параметрами, провенансом и ссылками на ассеты. Без зашитых провайдерских секретов. Без жёсткой привязки к конкретному сервису. Его можно переслать, вскрыть, ремикснуть и запустить - и он не рассыплется при переезде.
Канонический формат файла - .orp, с человекочитаемым псевдонимом .route. Ноды пакуются в .snarknode, тащатся в редактор перетаскиванием, складываются в библиотеку и собираются в составные блоки. Переносимость работает сразу на двух уровнях: маршрут целиком как документ и отдельная нода как кирпич.
Архитектурно всё построено на TypeScript-монорепо с pnpm, Vite, React Flow и Fastify. Принцип local-first: ключи, запуски и ассеты остаются на машине пользователя. Наружу маршрут тянется только тогда, когда сам вызывает внешнего провайдера.
Безопасность и экономика - с первого болта
Первый очевидный вопрос к «переносимым нодам, которые можно слать друг другу» - не станет ли это очередным небезопасным менеджером пакетов, только для графов. Ответ заложен в архитектуру: никакого исполнения произвольного JavaScript. Ноды сообщества - декларативные манифесты с явными разрешениями. Маршрут не тянет файлы по URL сам - он держит ссылку через AssetRef, а хост решает, что с ней делать: валидировать, кэшировать или заблокировать. Секреты за пределы машины не уходят никогда.
Экономическая модель встроена в формат с самого начала - поля для авторов, лицензий, долей выручки и провенанса уже на месте. Пока они работают как метаданные и локальный учёт: реальных платежей система не исполняет. Рубильник опущен намеренно - чтобы потом не ломать совместимость, когда придёт время его поднять. Кстати, пока разработчики строят протоколы для AI-воркфлоу, не менее захватывающие сражения разворачиваются и на других аренах: ЧМ-2026 Турция - США обещает стать одной из самых непредсказуемых встреч группового этапа.
Что уже работает
Проект не остановился на концепции. Вот что функционирует прямо сейчас:
- блочный редактор BoojumRoute Lab с созданием и запуском маршрутов
- схема Open Route Protocol v0.1 с парсингом и валидацией в YAML и JSON
- DAG-движок с топологической сортировкой, ловлей циклов и логами запусков
- установка и drag-and-drop импорт .snarknode-нод
- плейсхолдеры вместо отсутствующих нод - маршрут не разваливается, если кирпич не найден
- импорт и экспорт .orp, локальный ledger запусков с провенансом
- provider-neutral Model Gateway для Replicate, Gemini, OpenRouter и других адаптеров
Живой тест-кейс - апскейл изображения: входная картинка проходит через Replicate Clarity Upscaler, уходит в превью и сохраняется локально, потому что ссылки от Replicate протухают. Скромно - но честно. Первый болт прикручен, машина стоит на стапеле.