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

推荐订阅源

博客园_首页
T
Threat Research - Cisco Blogs
GbyAI
GbyAI
Y
Y Combinator Blog
美团技术团队
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 【当耐特】
S
SegmentFault 最新的问题
IT之家
IT之家
Recent Announcements
Recent Announcements
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
阮一峰的网络日志
阮一峰的网络日志
T
The Blog of Author Tim Ferriss
Martin Fowler
Martin Fowler
Microsoft Azure Blog
Microsoft Azure Blog
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
WordPress大学
WordPress大学
博客园 - Franky
L
LangChain Blog
人人都是产品经理
人人都是产品经理
小众软件
小众软件
博客园 - 叶小钗
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
大猫的无限游戏
大猫的无限游戏
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
雷峰网
雷峰网
腾讯CDC
Google DeepMind News
Google DeepMind News
博客园 - 三生石上(FineUI控件)
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Help Net Security
Help Net Security
C
Check Point Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
N
News and Events Feed by Topic
V2EX - 技术
V2EX - 技术
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Schneier on Security
Schneier on Security
博客园 - 聂微东
A
Arctic Wolf
H
Heimdal Security Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Recent Commits to openclaw:main
Recent Commits to openclaw:main
T
The Exploit Database - CXSecurity.com
C
Cyber Attacks, Cyber Crime and Cyber Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Google DeepMind News
Google DeepMind News

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

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет 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 миллионов точек без потерь
Сладкие оковы вайб- к̶о̶д̶и̶н̶г̶а̶ инжиниринга [часть 2]
Александр Рябиков · 2026-06-19 · via Все публикации подряд на Хабре

Средний

7 мин

23

Это вторая статья об использовании LLM в проекте разработки компилятора языка программирования как транспилятора в код на C++. Я продолжаю историю и хочу рассказать о своих наблюдениях и впечатлениях от попыток применять автономных агентов в большом и сложном проекте. А также о навязчивой рекламе и встроенных «закладках» в коде некоторых инструментов, которые, похоже, целенаправленно ухудшают работу с моделями конкурентов.

Спор о терминах: от «вайб-кодинга» к «вайб-инжинирингу»

В комментариях к первой статье мне несколько раз написали, что в термине «вайб-кодинг» я сделал неправильный акцент на слове «вайб», которое описывает сильные эмоции от использования нейросетевых помощников. И мне нужно акцентировать внимание на пренебрежительном слове «кодинг» - как низкокачественном результате использования технологии, а правильное название моей работы должен быть «промпт-инжиниринг».

Однако термин «промпт-инжиниринг» никак не отражает получаемое от работы удолвольствие. Поэтому я решил использовать промежуточный вариант «вайб-инжиниринг». Это сохраняет изначальный посыл автора термина о сильных эмоциях при работе с LLM, но убирает негативную коннотацию, которая уже сложилась вокруг слова «кодинг».

Неотключаемая реклама в Cline и закладки против конкурентов

По мере роста кодовой базы проекта trust-lang я стал обращать внимание, что качество кода постепенно ухудшается. Это был ожидаемый, но очень неприятный момент, способный поставить крест на самой идее использования вайб-инжиниринга в крупных проектах. Ведь моя основная задача, это не пилить собственный проект, а наработать опыт использования LLM для продуктовых проектов компании.

И первая проблема, это периодически вылетающая неотключаемая реклама в расширении Cline, которым я пользуюсь в VSCode:

Вылезает она нечасто и по идее, предназначена для благих целей - сообщить пользователю на основе неких эмпирических метрик, что его запрос слишком сложен для текущей модели. Но реализовано это отвратительно: сообщение нельзя ни отключить, ни скрыть и оно требует обязательного подтверждения для продолжения работы, а обязательная в таких случаях кнопка или флаг «игнорировать в дальнейшем» отсутствует. И если судить по постоянно всплывающим обсуждениям в бэклоге проекта на GitHub, разработчики отключать эту рекламу не собираются.

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

Я экспериментировал с DeepSeek-4-flash, у которой размер входного контекста 1M, и заметил, что при работе он редко превышает 10% от заданной в конфигурации плагина величины. Поначалу я даже немного гордился собой: думал, что удалось так настроить проект и распределить кодовую базу по компонентам, что контекст используется очень оптимально.

Но, внимательно понаблюдав за ходом работы, понял: я не гений, а лох. Cline игнорирует установленный размер входного контекста и принудительно делает автокомпакт при достижении объёма чуть более 100K. Именно этим объясняется редкое превышение 10% от 1M входных токенов и резкое падение качества кода для длительных итераций, - контекст безжалостно сжимается, несмотря на существующие настройки.

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

Автономный кодинг с помощью OpenHands

Поначалу начитавшись восторженных статей об использовании различных Claw-агентов, я пошёл именно по этому пути - попытаться настроить универсального агента для разработки кода. Однако через несколько дней безуспешных попыток выявилось фундаментальное противоречие: чем шире функциональность агента, тем ниже его качество в каждом узком сценарии и выше сложность его настройки и поддержки. Поэтому прекратил издевательства над собой с универсальными агентами и решил использовать готовые специализированные self-hosted агенты. И после непродолжительных экспериментов выбор пал на OpenHands.

OpenHands выигрывает сравнение по совокупности ключевых критериев. Это полностью открытая платформа под лицензией MIT с более чем 70 000 звёзд на GitHub, не привязывающая к одному вендору и позволяющая развернуть агента в собственной инфраструктуре с поддержкой любого LLM-бэкенда. Используется изолированная песочница Docker для выполнения кода и «из коробки» настроен рабочий процесс, максимально приближенный к поведению разработчика, который уже интегрированный для работы с GitHub без ручного вмешательства.

Агент реализует workflow, соответствующий обычным практикам работы в свободных проектах. Он не просто генерирует дифф, а самостоятельно создаёт ветку, коммитит изменения, оформляет Pull Request с осмысленным описанием и связывает его с Issue. И в отличие от Copilot, где разработчик должен копировать код в редактор и вручную открывать PR, OpenHands работает как полноценный участник репозитория, что делает историю коммитов чистой, а процесс - прозрачным для других участников.

При подключении к репозиторию, каждый запуск агента выполняется в отдельном Docker-контейнере. Это исключает ситуацию, когда сгенерированный код из непроверенной ветки получает неявный доступ к секретам CI/CD или переменным окружения. OpenHands не привязан к API одного провайдера. В конфигурации можно указать любую модель - от облачного Claude до локального Llama 3.1, развёрнутого через Ollama. Это гарантия того, что проект не встанет из-за изменения цен или отзыва доступа к конкретному AI-сервису.

Правда, с последним достоинством вылезла неожиданная сложность при подключении к некоторым LLM-провайдерам. В OpenHands тип API провайдера настраивается префиксом модели, например llm_model = "openai/model-name", а при формировании URL запроса к провайдеру этот префикс удаляется. Поэтому мне не сразу удалось настроить LLM-провайдер, и получилось разобраться в проблеме только после подключения к Bothub.ru, у которого API https://openai.bothub.ru/v1 не использует префиксы для типов моделей.

Моя основная идея в использовании автономного агента заключалась в его запуске на длительные сессии для улучшения архитектуры проекта. В этом случае не нужно добавлять новый функционал - он должен выполнят только рефакторинг и улучшение существующего кода с использованием уже отлаженных промптов, которые хорошо себя зарекомендовали себя в конкретном проекте и в реальной практике вайб-инжиниринга (парного программирования с AI-агентом),.

Грустные итоги автономного вайб-кодинга

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

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

Например, вместо нужного для сборки проекта clang-22 агент зачем-то установил GCC. Ожидаемо у него ничего не собралось, и он принял решение «исправить ошибки сборки», переделав всё на другой компилятор. Но версия GCC оказалась довольно старой, и многие новые фичи из C++23 в ней отсутствовали. Тогда агент решил исправить ошибки уже в коде проекта.

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

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

Я не нашел ничего нового. Схожие наблюдения описаны и в других проектах при попытке использования автономных агентов. Все они завершаются в циклах правок и склонны уводить проект в сторону, поэтому нет ничего удивительного в том, что и у меня не получилось использовать AI-агенты на длинных задачах.

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

Фиксим Cline

Эксперимент с автономным агентом начался из-за проблем с Cline, но в результате пришлось к нему вернуться. Поэтому требовалось решить проблему с принудительным ограничением размера контекста при работе с моделями через агрегатор. Оказалось, ничего сложного: натравил на исходники Cline его же самого и обозначил задачу - увеличить окно контекста по умолчанию с 128K до 1M.

В результате сделал сборку плагина для VS Code с исправленным размером контекста, который не обрезается принудительно на 128K, а использует весь доступный объём, примерно вот так:

Максимальный размер контекста, пока не надоело за этим следить :)

После подобного фикса даже встроенная и неотключаемая реклама Claude 4.5 Sonnet стала появляться значительно реже, потому что модель перестала терять контекст. Как итог, качество кода заметно повысилось, несмотря на возрастающий объём анализируемой кодовой базы.


Опыт показал, что полная автономия агента на длинной дистанции пока не работает без постоянного контроля. Конечно, это не означает, что сами технологии не нужно использовать. Парный режим работы как вайб-инжиниринг (он же промпт-инжиниринг) и небольшие исправления в инструментах, подобные правкам в Cline, дают реальный прирост продуктивности.

Для желающих поддержать мой проект, кроме оценки самой статьи (если её выводы показались вам полезными), можно еще зарегистрироваться на BotHub по моей реферальной ссылке, чтобы добавить мне немного CAPS’ов для продолжения дальнейших экспериментов и развития проекта.