SnarkRoute бросает вызов хаосу. Открытый протокол против островов!
21 июня, 2026

SnarkRoute бросает вызов хаосу. Открытый протокол против островов!

SnarkRoute бросает вызов хаосу. Открытый протокол против островов!

Разработчик выпустил открытый конструктор нодовых редакторов с переносимым форматом маршрутов

Пока каждый уважающий себя AI-инструмент обзаводится собственным нодовым редактором, один разработчик решил пойти против течения - и вместо очередного закрытого острова собрал открытый конструктор, где сами ноды становятся переносимыми артефактами. Проект называется SnarkRoute, и его первый публичный кусок уже работает.

Что не так с нынешней экосистемой

ComfyUI, n8n, самопальные обвязки вокруг Replicate и Fal, внутренние пайплайны студий - все они в какой-то момент приходят к одному: рисуют коробочку с входами и выходами. Задача одна и та же. Результат - несовместимые форматы, которые не переезжают между инструментами. Воркфлоу, собранный в одной среде, в другой разваливается или вовсе не открывается. Швейцария - Канада эфир

Именно эту дыру и затыкает SnarkRoute. Центральная идея проекта - не модель и не интерфейс редактора, а маршрут: читаемый документ воркфлоу с нодами, связями, параметрами, провенансом и экономикой. Без провайдерских секретов, без зашитых внешних файлов. Документ, который можно переслать, вскрыть, ремикснуть и запустить - и он не рассыплется при переезде.

Как устроен проект

Рабочая витрина SnarkRoute - BoojumRoute Lab, локальный блочный редактор маршрутов на Vite, React и React Flow. Под ним живёт главное: Open Route Protocol (ORP) - переносимый формат описания AI-, model- и API-воркфлоу. Канонический файл получает расширение .orp, есть также .orp.json, .orp.yaml и человекочитаемый алиас .route.

Ноды пакуются в формат .snarknode - их можно скачать, бросить другому, сложить в библиотеку или собрать из нескольких цепочку, а потом свернуть обратно в одну. Провайдеры подключаются через провайдер-нейтральный Model Gateway: нода вызывает зарегистрированный адаптер, а сам маршрут сырых секретов не хранит вовсе. Гейтвей умеет прикидывать стоимость заранее - но если данных нет, честно пишет Unknown, а не выдумывает цифру.

Всё это работает на принципе local-first: ключи, запуски, ассеты и настройки остаются на машине пользователя. Наружу маршрут лезет только тогда, когда сам пользователь позвал внешнего провайдера.

Безопасность заложена в архитектуру

Переносимые ноды, которые можно слать друг другу, - это звучит ровно как новый небезопасный npm, только для графов. Разработчик очевидно думал об этом заранее. Никакого произвольного JavaScript от сообщества: ноды - это декларативные манифесты с явными разрешениями. Файлы не тянутся напрямую, маршрут держит ссылку AssetRef, а хост сам решает, резолвить её, валидировать по схеме или заблокировать. Hash-пиннинг ругается, если ассет подменили.

Поля для авторства, лицензий, долей и провенанса зашиты в формат с первого дня - пусть нулевыми и опциональными, но они есть. Экономический рубильник пока опущен: v0.1 ведёт только локальный учёт, никаких платежей и сеттлментов. Архитектура сделана так, чтобы их можно было подключить потом без слома совместимости.

Что уже работает

  • Блочный редактор BoojumRoute Lab - создание и запуск маршрутов в браузере
  • Схема Open Route Protocol v0.1: парсинг, валидация, поддержка YAML и JSON
  • DAG-исполнитель с топологической сортировкой, ловлей циклов и логами
  • Drag-and-drop импорт и установка .snarknode, библиотека нод
  • Плейсхолдеры на месте отсутствующих нод - маршрут не разваливается
  • Импорт и экспорт .orp, локальный ledger запусков с провенансом
  • Встроенные ноды: текст, файлы, изображения, видео, шаблоны, превью, вывод

Живой пример - апскейл картинки через Replicate Clarity Upscaler: результат сразу качается локально, потому что Replicate отдаёт ссылки, которые протухают. Мелкая деталь - но показательная: проект строится вокруг воспроизводимости, а не красивого демо. Репозиторий открыт, лицензия AGPL, внутри лежит даже Codex-скилл для сборки собственных нод - чтобы любой мог добавить свои кирпичи в общую стену, а не варить очередной несовместимый формат в одиночку.