Открытый конструктор для AI-воркфлоу бросает вызов закрытым экосистемам
Российский разработчик опубликовал SnarkRoute - проект, который пытается решить давно назревшую проблему: воркфлоу, собранный в одном нодовом редакторе, не переезжает в другой, намертво привязывая пользователя к конкретному инструменту. Первый публичный рабочий кусок уже доступен под названием BoojumRoute Lab.
Зачем это нужно и откуда растут ноги
Нодовые редакторы плодятся с пугающей скоростью. ComfyUI, n8n, внутренние пайплайны студий, самодельные обвязки вокруг Replicate и Fal - по сути каждый инструмент рано или поздно отращивает свой граф. Сотни команд раз за разом изобретают одну и ту же коробочку с входами и выходами, только каждый заваривает её в несовместимый формат. Итог предсказуем: воркфлоу не воспроизвести, не вскрыть, не перенести. трансляция матча Португалия - Узбекистан
SnarkRoute предлагает другой подход. В центре - не модель и не редактор, а маршрут: читаемый документ с нодами, связями, параметрами, провенансом и экономикой запуска. Такой файл можно переслать, ремикснуть, запустить на другой машине - и он не рассыплется. Под это написан Open Route Protocol, канонический формат .orp с валидацией и DAG-исполнителем.
Что уже работает
BoojumRoute Lab - локальный блочный редактор, собранный на Vite, React и React Flow, с локальным сервером на Fastify и тестами на Vitest. Проект изначально строился как local-first: ключи, ассеты и запуски остаются на машине пользователя, наружу маршрут тянется только при явном обращении к внешнему провайдеру.
- Создание и запуск маршрутов, импорт и экспорт .orp
- DAG-исполнитель с топологической сортировкой и ловлей циклов
- Установка .snarknode и drag-and-drop импорт нод
- Встроенные ноды: текст, файлы, картинки, видео, шаблоны, превью, вывод
- Provider-neutral Model Gateway - адаптеры для Replicate, Gemini, OpenRouter
- Локальный ledger запусков с провенансом и учётом экономики
Провайдеры здесь не хозяева, а подключаемые слои. Файл маршрута не хранит секретов и остаётся провайдер-агностичным. Гейтвей умеет прикидывать стоимость запуска по кэшированным каталогам цен - но если данных нет, честно пишет Unknown и не выбирает «самый дешёвый» за пользователя.
Безопасность и экономика - с первого дня
Переносимые ноды, которые можно слать друг другу, - это звучит как рецепт нового небезопасного npm, только для графов. Авторы ответили на этот вопрос архитектурно: никакого исполнения произвольного JavaScript из сторонних пакетов. Ноды сообщества - декларативные манифесты с явными разрешениями. Файлы не тянутся напрямую: маршрут держит AssetRef - ссылку с хешем, а хост сам решает, что с ней делать. Секреты на хост и не уезжают.
Экономические поля - автор, лицензия, доли выручки, валюта, атрибуция - заложены в формат с самого начала, пусть пока и отключены. Это осознанное решение: добить такие поля позже без поломки совместимости практически невозможно. Платежи и сеттлменты в v0.1 не исполняются - только учёт и метаданные. Рубильник есть, он просто опущен.
Проект выходит под лицензией AGPL, репозиторий открыт. В нём даже лежит Codex-скилл для генерации собственных нод - чтобы любой мог собрать и добавить свой кирпич в общую библиотеку. Пока это первый болт в настоящей машине, но направление задано чётко: маршруты как переносимые документы, а не как заложники очередного закрытого острова.