Vibe Analyzer: что нового
OpenSearch:
🚀 Три индекса на проект: meta, files, analysis
⚡ Bulk-операции и Scroll API — загрузка 643 файлов за секунды
🎯 Nested-маппинги для AST — поиск по функциям, классам, импортам
🔒 BLAKE3-хеши для каждого файла — основа инкремента
Инкрементальная индексация:
⏱️ 15-100x ускорение — индексируются только изменившиеся файлы
💾 Проверка по хешам через OpenSearch
🔧
📄 Экспорт AST или AST+LLM — готовый контекст для бесплатных чатов
CLI поиск:
🎯 Path (5.0) > Tags (5.0) > Functions (3.0) > Comments (2.0)
⚡ 0.1 секунда на поиск по 2+ проектам
Стабильность на 3B:
✅ 600 файла за ~3 минуты на
🧠 Умные промпты с шаблонами — модель следует указаниям
🔄 Ретраи и восстановление кривых JSON
🚫 Побеждены дедлоки —
Следующие шаги:
👉 Расширение CLI поиска (meta, file, get, stats)
👉 MCP сервер для AI-ассистентов
👉 Docker (образ и docker-compose)
👉 Документация по конфигурации и API
🔗 https://gitcode.com/keygenqt_vz/vibe-analyzer
OpenSearch:
🚀 Три индекса на проект: meta, files, analysis
⚡ Bulk-операции и Scroll API — загрузка 643 файлов за секунды
🎯 Nested-маппинги для AST — поиск по функциям, классам, импортам
🔒 BLAKE3-хеши для каждого файла — основа инкремента
Инкрементальная индексация:
⏱️ 15-100x ускорение — индексируются только изменившиеся файлы
💾 Проверка по хешам через OpenSearch
🔧
--force для полной переиндексации когда нужно📄 Экспорт AST или AST+LLM — готовый контекст для бесплатных чатов
CLI поиск:
search ast UserService — поиск по коду с умными бустами🎯 Path (5.0) > Tags (5.0) > Functions (3.0) > Comments (2.0)
⚡ 0.1 секунда на поиск по 2+ проектам
Стабильность на 3B:
✅ 600 файла за ~3 минуты на
qwen2.5-coder:3b🧠 Умные промпты с шаблонами — модель следует указаниям
🔄 Ретраи и восстановление кривых JSON
🚫 Побеждены дедлоки —
FuturesUnordered + атомарные флагиСледующие шаги:
👉 Расширение CLI поиска (meta, file, get, stats)
👉 MCP сервер для AI-ассистентов
👉 Docker (образ и docker-compose)
👉 Документация по конфигурации и API
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
Пришлось написать небольшой фреймворк для тестирования MCP-инструментов.
Я не смог найти что-то вменяемое и готовое — одни не соблюдают спецификацию, другие просто падают. Альтернатив, которые работают как надо, по сути и нет. Пришлось писать свой на Rust.
Главная задача — контролировать качество ответов моделей при работе с MCP. Сервер и клиент общаются через rmcp (streamable HTTP), тесты вызывают LLM через Ollama и полностью контролируют весь стек запросов.
Теперь каждый запрос можно детально проанализировать и добиться идеального tools, который сможет минимизировать поглощение контекста моделями.
RAG не должен зависеть от размера оперативной памяти.
Я не смог найти что-то вменяемое и готовое — одни не соблюдают спецификацию, другие просто падают. Альтернатив, которые работают как надо, по сути и нет. Пришлось писать свой на Rust.
Главная задача — контролировать качество ответов моделей при работе с MCP. Сервер и клиент общаются через rmcp (streamable HTTP), тесты вызывают LLM через Ollama и полностью контролируют весь стек запросов.
Теперь каждый запрос можно детально проанализировать и добиться идеального tools, который сможет минимизировать поглощение контекста моделями.
RAG не должен зависеть от размера оперативной памяти.
🔥5👍3
Vitaliy Zarubin | @keygenqt
Photo
Думаете это было просто?
- Бесконечные циклы: модель вызывала тулсы пока не упрётся в лимит
- Галлюцинации имён: update_index, list_tree, show_structure
- Зависания: модель не понимала когда остановиться
- Путаница с target: null, пустые строки, кривые вызовы
- Утечка контекста: работал только первый запрос
Теперь я понимаю, почему многие MCP проекты работают как работают.
Моё мнение остаётся при мне: модели не способны самостоятельно создавать достойные продукты. Три месяца с ними. Да, они помогают, но финальный эксперт - это человек. Моделям плевать на результат, а человеку - нет.
- Бесконечные циклы: модель вызывала тулсы пока не упрётся в лимит
- Галлюцинации имён: update_index, list_tree, show_structure
- Зависания: модель не понимала когда остановиться
- Путаница с target: null, пустые строки, кривые вызовы
- Утечка контекста: работал только первый запрос
Теперь я понимаю, почему многие MCP проекты работают как работают.
Моё мнение остаётся при мне: модели не способны самостоятельно создавать достойные продукты. Три месяца с ними. Да, они помогают, но финальный эксперт - это человек. Моделям плевать на результат, а человеку - нет.
🔥7
Vitaliy Zarubin | @keygenqt
Думаете это было просто? - Бесконечные циклы: модель вызывала тулсы пока не упрётся в лимит - Галлюцинации имён: update_index, list_tree, show_structure - Зависания: модель не понимала когда остановиться - Путаница с target: null, пустые строки, кривые…
Но если постараться...
🔥7
#fyi А вы знали, что ваша нелюбовь к дебаггерам и мокам — это не каприз, а философия? 🎯
Это называют Классической школой или менталитетом UNIX.
Суть проста:
🔸 Доверяй реальному взаимодействию, а не симуляции.
🔸 Сложность отладки должна заставлять думать, а не жать кнопки.
🔸 Лучше честный лог, чем красивый брейкпойнт.
🔸 Лучше интеграция, чем изоляция.
Такой подход разделяют Линус Торвальдс, Кент Доддс, DHH (создатель Rails), авторы UNIX и многие системные программисты.
А вы в этом лагере или предпочитаете современный комфорт IDE и моков? Классицист или Мокист? =)
Это называют Классической школой или менталитетом UNIX.
Суть проста:
🔸 Доверяй реальному взаимодействию, а не симуляции.
🔸 Сложность отладки должна заставлять думать, а не жать кнопки.
🔸 Лучше честный лог, чем красивый брейкпойнт.
🔸 Лучше интеграция, чем изоляция.
Такой подход разделяют Линус Торвальдс, Кент Доддс, DHH (создатель Rails), авторы UNIX и многие системные программисты.
А вы в этом лагере или предпочитаете современный комфорт IDE и моков? Классицист или Мокист? =)
🔥3👍1💩1
Нашёл подход к моделям. Стабилизация вызова тулов - непростая задача. Чтобы 3B тебя понимала, 7B не выдумывала лишнего, а 14B не упиралась в лимиты по памяти - нужна тонкая настройка MCP-методов, их описания и особая обработка входящих параметров.
Для отладки MCP потребовался собственный тестировочный фреймворк. Он показал себя отлично: все уровни запросов чётко отслеживаются, сценарии выполняются стабильно.
Для отладки MCP потребовался собственный тестировочный фреймворк. Он показал себя отлично: все уровни запросов чётко отслеживаются, сценарии выполняются стабильно.
5🔥7👍3
Vibe Analyzer — MVP готов 🎉
Agentic RAG для кодовых баз и баз знаний. AST-парсинг, LLM-обогащение, индексация в OpenSearch. 11 MCP инструментов дают AI-моделям свободу поиска — они сами решают что искать и как.
Почему Agentic RAG
Классический RAG добавляет найденные документы в промпт — чем больше контекст, тем больше VRAM. Vibe Analyzer возвращает структурированные результаты через инструменты, сохраняя контекст максимально чистым:
- 📉 Минимальный контекст — модель получает только то, что вернул инструмент
- 🧠 Без эмбеддингов — поиск по ключевым словам и AST через OpenSearch
- 🔗 Один вызов = полный ответ, без набивания промпта документами
- ♾️ Контекст остаётся маленьким независимо от размера проекта
Возможности
- 🌳 AST-парсинг для 13 языков
- 💡 Обогащение AST через LLM (описания, теги)
- 📄 Экспорт AST и AST+LLM в JSON, JSON5, TOON, XML
- 📝 Семантический и морфологический поиск по коду и базе знаний
- ⚡ Инкрементальная индексация
- 📦 Самодостаточные инструменты (один вызов — полный ответ)
- 🗂️ Поддержка трёх языков (EN, RU, CN)
- 🦀 Написан на Rust — быстро и экономично по памяти
Все тесты (180 запросов, 3 модели) пройдены успешно. Ещё предстоит поработать над простой доставкой приложения людям, но при желании уже можно попробовать — проект открыт:
🔗 https://gitcode.com/keygenqt_vz/vibe-analyzer
Agentic RAG для кодовых баз и баз знаний. AST-парсинг, LLM-обогащение, индексация в OpenSearch. 11 MCP инструментов дают AI-моделям свободу поиска — они сами решают что искать и как.
Почему Agentic RAG
Классический RAG добавляет найденные документы в промпт — чем больше контекст, тем больше VRAM. Vibe Analyzer возвращает структурированные результаты через инструменты, сохраняя контекст максимально чистым:
- 📉 Минимальный контекст — модель получает только то, что вернул инструмент
- 🧠 Без эмбеддингов — поиск по ключевым словам и AST через OpenSearch
- 🔗 Один вызов = полный ответ, без набивания промпта документами
- ♾️ Контекст остаётся маленьким независимо от размера проекта
Возможности
- 🌳 AST-парсинг для 13 языков
- 💡 Обогащение AST через LLM (описания, теги)
- 📄 Экспорт AST и AST+LLM в JSON, JSON5, TOON, XML
- 📝 Семантический и морфологический поиск по коду и базе знаний
- ⚡ Инкрементальная индексация
- 📦 Самодостаточные инструменты (один вызов — полный ответ)
- 🗂️ Поддержка трёх языков (EN, RU, CN)
- 🦀 Написан на Rust — быстро и экономично по памяти
Все тесты (180 запросов, 3 модели) пройдены успешно. Ещё предстоит поработать над простой доставкой приложения людям, но при желании уже можно попробовать — проект открыт:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍3
От быстрого старта до внутренностей AST-парсинга и MCP-инструментов.
Enjoy.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
vibe-ast 0.0.1
Вынес парсеры AST из vibe-analyzer в отдельный крейт. Теперь это доступная всем библиотека:
🦀 14 парсеров языков, скриптов и Markdown
📦 Единая структура, простое подключение
🏷️ Мультиязычные теги — EN, RU, CN
⚡ Без сети, без БД, без конфигов
🔧 Решена проблема совместимости tree-sitter-грамматик
🔗 https://crates.io/crates/vibe-ast
Вынес парсеры AST из vibe-analyzer в отдельный крейт. Теперь это доступная всем библиотека:
🦀 14 парсеров языков, скриптов и Markdown
📦 Единая структура, простое подключение
🏷️ Мультиязычные теги — EN, RU, CN
⚡ Без сети, без БД, без конфигов
🔧 Решена проблема совместимости tree-sitter-грамматик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
#fyi
Собеседования никогда не работали и не думаю, что будут. Всегда говорю — пишите пэты, они отражают ваши реальные скиллы. А что теперь? Легко можно собрать тулс на базе Vibe Analyzer, который объективно оценит ваш уровень по пэтам. И все эти «напишите сортировку пузырьком» или «кем вы себя видите через 10 лет» — можно отправить в мусорку. Think about it.
Собеседования никогда не работали и не думаю, что будут. Всегда говорю — пишите пэты, они отражают ваши реальные скиллы. А что теперь? Легко можно собрать тулс на базе Vibe Analyzer, который объективно оценит ваш уровень по пэтам. И все эти «напишите сортировку пузырьком» или «кем вы себя видите через 10 лет» — можно отправить в мусорку. Think about it.
1👍4🔥2
vibe-fs 0.0.1
Вынес файловые утилиты из vibe-analyzer в отдельный крейт. Маленький, но важный:
🔍 Рекурсивное сканирование с поддержкой
🔄 Инкрементальное сканирование
🧩 Фильтрация сабмодулей Git
🚫 Дефолтные игноры:
💾 Снапшот в MessagePack:
⚡ BLAKE3 хеширование
🔗 https://crates.io/crates/vibe-fs
Вынес файловые утилиты из vibe-analyzer в отдельный крейт. Маленький, но важный:
🔍 Рекурсивное сканирование с поддержкой
.gitignore🔄 Инкрементальное сканирование
🧩 Фильтрация сабмодулей Git
🚫 Дефолтные игноры:
target, node_modules, .git, *.log💾 Снапшот в MessagePack:
~/.vibe-fs-snapshot⚡ BLAKE3 хеширование
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2👍1
Теперь я знаю еще больше. Я знаю, как там после 40ка. 🎂😅
🎉29😁2
vibe-tests 0.0.1
Тестовый фреймворк для MCP-серверов на Rust. AI-модели решают какие инструменты вызывать по свободному запросу в тесте.
🧠 Agentic-тестирование: LLM вызывает MCP тулы на основе естественного языка
📊 Полный tracing: каждый запрос, tool call, ответ — в структурированном логе
📋 JSON-отчёт: model_response, tool_response, duration_ms, error codes
🐳 Docker изоляция: compose up/down, temp директории, cleanup процессов
🔬 Мульти-модель: один сервер против нескольких LLM одновременно
🔧 Настраиваемый жизненный цикл событий тестирования
📦 Гибкая общая конфигурация для всех тестов MCP
🔗 https://crates.io/crates/vibe-tests
Тестовый фреймворк для MCP-серверов на Rust. AI-модели решают какие инструменты вызывать по свободному запросу в тесте.
🧠 Agentic-тестирование: LLM вызывает MCP тулы на основе естественного языка
📊 Полный tracing: каждый запрос, tool call, ответ — в структурированном логе
📋 JSON-отчёт: model_response, tool_response, duration_ms, error codes
🐳 Docker изоляция: compose up/down, temp директории, cleanup процессов
🔬 Мульти-модель: один сервер против нескольких LLM одновременно
🔧 Настраиваемый жизненный цикл событий тестирования
📦 Гибкая общая конфигурация для всех тестов MCP
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍1
🔥 Vibe Analyzer v0.0.2
Стал быстрее, лучше, удобнее. Разобрал монолит на модульную экосистему — парсинг, файловые операции и тестовый фреймворк стали отдельными крейтами:
📦 vibe-ast — AST-парсинг для 14 языков
📦 vibe-fs — инкрементальное сканирование с BLAKE3
📦 vibe-tests — E2E-тестирование MCP-серверов с реальными LLM
📊 Кодовая база:
👉 -97 файлов (-33%)
👉 -6,854 строк кода (-34%)
👉 -1.67 MB размера проекта (-69%)
🖥 CLI прокачан:
👉
👉
👉 6 форматов экспорта
🔍 Поиск точнее:
👉 Синонимы тегов на 3 языках
👉 wildcard для imports, match_phrase_prefix для variables
👉 search_documentation находит всё с первого раза
⚡ Конфиг v0.0.2:
👉 Новые секции: scan, analyze, export
Основной фокус в обновлении был направлен на оптимизацию кодовой базы для дальнейшего развития.
🔗 https://crates.io/crates/vibe-analyzer
Стал быстрее, лучше, удобнее. Разобрал монолит на модульную экосистему — парсинг, файловые операции и тестовый фреймворк стали отдельными крейтами:
📦 vibe-ast — AST-парсинг для 14 языков
📦 vibe-fs — инкрементальное сканирование с BLAKE3
📦 vibe-tests — E2E-тестирование MCP-серверов с реальными LLM
📊 Кодовая база:
👉 -97 файлов (-33%)
👉 -6,854 строк кода (-34%)
👉 -1.67 MB размера проекта (-69%)
🖥 CLI прокачан:
👉
--config для кастомного конфига👉
-p/--path для прямого сканирования👉 6 форматов экспорта
🔍 Поиск точнее:
👉 Синонимы тегов на 3 языках
👉 wildcard для imports, match_phrase_prefix для variables
👉 search_documentation находит всё с первого раза
⚡ Конфиг v0.0.2:
👉 Новые секции: scan, analyze, export
Основной фокус в обновлении был направлен на оптимизацию кодовой базы для дальнейшего развития.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
#fyi
Знаете что я тут понял? Не правильно говорить «LLM заменят разработчиков», правильно будет «LLM заменят тупых разработчиков». Кто думает что «LLM заменят разработчиков» могут смело продолжать так говорить, пока их еще не заменили.
Знаете что я тут понял? Не правильно говорить «LLM заменят разработчиков», правильно будет «LLM заменят тупых разработчиков». Кто думает что «LLM заменят разработчиков» могут смело продолжать так говорить, пока их еще не заменили.
😁6🤣1