Mintlify заменила RAG на виртуальную файловую систему — и получила ускорение в 460 раз

Mintlify заменила RAG на виртуальную файловую систему ChromaFs и получила 460-кратное ускорение. Разбираем архитектуру и когда этот подход работает.

Обложка: Mintlify заменила RAG на виртуальную файловую систему — и получила ускорение в 460 раз

Если вы строите ИИ-ассистент поверх документации — возможно, RAG вам не нужен. Команда Mintlify заменила RAG на виртуальную файловую систему и получила: загрузку сессии за 100 мс вместо 46 секунд (ускорение в 460 раз), нулевую стоимость вычислений и 30 000+ диалогов в день.

RAG (Retrieval-Augmented Generation) — стандартный подход к построению ИИ-ассистентов: нарезать документацию на чанки, сохранить эмбеддинги в векторную базу, искать top-K релевантных фрагментов по запросу. Но у него есть фундаментальное ограничение: агент видит только те фрагменты, которые совпали с запросом. Если ответ распределён по нескольким страницам или пользователю нужен точный синтаксис — RAG буксует.

Ключевые выводы
  • Mintlify заменила RAG на ChromaFs — виртуальную ФС поверх Chroma DB
  • Время создания сессии: 46 сек → 100 мс (460x быстрее)
  • Стоимость на диалог: $0,0137 → $0 (используется существующая инфраструктура)
  • Агент работает через grep, cat, ls, find — как с обычной файловой системой
  • Встроенный RBAC: контроль доступа без Linux-прав и chmod
  • 30 000+ диалогов в день на существующей инфраструктуре

Проблема: песочницы медленные и дорогие

Очевидный способ дать агенту файловую систему — развернуть контейнер и склонировать репозиторий. Mintlify так и делала для фоновых задач, но для фронтенд-ассистента, где пользователь смотрит на спиннер, подход не работал:

  • P90 время создания сессии: ~46 секунд (включая клонирование с GitHub)
  • Стоимость: при 850 000 диалогов в месяц даже минимальная конфигурация (1 vCPU, 2 ГБ RAM, 5-минутный TTL) обошлась бы в $70 000+/год
  • Каждому пользователю нужен отдельный контейнер, иначе агенты видят чужие данные

Решение: ChromaFs — виртуальная ФС поверх Chroma

Агенту не нужна настоящая файловая система — ему нужна иллюзия файловой системы. Документация Mintlify уже была индексирована и хранилась в Chroma DB для поиска. Команда построила ChromaFs — виртуальную ФС, которая перехватывает UNIX-команды и транслирует их в запросы к Chroma.

ChromaFs построена на just-bash от Vercel Labs — TypeScript-реализации bash, которая поддерживает grep, cat, ls, find и cd. just-bash предоставляет интерфейс IFileSystem — ChromaFs реализует его, транслируя каждый вызов файловой системы в запрос к Chroma.

Как это работает

Дерево файлов из базы данных

При инициализации ChromaFs загружает сжатый JSON-документ с деревом путей из Chroma-коллекции и разворачивает его в две структуры в памяти: множество путей файлов и маппинг директорий на дочерние элементы. После этого ls, cd и find работают из памяти без сетевых запросов.

Сборка страниц из чанков

Страницы в Chroma разбиты на чанки для эмбеддингов. Когда агент выполняет cat /auth/oauth.mdx, ChromaFs находит все чанки с подходящим slug, сортирует по индексу и склеивает в полную страницу. Результаты кешируются — повторные чтения не обращаются к базе.

Оптимизация grep

Рекурсивный grep -r по всем файлам через сеть был бы слишком медленным. ChromaFs перехватывает команду, парсит флаги и транслирует поиск в запрос к Chroma ($contains для фиксированных строк, $regex для паттернов). Chroma выступает грубым фильтром — определяет, в каких файлах может быть совпадение. Эти чанки загружаются в Redis-кеш, и уже из него just-bash выполняет точный поиск в памяти.

Контроль доступа (RBAC)

Каждый путь в дереве файлов имеет флаги доступа: isPublic и groups. Перед построением дерева ChromaFs фильтрует пути по токену сессии пользователя. Если у пользователя нет доступа к файлу — файл полностью исключается из дерева. Агент не может даже узнать о его существовании.

В настоящей песочнице такой контроль потребовал бы управления Linux-группами, chmod-правами или отдельных контейнеров для каждого тарифа. В ChromaFs — это несколько строк фильтрации.

Результаты

  • P90 время создания сессии: ~46 секунд → ~100 мс (460x быстрее)
  • Стоимость на диалог: ~$0,0137 → ~$0
  • Масштаб: 30 000+ диалогов в день на существующей инфраструктуре
  • Запись заблокирована: все операции записи возвращают EROFS — агент не может модифицировать документацию, система полностью stateless

Когда это работает, а когда нет

Подход Mintlify работает для структурированной документации, где каждая страница — файл, а каждый раздел — директория. Агент использует привычные UNIX-примитивы (grep, cat, find), и ему не нужно учиться новому API.

Ограничения:

  • Нужна уже индексированная и чанкованная документация в векторной базе
  • Не подходит для задач, где агенту нужно модифицировать файлы (виртуальная ФС read-only)
  • Для неструктурированных данных (чаты, тикеты, логи) RAG может быть эффективнее
  • Зависимость от качества чанкирования — плохое разбиение = плохие результаты cat
Часто задаваемые вопросы
1
Что такое ChromaFs и зачем она нужна?

ChromaFs — виртуальная файловая система, которую Mintlify построила поверх базы данных Chroma. Она позволяет ИИ-агенту работать с документацией через стандартные UNIX-команды (grep, cat, ls, find), вместо того чтобы полагаться на RAG-поиск по эмбеддингам.

2
Почему Mintlify отказалась от RAG?

RAG возвращает только фрагменты, совпавшие с запросом. Если ответ распределён по нескольким страницам или пользователю нужен точный синтаксис — RAG не справляется. Виртуальная ФС позволяет агенту исследовать документацию так же, как разработчик исследует кодовую базу.

3
Можно ли применить этот подход к своей документации?

Да, если ваша документация уже индексирована в векторной базе (Chroma, Pinecone, Weaviate). Нужно реализовать IFileSystem-интерфейс, который транслирует файловые операции в запросы к вашей базе. ChromaFs построена на open-source библиотеке just-bash от Vercel Labs.

4
460x быстрее — это реальная цифра?

Да. P90 время создания сессии упало с ~46 секунд (контейнер + клонирование GitHub) до ~100 миллисекунд (загрузка дерева файлов из кеша). Это именно время инициализации, не скорость ответов агента.

Выводы

Подход Mintlify показывает важный тренд: для структурированных данных агентам не нужны сложные RAG-пайплайны — достаточно привычного интерфейса файловой системы. Когда ваши данные уже в базе, виртуальная ФС может быть быстрее, дешевле и понятнее для агента, чем векторный поиск. Особенно если агент уже умеет работать с grep и cat.

Источник: Mintlify — How we built a virtual filesystem for our Assistant