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

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

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

Остров за островом: в чём провал нынешней экосистемы

Проблема не в качестве отдельных инструментов. Проблема в том, что каждый из них - закрытый остров. Сотни команд раз за разом изобретают одну и ту же коробочку с входами и выходами, но заваривают её в собственный несовместимый формат. Пользователь оказывается заложником интерфейса, а не логики процесса. Воркфлоу нельзя вскрыть, нельзя переслать, нельзя воспроизвести на другой машине без танцев с бубном. Эквадор - Германия 25 июня

Именно в эту дыру целится SnarkRoute. Рабочий публичный фрагмент уже живёт как BoojumRoute Lab - локальный блочный редактор маршрутов. Под ним лежит то, ради чего всё и затевалось: Open Route Protocol - переносимый формат для описания AI-, model- и API-воркфлоу. Канонический формат файла - .orp, есть человекочитаемый алиас .route. Внутри - инстансы нод, рёбра, параметры, метаданные провенанса и ссылки на ассеты через AssetRef.

Как это работает: маршрут как главный артефакт

Центральная идея - в смещении фокуса. Не модель, не редактор, а маршрут. Читаемый документ воркфлоу, который можно переслать, ремикснуть и запустить без потерь при переезде. Провайдерских секретов внутри нет - они остаются на хосте. Сырых внешних файлов тоже: вместо них AssetRef со ссылкой, хешем и версией, а хост сам решает, что с этим делать.

Ноды при этом пакуются в формат .snarknode, тащатся в редактор перетаскиванием, складываются в библиотеку и собираются в составные блоки. Несколько нод - цепочка. Цепочка - обратно в одну ноду. Никакого исполнения чужого произвольного JavaScript: ноды сообщества - декларативные манифесты с явными разрешениями, а не «скачали и помолились».

Провайдеры подключаются через provider-neutral Model Gateway - нода зовёт зарегистрированный адаптер, файл маршрута остаётся агностичным. Поддерживаются Replicate, Gemini, OpenRouter и другие. Гейтвей умеет прикидывать стоимость запуска заранее по кэшированным каталогам цен - и честно пишет Unknown, если данных нет, вместо того чтобы выдумывать.

Что уже готово и что заложено на вырост

Проект написан на TypeScript, монорепо на pnpm. BoojumRoute Lab - Vite плюс React Flow, локальный сервер на Fastify, тесты на Vitest. Всё работает в режиме local-first: ключи, запуски и ассеты по умолчанию не покидают машину.

  • Рабочий блочный редактор с импортом и экспортом .orp
  • DAG-движок с топологической сортировкой, ловлей циклов и шаблонными ссылками между нодами
  • Библиотека промптов как первый пример Asset System
  • Встроенные ноды: текст, файлы, картинки, видео, шаблоны, превью, вывод
  • Локальный ledger запусков с провенансом и экономическими метаданными
  • Hash-пиннинг ассетов для воспроизводимых маршрутов

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