Vitaliy Zarubin | @keygenqt
460 subscribers
1.13K photos
283 videos
3 files
588 links
Привет! Я инженер-программист компании ОМП. За свою карьеру я сменил много платформ и языков, и продолжаю учить новые. На канале рассказываю о своей работе и моих pet-проектах.
Download Telegram
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

🔗 https://gitcode.com/keygenqt_vz/vibe-analyzer
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
OpenSearch готов - расчехляем свои знания по Axum для MCP.
🔥7
MCP (Streamable HTTP) - готов. Это было просто. Отладка сложнее. Цель: добиться стабильной работы на 3B, тогда все остальные B тоже смогут.
🔥6
Пришлось написать небольшой фреймворк для тестирования MCP-инструментов.

Я не смог найти что-то вменяемое и готовое — одни не соблюдают спецификацию, другие просто падают. Альтернатив, которые работают как надо, по сути и нет. Пришлось писать свой на Rust.

Главная задача — контролировать качество ответов моделей при работе с MCP. Сервер и клиент общаются через rmcp (streamable HTTP), тесты вызывают LLM через Ollama и полностью контролируют весь стек запросов.

Теперь каждый запрос можно детально проанализировать и добиться идеального tools, который сможет минимизировать поглощение контекста моделями.

RAG не должен зависеть от размера оперативной памяти.
🔥5👍3
Vitaliy Zarubin | @keygenqt
Photo
Думаете это было просто?

- Бесконечные циклы: модель вызывала тулсы пока не упрётся в лимит
- Галлюцинации имён: update_index, list_tree, show_structure
- Зависания: модель не понимала когда остановиться
- Путаница с target: null, пустые строки, кривые вызовы
- Утечка контекста: работал только первый запрос

Теперь я понимаю, почему многие MCP проекты работают как работают.

Моё мнение остаётся при мне: модели не способны самостоятельно создавать достойные продукты. Три месяца с ними. Да, они помогают, но финальный эксперт - это человек. Моделям плевать на результат, а человеку - нет.
🔥7
#fyi А вы знали, что ваша нелюбовь к дебаггерам и мокам — это не каприз, а философия? 🎯

Это называют Классической школой или менталитетом UNIX.

Суть проста:
🔸 Доверяй реальному взаимодействию, а не симуляции.
🔸 Сложность отладки должна заставлять думать, а не жать кнопки.
🔸 Лучше честный лог, чем красивый брейкпойнт.
🔸 Лучше интеграция, чем изоляция.

Такой подход разделяют Линус Торвальдс, Кент Доддс, DHH (создатель Rails), авторы UNIX и многие системные программисты.

А вы в этом лагере или предпочитаете современный комфорт IDE и моков? Классицист или Мокист? =)
🔥3👍1💩1
Нашёл подход к моделям. Стабилизация вызова тулов - непростая задача. Чтобы 3B тебя понимала, 7B не выдумывала лишнего, а 14B не упиралась в лимиты по памяти - нужна тонкая настройка MCP-методов, их описания и особая обработка входящих параметров.

Для отладки MCP потребовался собственный тестировочный фреймворк. Он показал себя отлично: все уровни запросов чётко отслеживаются, сценарии выполняются стабильно.
5🔥7👍3
Vibe AnalyzerMVP готов 🎉

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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12
Сначала дизайн, потом контент. Документация Vibe Analyzer в процессе.
🔥7
📕 Документация Vibe Analyzer готова!

От быстрого старта до внутренностей AST-парсинга и MCP-инструментов.

🔗 https://vibe-analyzer.keygenqt.com

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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
#fyi
Собеседования никогда не работали и не думаю, что будут. Всегда говорю — пишите пэты, они отражают ваши реальные скиллы. А что теперь? Легко можно собрать тулс на базе Vibe Analyzer, который объективно оценит ваш уровень по пэтам. И все эти «напишите сортировку пузырьком» или «кем вы себя видите через 10 лет» — можно отправить в мусорку. Think about it.
1👍4🔥2
vibe-fs 0.0.1

Вынес файловые утилиты из vibe-analyzer в отдельный крейт. Маленький, но важный:

🔍 Рекурсивное сканирование с поддержкой .gitignore
🔄 Инкрементальное сканирование
🧩 Фильтрация сабмодулей Git
🚫 Дефолтные игноры: target, node_modules, .git, *.log
💾 Снапшот в MessagePack: ~/.vibe-fs-snapshot
BLAKE3 хеширование

🔗 https://crates.io/crates/vibe-fs
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍1
С Днём Победы! Мирного неба, уважения к истории и гордости за наших дедов.
1👍13🕊2🤣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 прокачан:
👉 --config для кастомного конфига
👉 -p/--path для прямого сканирования
👉 6 форматов экспорта

🔍 Поиск точнее:
👉 Синонимы тегов на 3 языках
👉 wildcard для imports, match_phrase_prefix для variables
👉 search_documentation находит всё с первого раза

Конфиг v0.0.2:
👉 Новые секции: scan, analyze, export

Основной фокус в обновлении был направлен на оптимизацию кодовой базы для дальнейшего развития.

🔗 https://crates.io/crates/vibe-analyzer
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
#fyi
Знаете что я тут понял? Не правильно говорить «LLM заменят разработчиков», правильно будет «LLM заменят тупых разработчиков». Кто думает что «LLM заменят разработчиков» могут смело продолжать так говорить, пока их еще не заменили.
😁6🤣1