Mintlify заменила RAG на виртуальную файловую систему — и получила ускорение в 460 раз
Mintlify заменила RAG на виртуальную файловую систему ChromaFs и получила 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
Часто задаваемые вопросы
Что такое ChromaFs и зачем она нужна?
ChromaFs — виртуальная файловая система, которую Mintlify построила поверх базы данных Chroma. Она позволяет ИИ-агенту работать с документацией через стандартные UNIX-команды (grep, cat, ls, find), вместо того чтобы полагаться на RAG-поиск по эмбеддингам.
Почему Mintlify отказалась от RAG?
RAG возвращает только фрагменты, совпавшие с запросом. Если ответ распределён по нескольким страницам или пользователю нужен точный синтаксис — RAG не справляется. Виртуальная ФС позволяет агенту исследовать документацию так же, как разработчик исследует кодовую базу.
Можно ли применить этот подход к своей документации?
Да, если ваша документация уже индексирована в векторной базе (Chroma, Pinecone, Weaviate). Нужно реализовать IFileSystem-интерфейс, который транслирует файловые операции в запросы к вашей базе. ChromaFs построена на open-source библиотеке just-bash от Vercel Labs.
460x быстрее — это реальная цифра?
Да. P90 время создания сессии упало с ~46 секунд (контейнер + клонирование GitHub) до ~100 миллисекунд (загрузка дерева файлов из кеша). Это именно время инициализации, не скорость ответов агента.
Выводы
Подход Mintlify показывает важный тренд: для структурированных данных агентам не нужны сложные RAG-пайплайны — достаточно привычного интерфейса файловой системы. Когда ваши данные уже в базе, виртуальная ФС может быть быстрее, дешевле и понятнее для агента, чем векторный поиск. Особенно если агент уже умеет работать с grep и cat.
Источник: Mintlify — How we built a virtual filesystem for our Assistant