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

推荐订阅源

Google Online Security Blog
Google Online Security Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Stack Overflow Blog
Stack Overflow Blog
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
Martin Fowler
Martin Fowler
腾讯CDC
C
CERT Recently Published Vulnerability Notes
博客园 - 聂微东
L
LINUX DO - 热门话题
Y
Y Combinator Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Security Blog
Microsoft Security Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
WordPress大学
WordPress大学
C
Cisco Blogs
A
Arctic Wolf
Latest news
Latest news
Jina AI
Jina AI
P
Proofpoint News Feed
博客园 - 叶小钗
Vercel News
Vercel News
T
Threat Research - Cisco Blogs
博客园 - 三生石上(FineUI控件)
K
Kaspersky official blog
C
Check Point Blog
H
Heimdal Security Blog
博客园 - Franky
小众软件
小众软件
The Register - Security
The Register - Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google DeepMind News
Google DeepMind News
AWS News Blog
AWS News Blog
The Hacker News
The Hacker News
T
The Exploit Database - CXSecurity.com
aimingoo的专栏
aimingoo的专栏
Project Zero
Project Zero
G
GRAHAM CLULEY
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Scott Helme
Scott Helme
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
NISL@THU
NISL@THU

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

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет 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 миллионов точек без потерь
Как я поднял сервис через LLM, ничего не настраивая, и стал не архитектором сетей, а параноиком
Spyman · 2026-05-05 · via Все публикации подряд на Хабре

«Не знаю языка, не написал ни строчки кода, я архитектор» — всё чаще попадаются такие статьи. Даже на Хабре в комментариях встречаются люди, которые недоумевают, за что такие статьи огребают минусы. Хочу рассказать на примере своего опыта, в чем неправ вайбкодер, делающий такие выводы. Получилось многовато текста. Для llm сокращятелей и тех кому лень читать - поднимал сервис через llm в области знаний где я профан, он ломался экзотическими (наверное) способами после каждой итерации, теперь он вроде работает но может и нет - ответить на это я не могу потому что недостаточно экспертизы.

Обо мне: я Android-разработчик со стажем более 10 лет. У меня есть несколько домашних pet-проектов под Android, которые были созданы как полностью вручную, так и с полной генерацией, в режиме yolo, иногда даже не глядя. Но вот познания в системном администрировании у меня весьма ограниченные. Я, конечно, смогу настроить Docker-контейнер по инструкции и даже не перепутаю маскировку трафика с обфускацией, но большая часть знаний, которые у меня есть, получена из развлекательных видео о сетях на канале небезызвестного Дмитрия Бачило. Поэтому с точки зрения настройки сетей я как раз выступаю тем человеком, который до этого «не писал ни строчки кода».

О решаемой задаче: исторически сложилось, что у меня есть три разные VPN-сети, все внутри страны, на разных технологиях, для подключения к разным локациям и собственным сервисам. Мне хотелось как-нибудь получить единую точку отказа/взлома входа с висящим на ней демоном мониторинга, который будет стучаться в разные сети и собирать информацию о работе сервисов. Правильным решением, наверное, было бы объединить всё это в единую адекватную сеть на одной технологии, но есть масса причин, почему я не хочу этим заниматься. Наверное про конкретику этого сетевого безобразия можно написать еще одну статью, но тут нам дальнейшие подробности не важны.

В общем, одним прекрасным днём я пришёл к идее: сисадмина для настройки сети я, конечно, нанимать не планирую, сам я вопрос буду изучать ещё года два, чтобы въехать на должном уровне, а при таких затратах оно мне уже и не нужно. Но есть же LLM-агент, который вполне подойдёт для решения задачи в роли сисадмина.

Да-да, я прекрасно осознавал, что может получиться дыра в безопасности, портал призыва демонов или сервер крутящий 24/7 рикролл на интернет радио - ведро со святой водой чтобы залить им сервер в случае неприятности было подготовлено.

Сам процесс описывать не вижу особого смысла: собираем техническое задание, небольшими этапами двигаемся вперёд. Единственное, что важно для истории: я добавил в корневой .md-файл указания вести скрипт, который позволит повторно развернуть всё, что уже было настроено, и файл с короткой документацией о том, какие действия были сделаны и для чего.

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

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

Тут я извиняюсь: всем, наверное, интересно, почему такое происходило. Я даже читал ответ llm на этот счёт, но закономерно не могу гаратнировать что правильно его понял. Речь там шла о том, что присутствует петля, из-за которой пакеты с одного сетевого интерфейса проходят через него несколько раз и вылезают за счётчик допустимого количества пакетов, которые должны были покинуть VPN-интерфейс. (Вроде все логично, но все равно чувствуется этот запах работы с тем, чего не понимаешь - запах магии). Соответственно, что в таком случае делают вайбкодеры? Правильно: «LLM, не работает, почини». И всё починилось: трафик идёт, проблем нет.

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

А потом тест мне решила провести местная сетевая компания, вырубив свет на срок больший, чем прожил ИБП. И сеть не поднялась. Оказалось, что предыдущая настройка не учитывала ситуацию, при которой операторский маршрутизатор физически доступен, но ещё не готов отвечать. В результате сетевые интерфейсы VPN выбрали точкой выхода в глобальный интернет друг друга и успешно никуда не подключились.

После исправления этого косяка спустя четыре дня умер блок питания на ПК, на котором была развёрнута система (справедливости ради, мои правила домашних проектов предполагают, что они собираются из того, что есть под рукой, практически без вложений средств и зависимостей от внешних сервисов, так что это нормально). Это означало, что теперь я протестирую возможность развернуть настройки на другой машине. Наверное, профессиональный системный администратор сразу собирал бы всё в Docker-контейнере, который с лёгкостью перенёс бы куда угодно. Но я не системный администратор и уже огребал с настройками сетевых интерфейсов в Docker, поэтому «бэкап» у меня был sh-скриптом.

И в общем-то повезло, что я не стал его запускать. Я скормил его агенту и попросил развернуть всё на другой машине — с такой же системой, окружением, но уже имеющейся сервером для других задач. Скрипт, вероятнее всего, сломал бы сеть. Агент при развёртывании внёс кучу правок, о которых я и не думал, что они потребуются: сетевые интерфейсы на новой машине назывались по-другому, какие-то зависимости были не тех версий и так далее Получается у меня был «бэкап» шредингера (каждый системный администратор знает - всегда проверяй бэкапы, но я то тут в роли андроид разработчика). Ещё пара часов — и снова «всё работает».

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

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

В процессе регистрации, кстати, он повесил его не на то событие. В результате скрипт выполнялся почти постоянно, переприменяя правила в iptables и dnsmasq — для некоторых сервисов используется своя несуществующая доменная зона. Dnsmasq такого насилия не выдерживал и начал периодически падать, что опять же выяснилось через пару дней (вроде трафик до нужной доменной зоны есть, а вроде иногда 30 секунд на загрузку ресурса который должен грузиться за 1).

Далее суровым указанием «никаких reapply правил по расписанию, только триггеры вида “отвал + подключение сетевого интерфейса”» проблема была решена.

Следующей доработкой был скрипт-переключатель, который позволял переключать адрес до одного из серверов либо через один VPN, либо через другой. Это два сервера-клона, но в разных локациях. И опять же: полчаса написания ТЗ и кручения прогресс-бара — и всё работает прекрасно. Только на самом деле - нет: скрипт-переключатель работал прекрасно сразу после создания, но через три недели, когда я действительно захотел переключить маршрут трафика, после его вызова сеть упала. Вся, кроме локальной. Переключение туда-обратно не помогает, перезагрузка не помогает, даже подключиться к агенту с этого ПК уже нельзя напрямую.

Не смертельно: подключаемся к агенту со своего ПК, даём ему доступ через SSH, описываем проблему. Спустя ещё полчаса кручения прогресс-бара ситуация исправлена. Причина: переключатель написан неатомарно. В процессе перенаправления трафика он не смог получить данные из целевого туннеля и оставил систему в сломанном состоянии.

Честно говоря - это только большие проблемы, были еще маленькие, и еще последующие, но что-то текста и так уже становится слишком много, а написанного выше хватит чтобы раскрыть мою мысль.

К чему в итоге всё пришло. С одной стороны, у меня сейчас как будто есть работающий сервис, решающий поставленную задачу, сделанный непрофильным специалистом в слепую, без «единого ручного вызова скрипта» (это не совсем правда: настройки, которые отвечают за доступность локальной сети, я всё же всегда внимательно проверял, сверяясь с документацией, потому что настраивать headless-сервер, таща к нему монитор, не весело).

С другой стороны, это сервис-зомби. Я не знаю, как он работает. Никто другой тоже не знает, как он работает. И, что ещё страшнее, я даже не знаю, работает ли он на самом деле. Есть панель мониторинга, написанная по приколу, и она периодически показывает, что какой-то из ресурсов недоступен. Но я не знаю, правда ли он недоступен, или это конкретно на этой машине сломался доступ, или сейчас происходит скрытый reapply правил, из-за чего он недоступен. Первый раз на фразу "при потере соединения, при повторном подключении тоннеля, нужно восстанавливать правила" - llm сделала cron который каждую минуту переприменял правила, в результате чего потецниально (помимо других проблем) 59 секунд трафик мог идти вообще не туда куда нужно.

И я даже могу сказать: «Эй, агент, почему сейчас был статус “недоступен” у сервиса?» — и агент ответит мне: «Ой, была ошибка d%2&#@as5%, я всё починил, больше не повторится». Но я никогда не узнаю, правда ли это. Эта ли была проблема? Может, проблема вообще в другом? Может, ничего на самом деле не работает, а дашборд показывает погоду на Марсе? Может, мой трафик идёт через MITM-сервер хакеров и взломанный сервер Пентагона, и когда они заделают брешь, у меня он оборвётся?

К чему я все это: когда LLM-агент в yolo-режиме писал мне мобильное приложение, мне было вообще не страшно. Вообще пофиг. Пусть хоть всё там зальёт говнокодом. Я могу позволить себе даже не читать, пока не сломается. Но, когда всё сломается, я надену резиновые перчатки, возьму вантуз и без особых проблем, бубня про то, что навайбкодил тут херни, разгребу, что не работает, я весь этот стек знаю, а там где не знаю - разберусь за пару чашек чая.

Но на эту систему маршрутизации трафика мне страшно даже дышать. Вдруг она развалится, если я посмотрю на неё не тем взглядом? Дорабатывать? Увольте. Я не хочу даже использовать фичу по переключению маршрута: чёрт его знает, переживёт ли оно. И это при том, что старый способ доступа у меня остался, а критичность этого сервера — ноль.

Я решительно не понимаю, как люди, которые пишут статьи о том, что они сделали продукт на 20 тысяч строк Python-кода, не зная Python, дорабатывают этот продукт, и их при этом не трясёт от ужаса. Как можно брать деньги или, что ещё хуже, призывать брать деньги за что-то, что может взорваться из-за того, что голубь рядом чихнул неправильно?

Пытался вспомнить, когда испытывал подобные чувства, и вспомнил.

Во времена студенческой юности я проходил курсы по Ruby on Rails — просто так. И после серверов на других решениях там был подход, который назывался convention over configuration: соглашение выше конфигурации. Этот подход предполагал, что, следуя правильным договорённостям в именовании методов, классов, файлов и их расположении, фреймворк автоматически понимал, что класс User связан с таблицей users, а если в контроллере есть метод show, то будет искаться файл разметки с соответствующим именем.

И вот когда ты брал реализацию сервера, использующего этот подход на полную, не будучи при этом профессионалом в Ruby или Rails, ощущалось оно точно так же. Работает — но почему? Я добавил класс точно так же, но тот, что был, работает, а мой — нет, хотя они идентичны. В одном месте тянется один файл разметки, в другом — другой. Но как это исправить, если они нигде не указаны?

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

Определенно, область знаний, необходимых рарзаботчику меняется, llm делает очень много вещей которые были сложными — простыми. Возможно, даже не весь сгенерированный код нужно читать (но это не точно, и вопрос очень спорный), и не всегда важно, чтобы он там был идеальный, четко структурированный или еще что-то. Но я совершенно точно уверен в том, что для разработчика и дальше будет невероятно важна способность в случае нобходимости погрузиться глубоко в весь этот сгенерированный код, и найти, понять и исправить там тот самый винтик, который все сломал.