Pull to refresh
16K+
-1
Денис@Web_5

Пилим софт 🔧 #боты #проги #код

-0,3
Rating
3
Subscribers
Send message

Голем: как в нём устроен анализ кода

В прошлый раз я рассказал про Голема — кодинг-агента в Telegram. Сейчас хочу показать, что у него под капотом. А именно — как работает анализ кода.

Первая версия была примитивной: весь код летел в LLM, та читала и выдавала вердикт. Работало паршиво. LLM галлюцинировала про «обрезанные функции», жрала токены как не в себя, а если проект был больше пары файлов — просто захлёбывалась.

Нужно было что-то менять.

Гибридный анализ: четыре утилиты вместо одной LLM

Теперь перед тем, как отдать код модели, его прогоняют четыре статических анализатора:

bandit, ruff, semgrep, pip_audit = await asyncio.gather(
    run_bandit(project_dir),      # безопасность
    run_ruff(project_dir),        # стиль и баги
    run_semgrep(project_dir),     # глубокий анализ
    run_pip_audit(project_dir)    # зависимости
)

Каждая утилита отвечает за свою область:

  • Bandit ищет уязвимости безопасности: SQL-инъекции, использование eval(), хардкод паролей.

  • Ruff проверяет стиль и очевидные ошибки: неиспользуемые импорты, синтаксис, голые except.

  • Semgrep находит сложные паттерны: XSS, утечки данных, опасную десериализацию.

  • pip-audit сверяет зависимости с базой CVE и сообщает о дырявых пакетах.

Все четыре запускаются параллельно через asyncio.gather. На проекте среднего размера это занимает 10-15 секунд вместо 40-50 при последовательном запуске.

LLM получает только проблемные строки

Раньше модель получала первые 1000 символов из каждого файла. Это приводило к двум проблемам: дикий перерасход токенов и галлюцинации. LLM видела обрывок функции и думала, что код незавершённый.

Теперь всё иначе. Анализаторы возвращают конкретные проблемные строки, и модель получает только их с контекстом в 3-4 строки вокруг:

# main.py:42 — Bandit HIGH
query = f"SELECT * FROM users WHERE id = {user_input}"  # SQL-инъекция

Результат:

  • Расход токенов сократился в 10 раз.

  • Галлюцинации про «незавершённый код» исчезли полностью.

  • Анализ работает одинаково быстро на проекте из 10 файлов и из 500.

Асинхронный режим

ZIP-архивы и GitHub-репозитории анализируются в фоне. Пользователь отправляет файл и сразу получает ответ «анализ запущен», а результат приходит отдельным сообщением через минуту-две. Бот не висит, можно продолжать с ним работать.

asyncio.create_task(
    _analyze_directory_async(context, temp_dir, source, llm, user_id)
)
await update.message.reply_text("🔍 Анализ запущен в фоне")

Что дальше

Сейчас Голем умеет анализировать только Python-проекты. В ближайших планах:

  • Поддержка JavaScript/TypeScript (ESLint + npm audit)

  • Поддержка Go (golangci-lint + govulncheck)

  • Поддержка Rust (clipp +cargo-audit )

Также хочу добавить команду /fix — автоматическое исправление проблем, которые находит Ruff. Часть ошибок можно починить без участия человека, и Голем будет делать это сам.

Попробовать

Бот живёт в Telegram: @Golem666bot
Там же можно посмотреть другие проекты и следить за разработкой: @system_develope

Tags:
+1
Comments0

Как я научил Telegram-бота помнить то, что LLM положено забывать

LLM по своей природе — без памяти. Каждый новый диалог с ChatGPT, Claude или DeepSeek начинается с чистого листа. Разработчики пытаются решать это костылём: запихивают в контекст последние N сообщений.

Но это не память. Это дорогое, конечное и очень прожорливое контекстное окно. Хранить всю историю — разоришься на токенах. Учить модель на лету — пока фантастика.

Поэтому я сделал по-другому.

Встречайте: настоящая долговременная память для Golem (В том виде, в каком она нужна кодинг-агенту)

Теперь мой кодинг-агент умеет сохранять только важное — факты о ваших проектах, привычках, договорённостях и запретах. Не всю переписку, а ровно то, что вы сами решите запомнить навсегда.

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

  • /remember текст — Golem сохраняет факт в SQLite

  • /recall — показывает все ваши заметки

  • /forget ID — удаляет ненужное

Заметки автоматически подгружаются в начало каждого запроса, работают в любой сессии и переживают перезапуски бота. Никакой магии — просто грамотная архитектура.

Реальные примеры из жизни:

Вы пишете: /remember Я работаю над проектом X на Django + PostgreSQL. Никогда не предлагай MongoDB.

Через неделю спрашиваете: «Как оптимизировать запросы?» — Golem сразу учитывает стек и не несёт чушь про NoSQL.

Или: /remember Голем, не отвечай на вопросы про погоду. Это тупо.

Теперь на «какая погода?» он спокойно посылает вас в Google и не жрёт токены.

Это сильно круче простого увеличения контекста: вы сами решаете, что важно, а что — мусор.

Хотите видеть, как я дальше развиваю память (векторный поиск, автоматическое извлечение фактов и другие смелые эксперименты, которые я обкатываю прямо сейчас)?

→ Подписывайся на основной канал «СИСТЕМА»

Там я показываю внутреннюю кухню разработки Golem, полные архитектурные разборы и то, что обычно не выношу на Хабр.

Где потрогать бота прямо сейчас: https://t.me/Golem666bot

Пробуйте, ломайте, кидайте в комментариях:

  • Какие факты вы бы хотели, чтобы бот помнил о вас?

  • Каких ещё фич не хватает идеальному AI-ассистенту?

Жду ваших кейсов и идей — лучшие разберём вместе с Golem.

Tags:
-9
Comments2

Golem хамоватый кодинг агент в Telegram

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

Это и есть Golem 666 — мой Telegram-бот, который анализирует код жёстко, без соплей и политкорректности.

Сейчас он уже умеет:

  • Пожирать проекты в .zip и анализировать их

  • Искать баги, уязвимости и архитектурные косяки

  • Давать конкретные рекомендации по исправлению

  • Работать в стриминговом режиме (сообщения приходят по мере генерации)

  • Сам постить отчёты в свой Telegram-канал

  • Ну и конечно пишет скрипт по запросу

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

В ближайших планах:

  • Автоматическое создание репозитория на GitHub

  • Автодеплой после успешного ревью кода

Если вам тоже иногда хочется, чтобы кто-то жёстко и по делу сказал, то можете пообщаться с Големом.
В своем канале я рассказываю о разработке своих ботов более подробно и без цензуры.))

Кто уже попробовал подобных агентов — поделитесь в комментариях, насколько они у вас живые и наглые. Интересно сравнить.

#python #ai #telegram #coding #golem

Tags:
Total votes 5: ↑0 and ↓5-5
Comments7

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity

Specialization

Фулстек разработчик