惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
CXSECURITY Database RSS Feed - CXSecurity.com
L
LINUX DO - 热门话题
S
Secure Thoughts
TaoSecurity Blog
TaoSecurity Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
T
Threat Research - Cisco Blogs
AI
AI
B
Blog RSS Feed
S
Schneier on Security
雷峰网
雷峰网
Schneier on Security
Schneier on Security
Help Net Security
Help Net Security
Cloudbric
Cloudbric
L
LINUX DO - 最新话题
罗磊的独立博客
有赞技术团队
有赞技术团队
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Apple Machine Learning Research
Apple Machine Learning Research
P
Proofpoint News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
The Hacker News
The Hacker News
博客园 - Franky
Attack and Defense Labs
Attack and Defense Labs
The Cloudflare Blog
Webroot Blog
Webroot Blog
Last Week in AI
Last Week in AI
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - 叶小钗
美团技术团队
L
Lohrmann on Cybersecurity
T
The Blog of Author Tim Ferriss
The Last Watchdog
The Last Watchdog
T
Troy Hunt's Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Vercel News
Vercel News
Know Your Adversary
Know Your Adversary
O
OpenAI News
博客园 - 【当耐特】
Hacker News - Newest:
Hacker News - Newest: "LLM"
C
Cybersecurity and Infrastructure Security Agency CISA
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
PCI Perspectives
PCI Perspectives
H
Heimdal Security Blog
I
InfoQ
GbyAI
GbyAI
T
Threatpost
C
Cisco Blogs

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Я хотел оживить голема, но получил галлюцинирующего идиота
Web_5 · 2026-04-23 · via Все публикации подряд на Хабре

В игре Warcraft есть такая тварь — железный голем. Здоровенная кукла, слепленная из глины и металла, которую оживляют магическим словом. Тупой, но мощный исполнитель. Сказали бить — бьёт. Сказали охранять — стоит насмерть.

Я захотел такого же, но в коде.

Телом пусть будет Telegram-бот. А мозгом — нейросеть. Не просто очередной «чат с ИИ», а настоящий кодинг-агент. Чтобы кидаешь ему проект, а он: «Тут у тебя SQL-инъекция, тут гонка данных, тут ты импорт забыл, и вообще у тебя в зависимостях дыра». Идея казалась простой: берём aiogram, прикручиваем DeepSeek, пишем промпт «ты senior-разработчик, разбери этот код» — и готово.

Первая версия была готова за вечер.

Я кинул Голему свой проект. Он задумался на пару секунд и выдал:

«Твой код обрывается. Похоже, ты прислал неполный файл. Я не могу его проанализировать».

Я перепроверил. Файл был полный.

Кинул другой проект. Ответ:

«Интересный фрагмент, но он заканчивается на середине функции. Пришли весь код».

Чёрт подери!!!!

Я сидел и смотрел на этот ответ минут пять. Нейросеть буквально говорила мне, что я идиот, который не умеет копировать файлы. Хотя проблема была в ней самой.

LLM не умеют читать большие объёмы кода. У них есть контекстное окно — как короткая память у рыбки. Они дочитывают до какого-то момента, теряют нить, и им кажется, что текст оборвался. А на самом деле они просто не дошли до конца.

И вот тут я понял: просто «мозг» в «теле» — это не голем. Это говорящая голова на палке. Она не видит проект целиком, не понимает его структуру, не знает, где реальные проблемы, а где просто странный нейминг.

Чтобы оживить голема по-настоящему, ему нужны были глаза.

Тогда и родилась идея «гибрида».

Сначала я попробовал запускать линтеры последовательно:

# Первая версия гибрида — тупая и медленная
bandit_result = await run_bandit(project_dir)  # безопасность
ruff_result = await run_ruff(project_dir)      # стиль и баги
pip_audit_result = await run_pip_audit(project_dir)  # уязвимости в зависимостях

# Собираем всё в одну кучу и шлём в LLM
context = f"""
Bandit нашёл: {bandit_result}
Ruff нашёл: {ruff_result}
pip-audit нашёл: {pip_audit_result}
"""
response = llm.ask(context)

Работало. Но медленно. Каждый линтер ждал предыдущего, а проект мог быть большим. Я сидел и смотрел на экран как дебил, пока Bandit копался в коде.

Переписал:

# Параллельный запуск — глаза открываются одновременно
bandit_result, ruff_result, pip_audit_result = await asyncio.gather(
    run_bandit(project_dir),
    run_ruff(project_dir),
    run_pip_audit(project_dir)
)

Все три тулзы отрабатывают одновременно.  Но и это было не идеально. Линтеры выдают портянку — сотни строк в своём формате. Если скормить всё это LLM, она снова начинает тупить. Тогда я добавил фильтр:

# Оставляем только проблемные строки с контекстом
def extract_issues(bandit_result, ruff_result, pip_audit_result):
    issues = []
    
    for issue in bandit_result.get("results", []):
        issues.append({
            "file": issue["filename"],
            "line": issue["line_number"],
            "severity": issue["issue_severity"],
            "problem": issue["issue_text"],
            "code": issue.get("code", "")
        })
    
    for issue in ruff_result.get("results", []):
        issues.append({
            "file": issue["filename"],
            "line": issue["line"],
            "severity": "medium",
            "problem": issue["message"],
            "code": issue.get("rule", "")
        })
    
    return issues[:30]  # Не больше 30 проблем — остальное мусор

И только эти выжимки летят в LLM:

main.py:42 — Bandit HIGH — Possible SQL injection
auth/login.py:15 — Ruff medium — Unused import 'os'
requirements.txt — pip-audit CRITICAL — CVE-2024-1234 in package xyz==1.2.3

Нейросеть получает сжатый набор фактов, а не гору кода. И выдаёт читаемый отчёт: где проблема, почему критично, как исправить.

Вот так Голем обрёл зрение. А потом я захотел, чтобы он ещё и действовал.

Когда Голем начал выдавать вменяемые отчёты, я выдохнул. Но радость была недолгой. Потому что я смотрел на эти отчёты и думал: «Ок, он нашёл 15 проблем. А исправлять кто будет? Я?»

Ну уж нет.

Ruff — он не только находит проблемы, но и умеет их автоматически исправлять. Правда, не все. Но то, что умеет — делает молча и быстро. Осталось только научить Голема запускать эту магию по команде.

Так появился /fix.

# /fix — запуск автоисправления через Ruff
async def fix_project(project_dir: str):
    proc = await asyncio.create_subprocess_exec(
        "ruff", "check", project_dir, "--fix",
        stdout=asyncio.subprocess.PIPE,
        stderr=asyncio.subprocess.PIPE
    )
    stdout, stderr = await proc.communicate()
    
    if proc.returncode == 0:
        # Показываем, что изменилось
        diff = await get_diff(project_dir)
        return diff
    else:
        return f"Ошибка: {stderr.decode()}"

Юзер жмёт /fix — Ruff проходится по проекту и молча правит что может: неиспользуемые импорты, кривой синтаксис, нарушение стиля. А Голем показывает дифф:

Минус одна проблема. Минус одна строчка в отчёте. Красота.

Но не всё так радужно. Ruff чинит только свои замечания. Уязвимости безопасности от Bandit он не трогает. Дыры в зависимостях от pip-audit — тоже. Поэтому /fix — это не панацея, а первый шаг. Дальше — руками или головой.

И вот когда база для Python устаканилась, я подумал: «А почему только Python?»

Голем учит Go

В моём канале как раз прошло голосование. Народ хотел Go.

Для Go свой набор инструментов:

# Go-линтеры: gosec (безопасность) и staticcheck (стиль и баги)
gosec_result, staticcheck_result = await asyncio.gather(
    run_gosec(project_dir),
    run_staticcheck(project_dir)
)

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

Архитектура та же: параллельный запуск → сбор проблемных строк → фильтр → LLM → читаемый отчёт.

И когда я первый раз прогнал через Голема urfave/cli — библиотеку с 22 тысячами звёзд на GitHub — он нашёл 14 проблем безопасности и 2 косяка в стиле за пару минут. 

Но знаете что? Это всё ещё не «крутой кодинг-агент», о котором я думал в начале. Это полезный инструмент, да. Но до настоящего голема — автономного, помнящего, самообучающегося — ещё далеко.

Голем 1.0 — это только начало

То, что работает сейчас — это набор разрозненных инструментов, собранных в одного бота:

  • /analyze — гибридный разбор Python и Go

  • /fix — автоисправление части проблем через Ruff

  • /github_push — заливка на GitHub

  • Общение — ответы на вопросы про код

Выглядит неплохо. Но технически это просто разные функции и голем сам не видит картину в целом.

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

Память и самосознание. Появятся две таблицы в SQLite — agent_memory (что Голем знает о себе и своих возможностях) и agent_actions (журнал всех действий и решений). Это даст ему контекст. Он будет помнить, что делал минуту, час или неделю назад, и сможет использовать этот опыт.

Восприятие. Через Telegram API Голем начнёт собирать объективные данные о своей работе: какие возможности востребованы, как часто к нему обращаются и с какими задачами, какие его ответы вызывают реакцию, а какие — нет.

Мотив. Вся эта информация будет собираться не ради отчётов, а чтобы дать Голему возможность действовать осознанно. Его главная внутренняя цель — становиться полезнее и совершеннее. Имея данные, он сможет сам определять: «Вот здесь я справляюсь плохо, надо усилить это направление», или «Этой фичей пользуются чаще всего, значит, её нужно развивать в первую очередь». Или в чат ему юзеры пишут типо " А вот круто было если бы ты умел деплоить проекты сразу на сервер.." И Голем задумается над этим и возможно перепишет свой код)))

Замкнутый цикл. Так мы приходим к замкнутому циклу эволюции. Голем видит результат своих действий, анализирует его и предлагает конкретные технические улучшения в своей архитектуре и коде. Он уже сейчас анализирует Python и Go. v2 будет способен анализировать и улучшать самого себя.

Вот так задумывался настоящий Голем. Не просто ещё один бот с командами, а автономная единица, способная к саморазвитию.

Бот @Golem666bot работает прямо сейчас. Кидайте ссылки на репозитории, тестируйте анализ.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

0%Добавить язык (RUST или avaScript / TypeScript)0

50%Автодеплой проектов2

50%Код-ревью2

Проголосовали 4 пользователя. Воздержался 1 пользователь.