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

Что сейчас умеет проект: создавать отчёты в 6 форматах по проектам или базе знаний в Markdown. Отчёт может быть просто выборкой важных деталей или с обогащением — обработкой моделями в кластере этих данных.

Почему важна кластеризация обогащения? Это открывает возможность масштабироваться горизонтально — вам не нужна одна мощная видеокарта. Любой ПК потенциально часть кластера, который ускоряет процесс обогащения.

Что даёт обогащение? Сейчас это дополнительные поисковые теги или описание файла для более релевантного поиска через MCP. Но возможности намного шире.

Обогащения могут быть разными, а это открывает широкие возможности для отчётов по проектам или базам знаний. Получение данных для отчётов — одна из задач, которой я планирую заняться.

Пайплайн может быть следующим: тул, который получает необходимые данные → Vibe Analyzer — центр обработки данных → тул, который строит отчёт в нужном формате.

Идеальный способ создания резюме. Для этого даже не нужен будет соискатель — HR сможет сам понять, стоит ли хантить разработчика =)
🔥3👍2
#article
Agentic RAG на Rust

Как построить Agentic RAG на Rust. Контекст, MCP, OpenSearch, LLM — и что со всем этим делать. Архитектура, тестирование на реальных моделях, защита от галлюцинаций и три крейта в открытом доступе.

🔗 Publication
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥7