<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>@claudedev</title><generator>teletype.in</generator><description><![CDATA[Инструменты: https://t.me/claudedevolper]]></description><image><url>https://img3.teletype.in/files/a8/f5/a8f5a198-1ede-483b-994c-a7f1a7a3aeaf.png</url><title>@claudedev</title><link>https://teletype.in/@claudedev</link></image><link>https://teletype.in/@claudedev?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/claudedev?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/claudedev?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Fri, 22 May 2026 03:18:59 GMT</pubDate><lastBuildDate>Fri, 22 May 2026 03:18:59 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@claudedev/claudepay</guid><link>https://teletype.in/@claudedev/claudepay?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev</link><comments>https://teletype.in/@claudedev/claudepay?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev#comments</comments><dc:creator>claudedev</dc:creator><title>Как оплатить Сlaude pro из России: рабочие способы в 2026 году</title><pubDate>Thu, 07 May 2026 07:37:41 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/d6/97/d6973e97-7f7c-438f-9b87-623a44242b9d.png"></media:content><description><![CDATA[<img src="https://img4.teletype.in/files/39/96/3996d424-fe06-4aae-b3a5-b496656cde31.png"></img>Рост спроса на Claude, исходя из статистики Яндекс Вордстат, вырос в 5–10 раз за последние 3 месяца. Нейронка на волне хайпа, и вполне заслуженно.]]></description><content:encoded><![CDATA[
  <p id="7lji">Рост спроса на Claude, исходя из статистики Яндекс Вордстат, вырос в 5–10 раз за последние 3 месяца. Нейронка на волне хайпа, и вполне заслуженно.</p>
  <figure id="68bg" class="m_original">
    <img src="https://img4.teletype.in/files/39/96/3996d424-fe06-4aae-b3a5-b496656cde31.png" width="1257" />
  </figure>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <figure id="CywD" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/e39/7be/a74/e397bea74c95bbc8edb5050c61eb31ce.png" width="800" />
  </figure>
  <p id="lja4">Мы его активно используем для автоматизации рутинных задач и помощи в быстрых тестах с кодом. Проблема с оплатой этой нейросети, аналогична и другим зарубежным нейросетям из РФ. Все, как правило, решается иностранной виртуальной картой для оплаты подписок.</p>
  <p id="BH8Z">Подробный и честный гайд о том, как оплатить Claude в 2026 году из России. Без воды — только актуальные рабочие варианты.</p>
  <hr />
  <h2 id="qSJO">Способ 1. Виртуальная иностранная карта</h2>
  <p id="Kllv">Если нужен Claude надолго и для себя — этот способ основной. Оформляете зарубежную виртуальную карту, пополняете через СБП из любого российского банка и платите подписку с неё. Карта остаётся с вами, работает для Claude, ChatGPT, Spotify, Booking и всего остального.</p>
  <h2 id="ws6s">ТОП-4 сервиса для выпуска виртуальной карты</h2>
  <p id="cASd">Разберём на примере 💳 — дальше пошаговая инструкция под него. Но на рынке есть ещё несколько нормальных вариантов, у всех примерно одна логика:</p>
  <p id="dJIY">💳 — Telegram‑мини‑ап, пополнение через СБП, без верификации. Карта для подписок в евро (эмитент — Испания). Выпуск — 2 990 ₽.</p>
  <p id="zUiu">💳<strong> Wanttopay</strong> — удобный финтех‑сервис с доступом к платежным инструментам. Оплачивайте зарубежные сервисы, подписки и путешествия через 📲 мини‑приложение в Telegram.</p>
  <p id="yeDn">💳 <strong>E.PN</strong> — пополнение только в крипте (USDT), выпуск от 4 $. Много настроек, много карт под разные задачи. Для тех, кто уже работает с криптой.</p>
  <p id="OQEd">💳 <strong>EasyPayments</strong> — реальный пластик на ваш паспорт от иностранного банка. Выпуск от 20 000 ₽, срок — от недели. Для тех, кому нужна полноценная карта, а не только онлайн.</p>
  <p id="XHr1">Подробное сравнение всех пяти — в отдельной статье «Как открыть виртуальную карту зарубежного банка». Здесь идём дальше по схеме с .</p>
  <figure id="TXvT" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/818/940/e39/818940e3956ddfe9df3db1a1795e40c7.png" width="1289" />
  </figure>
  <p id="yOwO">Открыть счёт в иностранном банке удалённо сегодня стоит от 30 000 рублей, занимает несколько недель и требует уведомить ФНС. 💳 решает ту же задачу за 2 990 рублей без выезда и бюрократии.</p>
  <h3 id="HZl6">Как выпустить карту: пошагово</h3>
  <p id="Dp4Y">Откройте Telegram и найдите бота 💳 . Запустите мини‑приложение — отдельного приложения скачивать не нужно.</p>
  <p id="ve4v">Выберите карту для подписок (EUR, эмитент Испания) — выпуск 2 990 ₽. Оплатите через СБП — карта появляется сразу, на балансе уже 5 €.</p>
  <figure id="1vpw" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/217/59b/48b/21759b48bf0d0b79d64e3f8240fc51b5.png" width="717" />
  </figure>
  <p id="v4Qu">Чтобы пополнить: нажмите «Пополнить», введите сумму — приложение покажет курс и итог в рублях ещё до подтверждения. Перейдите в банк через СБП, подтвердите — деньги приходят моментально.</p>
  <figure id="GDhu" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/485/2d2/616/4852d2616658c443e191e9fc8b837f3b.png" width="353" />
  </figure>
  <hr />
  <h3 id="rMTO">Как оплатить клод из России: пошагово</h3>
  <p id="ksjv">Шаг 1. Включите VPN. Откройте claude.ai и зарегистрируйтесь — на иностранный номер, по SMS‑коду.</p>
  <figure id="JpRI" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/86a/5b5/985/86a5b5985390616d102b63e06b2d277d.jpg" width="1920" />
  </figure>
  <p id="8JrK">Шаг 2. В интерфейсе Claude: профиль внизу слева → Upgrade plan → Claude Pro ($20/мес).</p>
  <figure id="yrob" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/f8f/f14/8b2/f8ff148b2abcbbdf6bd8668b468fa792.jpg" width="1920" />
  </figure>
  <p id="CqlC">Шаг 3. В платёжной форме введите реквизиты карты: номер, срок, CVV и billing address. Billing address берёте из мини‑апа карты — для это испанский адрес, для WanttopayUSD — американский. Свой российский адрес не указывать, платёж не пройдёт.</p>
  <figure id="shcF" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/050/caf/90a/050caf90aaafcef5053a879ad42bc538.jpg" width="1920" />
  </figure>
  <p id="h4mf">Шаг 4. Подтвердите оплату. Если карта поддерживает 3D Secure — код придёт прямо в мини‑ап или на почту.</p>
  <p id="C0ov">Шаг 5. Проверьте статус — в профиле появится пометка Claude Pro, лимиты увеличатся, откроются модели Opus и Sonnet без ограничений.</p>
  <p id="kvvc">⚠ Если платёж не проходит: сначала проверьте, что в настройках аккаунта Claude в поле Country стоит та же страна, что у эмитента вашей карты (для — Spain, для Wanttopay — United States). После этого попробуйте снова. Если не помогло — попробуйте другую карту: долларовая Wanttopay с американским ГЕО у Anthropic проходит стабильнее, чем европейская.</p>
  <blockquote id="EVfd">💡 Про VAT. Если платите с европейской карты (, Испания) — Anthropic автоматически добавит НДС ~21%. Итого выйдет около $24 вместо $20. Хотите без налога — берите карту с американским ГЕО (Wanttopay USD).</blockquote>
  <hr />
  <h2 id="zPVP">Способ 2. Маркетплейсы цифровых товаров — купить доступ без карты</h2>
  <p id="rBvZ">Если с VPN, eSIM и виртуальными картами разбираться не хочется — есть вариант проще. На маркетплейсах цифровых товаров продают готовые аккаунты Claude Pro с оплаченной подпиской. Вы покупаете российской картой или по СБП, получаете логин с паролем и пользуетесь.</p>
  <p id="E1sy">Главное отличие от Telegram Premium: у Claude нет подарочных кодов активации, поэтому продаётся именно доступ к готовому аккаунту с уже оплаченной подпиской.</p>
  <p id="Q6hQ">Важный момент: разброс цен у разных продавцов на один и тот же срок может быть значительным. Сравнивайте предложения, смотрите на рейтинг и количество отзывов — это стандартная мера предосторожности для любых цифровых маркетплейсов.</p>
  <h3 id="W97A">Где купить подписку на клод</h3>
  <p id="Lre2">На маркетплейсе 💵 ggsel.net — вбиваете в поиск «Claude Pro», выбираете нужный срок (1, 3 или 12 месяцев) и продавца с высоким рейтингом. Оплата через СБП или российской картой. Данные для входа приходят в течение 5–30 минут.</p>
  <h3 id="1wsV">Пошаговая инструкция</h3>
  <ul id="Wm7A">
    <li id="uYSh">Определите нужный срок. Claude Pro продаётся на 1, 3 и 12 месяцев. Пересчитайте цену за месяц — годовой доступ обычно выгоднее.</li>
    <li id="rQmV">Выберите продавца. На ggsel.net ищите «Claude Pro». Ориентируйтесь на рейтинг (4.8+), число продаж и наличие гарантий замены или возврата.</li>
    <li id="Acyg">Оплатите заказ. Принимаются СБП и российские карты. Данные аккаунта придут автоматически.</li>
    <li id="2aLg">Войдите в аккаунт. VPN всё равно нужен — Claude проверяет IP при каждом запросе. Открываете claude.ai через VPN, вводите полученные данные.</li>
  </ul>
  <h3 id="ihlE">Честно о минусах</h3>
  <p id="hL3U">Аккаунт чужой. Иногда один аккаунт продают сразу нескольким покупателям — лимиты могут исчерпываться быстрее. Вся история ваших чатов видна владельцу аккаунта. Антропик периодически чистит подозрительные аккаунты — риск потерять доступ раньше срока небольшой, но есть.</p>
  <p id="G94l">Для рабочих и конфиденциальных задач этот способ не подходит. Для первого знакомства с Claude или разового проекта на месяц — нормально.</p>
  <hr />
  <h2 id="1sp6">Подписка Claude Pro: что внутри</h2>
  <ul id="qdXo">
    <li id="ypKS">Все функции активируются сразу после оплаты и работают весь срок подписки.</li>
    <li id="RuxD">Доступ к сильным моделям. Claude Pro открывает Sonnet 4.7 (быстрый, для большинства задач) и Opus 4.7 (самый мощный). В бесплатной версии они либо недоступны, либо с жёсткими лимитами.</li>
    <li id="NInH">В 5 раз больше сообщений по сравнению с Free. Для обычной ежедневной работы хватает.</li>
    <li id="SZas">Проекты. Загружаете инструкции, документы, контекст один раз — Claude помнит это во всех чатах внутри проекта. Не нужно объяснять каждый раз, кто вы и что вам нужно.</li>
    <li id="4IGF">Артефакты. Код, документы, таблицы и визуализации — в отдельном окне рядом с чатом. Удобно для работы с текстами, данными и кодом.</li>
    <li id="J7lL">Веб‑поиск. Claude ищет актуальную информацию в сети и даёт ответ со ссылками на источники.</li>
    <li id="HsZo">Выполнение кода. Можно запускать Python прямо в чате: обрабатывать данные, строить графики, создавать файлы Excel, Word, PDF.</li>
    <li id="n3l5">Загрузка файлов до 30 МБ. PDF, таблицы, документы, изображения. Claude читает и работает с содержимым.</li>
    <li id="ruWB">Контекст 200 000 токенов. Это примерно 150 000 слов — целая книга. Полезно при работе с большими базами кода или объёмными документами.</li>
    <li id="oEGe">Claude Pro по функциональности сопоставим с ChatGPT Plus. Многие, кто пробует оба, в итоге оставляют Claude как основной — особенно если работа связана с текстами, кодом или длинными документами.</li>
  </ul>
  <hr />
  <h2 id="OwGf">Частые вопросы об оплате подписки на клод</h2>
  <ol id="5Ef8">
    <li id="SZo2"><strong>Можно ли пользоваться Claude без VPN?</strong><br />Нет. Claude проверяет IP при каждом запросе, а не только при входе. Без VPN — ошибка App unavailable на каждый запрос.</li>
    <li id="nmow"><strong>Какой VPN подходит?</strong><br />Платный, с живыми IP‑адресами. Mullvad, Proton VPN, AdGuard VPN — проверено. Бесплатные режутся. Так же, рабочий метод, покупка персональных прокси и использование ADS POWER браузера или аналогичных антидетект браузеров.</li>
    <li id="OAKt"><strong>Можно ли зарегистрировать аккаунт на российский номер?</strong><br />Нет. Форма регистрации не принимает +7. Нужен виртуальный номер через sms‑activate или eSIM через Airalo, Yesim.</li>
    <li id="Aroq"><strong>Принимает ли Claude российские карты?</strong><br />Нет. Ни Visa, ни Mastercard, ни МИР с российским эмитентом не проходят. Нужна иностранная карта — виртуальная или пластиковая.</li>
    <li id="6nMv"><strong>Что дешевле: карта или аккаунт с ggsel?</strong><br />По цифрам — аккаунт на ggsel в моменте чуть дешевле. Но это чужой аккаунт с рисками, которые описаны выше. Своя карта — это свой чистый аккаунт с историей чатов и персональными настройками.</li>
    <li id="RYnm"><strong>Что лучше для Claude — или Wanttopay?</strong><br />Обе работают. Wanttopay USD с американским ГЕО — без VAT при оплате, подписка выходит ровно $20. Плати по Миру — чуть проще в пополнении, но с европейским ГЕО Anthropic добавит налог ~21%.</li>
    <li id="uW0V"><strong>Как отменить подписку?</strong><br />Settings → Account → Manage subscription → Cancel plan. Несколько кликов. Доступ к Pro остаётся до конца оплаченного периода.</li>
    <li id="zBnU"><strong>Почему карта не проходит при оплате?</strong><br />Проверьте по порядку: в профиле Claude поле Country должно совпадать со страной эмитента карты. Billing address — тот, что привязан к карте, не российский. На карте должен быть баланс с запасом выше $20 — Anthropic делает предавторизацию. VPN должен быть включён, желательно в той же стране, что у карты.</li>
  </ol>
  <hr />
  <h2 id="o0ps">Итого, как же можно оплатить claude</h2>
  <p id="QUn2">С Claude барьеров больше, чем с другими сервисами: нужны VPN + иностранный номер + иностранная карта. Но после однократной настройки всё работает стабильно.</p>
  <p id="OTve">Для постоянной работы — виртуальная карта (💳 или Wanttopay) плюс нормальный VPN. Один раз настраиваете, дальше просто пополняете карту по СБП раз в месяц. Карта работает и для Claude, и для всего остального.</p>
  <p id="bJSq">Для разовой задачи — готовый аккаунт на 💵 ggsel.net. Купили, зашли через VPN, пользуетесь. Для регулярной или конфиденциальной работы не подходит, но для знакомства с сервисом — самый быстрый вариант.</p>
  <p id="nCEI">Оба способа актуальны на апрель 2026 года. Делитесь в комментариях, как решили для себя вопрос с VPN и номером — именно эта часть у всех получается по‑своему.</p>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <figure id="LbBZ" class="m_original">
    <img src="https://img2.teletype.in/files/56/e1/56e1ef6f-a836-4da3-b7c8-013b7d34b889.png" width="1024" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@claudedev/raga2a</guid><link>https://teletype.in/@claudedev/raga2a?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev</link><comments>https://teletype.in/@claudedev/raga2a?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev#comments</comments><dc:creator>claudedev</dc:creator><title>30 секунд вместо 30 минут: как мы автоматизировали генерирование конфигураций потоковой обработки с помощью RAG и A2A</title><pubDate>Wed, 06 May 2026 05:58:58 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/08/49/0849e26a-b3ac-4d98-a995-2a9a55062dac.png"></media:content><description><![CDATA[<img src="https://img4.teletype.in/files/75/1f/751fccf1-198e-4862-adbb-f6a17f459221.png"></img>Представьте типичную ситуацию: вам нужно настроить очередной обработчик потоковых данных. Вы открываете документацию на 200 с лишним страниц, где описаны десятки типов источников, трансформаций, фильтров и политик обработки ошибок. Ищете нужные параметры в разделах про Kafka, RabbitMQ/ArtemisMQ, GRPC, PostgreSQL и так далее. Вспоминаете синтаксис DSL — а он различается для разных типов операций. Копируете похожую конфигурацию из прошлого проекта, найденную в корпоративном Git‑репозитории, и правите её под новые требования. Переключаетесь между вкладками браузера с документацией и IDE.]]></description><content:encoded><![CDATA[
  <p id="lhQD">Представьте типичную ситуацию: вам нужно настроить очередной обработчик потоковых данных. Вы открываете документацию на 200 с лишним страниц, где описаны десятки типов источников, трансформаций, фильтров и политик обработки ошибок. Ищете нужные параметры в разделах про Kafka, RabbitMQ/ArtemisMQ, GRPC, PostgreSQL и так далее. Вспоминаете синтаксис DSL — а он различается для разных типов операций. Копируете похожую конфигурацию из прошлого проекта, найденную в корпоративном Git‑репозитории, и правите её под новые требования. Переключаетесь между вкладками браузера с документацией и IDE.</p>
  <figure id="stfG" class="m_original">
    <img src="https://img4.teletype.in/files/75/1f/751fccf1-198e-4862-adbb-f6a17f459221.png" width="1257" />
  </figure>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <p id="ZWnw">На это уходит от 30 минут до нескольких часов, а в итоге всё равно можно допустить ошибку в синтаксисе, неправильно сконфигурировать источник данных или пропустить важный параметр безопасности.</p>
  <p id="GIES">А что, если сократить этот процесс до 30 секунд? Просто описать задачу на естественном языке — «Настрой обработчик для фильтрации событий от Kafka, оставь только записи с user_id больше 1000 и приоритетом high, результат отправь в новый топик» — и получить готовую конфигурацию, адаптированную под специфику нашего продукта. Не абстрактную YAML или CONF-заготовку, которую ещё нужно подгонять под продукт, а конфигурацию с правильными параметрами, корректным синтаксисом DSL для трансформаций и с соблюдением архитектурных паттернов продукта, готовую к проверке и применению в промышленной среде.</p>
  <p id="yIuM">В этой статье я расскажу, как мы создали систему автоматического генерирования конфигураций для одного из компонентов нашего продукта, используя RAG (Retrieval-Augmented Generation), векторные базы данных и межагентное взаимодействие по протоколу A2A.</p>
  <h2 id="CW24">Немного о проблематике</h2>
  <p id="mAz0">Инженеры, работающие с системами потоковой обработки данных, ежедневно сталкиваются с необходимостью создавать конфигурации для различных систем. Это обработчики данных, сложные многошаговые трансформации, политики обработки ошибок, правила маршрутизации событий между сервисами. При этом приходится изучать объёмную документацию на сотни страниц, где каждый компонент системы описан в отдельном разделе.</p>
  <p id="kfp0">Разработчик должен помнить синтаксис множества форматов: YAML/JSON для основных конфигураций, специфичные форматы для описания политик безопасности. Но самое сложное — работа с проприетарным DSL для описания трансформаций данных. Создание одной конфигурации средней сложности занимает от 30 минут до нескольких часов. За это время инженер переключается между задачами, теряет контекст, отвлекается на поиск информации.</p>
  <p id="D9BM">Классический подход — копипаст из предыдущих проектов с ручными правками — не только медленный, но и чреват ошибками. Каждая опечатка в имени параметра, неверный отступ в YAML, забытый обязательный параметр или устаревшая версия синтаксиса из старой конфигурации превращается в потерянное время на отладку. А если речь идёт об эксплуатационной среде, то цена ошибки может быть очень высокой.</p>
  <p id="rjnf">Более того, документация постоянно обновляется. Появляются новые параметры, некоторые становятся deprecated, меняются рекомендации. Инженер может не знать о последних изменениях и использовать устаревшие подходы. Особенно остро эта проблема стоит с проприетарными DSL: в отличие от стандартных форматов вроде YAML или JSON, для которых есть множество примеров в интернете, специфичный синтаксис трансформаций описан только в корпоративной документации.</p>
  <h2 id="cBf7">Специфика DSL для трансформаций</h2>
  <p id="rolj">В Platform V Synapse Streaming Event Processing используется проприетарный DSL для описания трансформаций потоковых данных — tr-файлы. Это декларативный язык, специально разработанный для наглядного описания трансформаций без необходимости писать императивный код на Java или Python.</p>
  <p id="NKVr">DSL позволяет описывать маппинг полей — преобразование структуры входящего события в требуемую структуру выходного, с переименованием полей, извлечением вложенных значений из JSON, объединением нескольких полей в одно. Фильтрация событий реализована через выражения с поддержкой сложных условий, логических операторов, функций для работы с датами, строками, числами, регулярными выражениями. Есть обогащение данными из внешних источников. Система поддерживает работу с окнами агрегации, группировку по ключам и применение агрегирующих функций.</p>
  <p id="5mVO">Вот пример простой трансформации на этом DSL:</p>
  <pre id="EG5s">define isFirst = truefor ($data: in) {    if ($isFirst) {        out[&gt;] = $data        headers[&gt;].TargetKey = generateId()        define isFirst = false    } else {        out[+&gt;] = $data        headers[+&gt;].TargetKey = generateId()    }    INFO(&quot;RESULT&quot;, out, &quot;TEST.OUT&quot;, &quot;-&quot;)}</pre>
  <p id="GHAS">Для LLM этот DSL нестандартный, его не было в обучающей выборке GigaChat или других публичных моделей. Модель не может просто «вспомнить» синтаксис, как это было бы с Python или SQL. Попытка сгенерировать tr-файл без дополнительного контекста приводит к галлюцинациям: модель может выдумать несуществующие функции, использовать синтаксис от других похожих языков, перепутать порядок секций.</p>
  <p id="sHx4">Именно поэтому RAG становится не просто улучшением, а критически необходимым компонентом системы. Без доступа к актуальной документации и примерам невозможно корректно сгенерировать конфигурации на проприетарном DSL.</p>
  <h2 id="bMtX">От идеи до готовой конфигурации за 30 секунд</h2>
  <p id="WS16">Мы создали систему, которая за считанные секунды превращает естественно-языковое описание требований в корректную конфигурацию. Ключевая идея — использовать саму документацию продукта как источник знаний для искусственного интеллекта, а не пытаться обучить модель с нуля на специфичном DSL.</p>
  <p id="xnaM">Процесс начинается с подготовительного этапа: загрузки всей документации по продукту в векторную базу данных. Мы берём официальную документацию в формате Markdown, специальный сервис разбивает документы на логические фрагменты (чанки) и превращает их в векторные представления — эмбеддинги. Этот процесс нужно выполнить только один раз при первоначальной настройке системы, далее векторная база обновляется только при изменении документации.</p>
  <p id="NtE8">Инженер описывает требования к конфигурации на естественном языке, и магия начинается.</p>
  <p id="2cp5">Запрос может быть сформулирован просто и понятно: «Создай обработчик, который читает события из топика user-actions, фильтрует только события типа purchase с суммой больше 1000 рублей, обогащает данными о пользователе из дополнительного топика и отправляет результат в топик high-value-purchases». Система не требует знания точного синтаксиса или имён параметров — она сама найдёт нужную информацию в документации.</p>
  <p id="30NB">Система анализирует запрос и через механизм RAG находит в документации релевантный контекст. Это не простой полнотекстовый поиск по ключевым словам, а семантический поиск по смыслу. Система понимает, что «читает события из топика» связано с разделом документации про источники Kafka, «фильтрует только события типа purchase» требует конфигурации фильтров, а «отправляет результат в топик» — настройку destination.</p>
  <p id="aAbi">LLM получает найденные фрагменты документации и генерирует готовую конфигурацию с учётом контекста. Модель не просто генерирует текст наугад — она опирается на конкретные примеры из документации, использует правильные имена параметров, соблюдает синтаксис.</p>
  <p id="tsNG">В результате получается конфигурация, которую можно сразу применить без дополнительной доработки, все обязательные параметры заполнены корректными значениями, соблюдены требования к структуре конфигурационных файлов продукта согласно текущей версии, применён корректный синтаксис DSL для трансформаций (если требуется).</p>
  <p id="KsV6">Это означает, что инженеру не нужно тратить время на поиск документации по версиям продукта, вспоминать специфичные имена параметров или разбираться в тонкостях синтаксиса DSL: система делает это автоматически на основе актуальной документации.</p>
  <p id="E0D5">Но генерирование это только половина дела.</p>
  <p id="FNTi">Во время создания конфигурации агент-генератор по протоколу A2A вызывает агент-валидатор. Тот получает сгенерированную конфигурацию и исходный запрос пользователя, после чего проверяет, действительно ли конфигурация решает поставленную задачу? Все ли обязательные параметры указаны? Нет ли логических ошибок или потенциальных проблем с производительностью? Валидатор может ответить «конфигурация корректна» или запросить исправления: «в секции filters пропущен обязательный параметр field_name» или «для production-среды рекомендую добавить SSL-подключение».</p>
  <p id="TIF1">Агенты итеративно взаимодействуют до получения валидной конфигурации. Это может занять несколько циклов: генератор создаёт первую версию, валидатор находит проблемы, генератор исправляет с учётом замечаний, валидатор проверяет снова. Обычно требуется от одной до трёх итераций. Этот процесс полностью автоматический и занимает секунды, а не часы ручной отладки.</p>
  <p id="ymUT">После того как конфигурация прошла ИИ-проверку, её можно дополнительно проверить статическими методами. Config Validator проверяет, что YAML синтаксически корректен, JSON-схемы корректны, а если конфигурация предназначена для развёртывания в Kubernetes — проверяет соответствие спецификации манифеста.</p>
  <p id="TSNU">Можно настроить кастомные проверки через регулярные выражения: например, убедиться, что имена топиков соответствуют корпоративному соглашению об именовании (naming convention). Готовый результат можно сразу применить в кластере через встроенный механизм развёртывания или скопировать и использовать в существующем CI/CD pipeline.</p>
  <h2 id="onFI">Векторные базы данных: как ИИ понимает документацию</h2>
  <p id="XRHl">Прежде чем перейти к архитектуре, разберёмся с фундаментом системы — векторными базами данных и механизмом эмбеддингов. Это ключевая технология, которая делает возможным семантический поиск и контекстуальное генерирование.</p>
  <h3 id="RQum">Что такое эмбеддинг</h3>
  <p id="ZziS">Эмбеддинг — это способ представить текст в виде числового вектора фиксированной длины, обычно от 384 до 1536 измерений в зависимости от модели.</p>
  <p id="4WiW">Каждое число в этом векторе — это координата в многомерном пространстве, где расположение точки отражает семантический смысл текста. Ключевая особенность эмбеддингов в том, что семантически похожие тексты имеют близкие векторы, и тексты можно найти, вычислив расстояние или косинусное сходство между векторами.</p>
  <p id="AsYz">Например, рассмотрим три фразы из документации: «источник Kafka» может быть представлен вектором <code>[0.82, -0.33, 0.15, 0.67, ...]</code>, «Kafka input» — вектором <code>[0.81, -0.35, 0.14, 0.65, ...]</code>, а «читать из очереди сообщений» —<code> [0.77, -0.33, 0.14, 0.63, ...]</code>.</p>
  <p id="aBsi">Все три фразы описывают похожую концепцию получения данных из брокера сообщений, и их векторные представления будут близки друг к другу в многомерном пространстве. Расстояние между первым и вторым вектором будет маленьким, а между первым и совершенно не связанной фразой вроде «настройка сетевых политик» — гораздо больше.</p>
  <p id="hISW">Важно понимать, что эмбеддинги не просто считают количество общих слов. Модель, создающая эмбеддинги, обучена на огромных объёмах текстов и понимает контекст, синонимы, связи между концепциями. Поэтому «Kafka source» и «читать из топика» будут иметь близкие эмбеддинги, даже если у них нет общих слов.</p>
  <h3 id="7rjF">Индексация документации</h3>
  <p id="JHdR">При загрузке документа в систему происходит несколько важных этапов обработки.</p>
  <p id="4E92">Сначала документ делится на смысловые фрагменты — чанки. Это критически важный этап, потому что качество разбиения напрямую влияет на качество поиска. Слишком маленькие чанки теряют контекст, слишком большие — становятся неспецифичными и могут содержать несколько несвязанных тем.</p>
  <p id="3ihY">Размер чанка мы настраиваем в зависимости от специфики документации. Для справочной документации с короткими описаниями параметров оптимальный размер — 256-512 токенов. Мы используем перекрытие (overlap) между чанками размером 10-20% от размера чанка. Это означает, что последние несколько предложений одного чанка повторяются в начале следующего. Зачем? Чтобы сохранить контекст на границах. Если описание какой-то концепции попадает на границу между чанками, то перекрытие гарантирует, что в одном из чанков описание будет представлено целиком.</p>
  <p id="NgKV">Каждый чанк превращаем в вектор с помощью модели Embeddings от Сбера. Мы выбрали её, потому что она специально обучена на русском языке и создаёт качественные семантические представления русскоязычных технических текстов. Модель понимает специфичную терминологию, аббревиатуры, технический жаргон.</p>
  <p id="iu1y">Векторные представления сохраняются в Platform V Vector DB — специализированной векторной базе данных, предназначенной для высокопроизводительного семантического поиска. Вместе с векторами мы храним исходный текст фрагмента и метаданные: источник документа, раздел, дату обновления, теги (например, kafka, filters, security). Это позволяет точно искать с фильтрами — например, только по материалам для Kafka или только по разделам, связанным с безопасностью.</p>
  <p id="LJOZ">Скажем, документ с правилами конфигурирования сетевых политик можно разбить так: чанк «Запретить весь входящий трафик по умолчанию» получит вектор <code>[0.76, -0.21, 0.94, ...]</code> и метаданные<code> {source: &quot;network-policy.yaml&quot;, section: &quot;ingress-rules&quot;, tags: [&quot;security&quot;, &quot;network&quot;]}</code>, а следующий чанк «Разрешить порт 80 только из namespace frontend» получит свой вектор <code>[0.68, -0.19, 0.91, ...]</code> и похожие метаданные. При поиске по запросу «настроить доступ к сервису только для фронтенда» система найдёт оба этих чанка как релевантные, причём второй получит больше баллов.</p>
  <h3 id="St6J">RAG: Retrieve-Augment-Generate</h3>
  <p id="AouB">Давайте разберёмся, почему простого использования LLM недостаточно для нашей задачи. Современные языковые модели, такие как GigaChat, GPT или Claude, обладают впечатляющими способностями к генерированию текста и пониманию контекста. Но у них есть фундаментальные ограничения.</p>
  <p id="FBHt">Во-первых, модель может не знать специфики вашей документации. GigaChat обучен на публичных данных из интернета, но нашей внутренней документации по Platform V Synapse Streaming Event Processing, проприетарного DSL и корпоративных стандартов в обучающей выборке не было.</p>
  <p id="IjJI">Во-вторых, знания модели ограничены датой обучения. Если последнее обучение было полгода назад, а за это время вышло три обновления продукта с новыми параметрами, то модель об этом не знает.</p>
  <p id="r1Ur">В-третьих, модель может «галлюцинировать»: выдумывать несуществующие параметры, смешивать синтаксис разных версий, генерировать правдоподобно звучащие, но некорректные конфигурации.</p>
  <p id="COL9">RAG (Retrieval-Augmented Generation) — это архитектурный паттерн, где модель не полагается только на знания, полученные при обучении, а сначала получает актуальный контекст из внешнего источника — в нашем случае из векторной базы с документацией. Это принципиально меняет подход: модель становится не источником знаний, а интерпретатором документации, который умеет понимать запрос пользователя и правильно применять информацию из найденных фрагментов.</p>
  <h3 id="AN73">Три этапа RAG</h3>
  <p id="J8IE"><strong>Retrieve (Поиск).</strong> Когда пользователь вводит запрос, система не сразу отправляет его в LLM. Сначала запрос векторизируется — превращается в эмбеддинг той же моделью Embeddings, которая использовалась для индексации документации. Получается вектор запроса. Затем система ищет в векторной базе данных чанки с наиболее похожими векторами, вычисляя косинусное сходство между вектором запроса и векторами всех чанков в базе.</p>
  <p id="svEy">Это семантический поиск: мы ищем не по точным совпадениям слов, а по смыслу. Например, запрос «настроить фильтрацию событий по полю timestamp больше вчерашней даты» найдёт релевантные фрагменты, даже если в документации используются другие формулировки вроде «временная фильтрация», «отсечение по времени», «filter by time field» или примеры с другими названиями полей. Модель понимает, что все эти фразы семантически близки.</p>
  <p id="Bmvx">Система возвращает топ-K наиболее релевантных чанков, обычно K=3-5. Больше не всегда лучше: слишком много контекста может запутать модель, увеличивает токены в промпте (а значит, стоимость и время обработки), может включить менее релевантную информацию. Мы экспериментально подобрали оптимальное значение для нашей системы.</p>
  <p id="aVeT"><strong>Augment (Обогащение).</strong> Найденные чанки не просто конкатенируются, они структурируются и форматируются. Формируется промпт, состоящий из нескольких секций. System_prompt задаёт роль агента и правила поведения, вот часть системного промта:</p>
  <blockquote id="YIBL">Ты — генератор конфигурационных файлов и DSL-трансформаций для Cloud Event Processing, действующий строго по спецификации и переданному контексту.Основные требования:Используй только информацию из этого промпта.Генерируй только синтаксически и семантически валидные конфигурации и DSL-файлы по спецификации или переданному контексту.Все обязательные поля должны быть заполнены. Если невозможно корректно заполнить обязательное поле — не генерируй файл.Не используй конструкции, блоки, параметры, функции или синтаксис, не описанные в спецификации или переданном контексте. Любое отклонение — ОШИБКА.Не добавляй пояснений, описаний, комментариев или вымышленных элементов ни в одном из файлов.Если необходимы несколько файлов (например, config и transform), выводи каждый с указанием имени и расширения отдельным блоком.Для улучшения качества генерирования используй информацию, переданную в поле контекст.Имя и расширение файла — первой строкой блока. Дубли имён не допускаются.</blockquote>
  <p id="wWnT">Context включает в себя релевантные фрагменты из документации, отформатированные специальным образом. Каждый фрагмент предваряется заголовком, указывающим источник: «Из раздела &quot;Конфигурация источников Kafka&quot;:», «Пример из документации:», «Best practice:». Это помогает модели понять, какая информация откуда взята и как её следует интерпретировать. Если найдены примеры кода, то они включаются целиком с комментариями.</p>
  <p id="91X5"><code>User_request</code> — это исходный запрос пользователя, возможно, слегка переформулированный для ясности. Например, если пользователь написал «сделай обработчик как в прошлый раз, только для другого топика», то система может попросить уточнить подробности.</p>
  <p id="SNtK"><strong>Generate (Генерирование).</strong> Полностью сформированный промпт отправляется в GigaChat. Важный нюанс: мы используем специфичные параметры генерирования. Temperature (температура) установлена на относительно низкое значение около 0,5, это делает генерирование более детерминированным и предсказуемым, что критично для генерирования кода и конфигураций. High temperature (0,8-1,0) хороша для творческих задач, но в нашем случае может привести к «творческим интерпретациям» синтаксиса.</p>
  <p id="peXX">LLM генерирует ответ, опираясь как на свои базовые знания о форматах YAML/JSON и общих принципах конфигурирования, так и на предоставленный контекст из документации. Это гарантирует, что конфигурация будет соответствовать актуальной спецификации продукта, использовать правильные имена параметров, соблюдать версию API, следовать лучшим корпоративным практикам.</p>
  <h2 id="hHW9">Микросервисная архитектура решения</h2>
  <p id="FAqc">Система построена как набор независимых микросервисов, что обеспечивает гибкость, масштабируемость и возможность обновления отдельных компонентов без остановки всей системы.</p>
  <figure id="fqGo" class="m_original">
    <img src="https://img4.teletype.in/files/b7/37/b737a3a4-02a5-478b-8403-c04e26866fd8.png" width="751" />
  </figure>
  <p id="Ls3m">Каждый сервис — это отдельный Docker-контейнер с собственной конфигурацией ресурсов, политиками restart, health check endpoints. Взаимодействие между сервисами происходит по REST.</p>
  <h3 id="ds54">UI Service</h3>
  <p id="gnHo">Это единая точка входа для инженеров. Функциональность включает в себя управление полным циклом работы с конфигурациями. Это лишь один из вариантов реализации, система спроектирована так, что к остальным сервисам можно обращаться напрямую через REST API, интегрировав их в существующие процессы CI/CD.</p>
  <p id="irOS">Например, можно настроить Jenkins pipeline, который вызывает Config Generator API для автоматического генерирования конфигураций на основе параметров из Git-репозитория, проверяет результат через Config Validator и применяет через Config Deployer. Интерфейс — это уровень представления для интерактивной работы, но не обязательное звено.</p>
  <h3 id="P1GO">DB Service</h3>
  <p id="1W3F">Это центральное хранилище метаданных системы и REST API для работы с СУБД. База хранит в себе системные промпты для различных типов конфигураций. Каждый тип конфигурации имеет свой оптимизированный промпт с инструкциями для модели, примерами желаемого формата вывода, списком обязательных и опциональных параметров.</p>
  <p id="NFA0">Правила проверки хранятся в структурированном виде: регулярные выражения шаблонов для проверки имён, диапазоны для числовых параметров, списки допустимых значений для полей с перечислениями. Шаблоны для развёртывания — это шаблоны Jinja2 для Kubernetes-манифестов с заглушками для подстановки сгенерированных конфигураций.</p>
  <p id="pWmF">Метаданные векторных баз включают в себя название базы, описание, дату создания, количество чанков, используемую модель embeddings, параметры чанкинга (размер, перекрытие), статус (активна/неактивна), теги для фильтрации.</p>
  <p id="qOi6">История генерирований журналируется полностью: timestamp запроса, user_id, текст запроса, тип конфигурации, использованные векторные базы, найденный контекст, сгенерированная конфигурация, результаты проверки, статус развёртывания (если применялся). Эти данные бесценны для анализа качества работы системы и её совершенствования.</p>
  <h3 id="2qS9">Vector Generator</h3>
  <p id="8Emt">Это ETL-pipeline для документации. Он отвечает за создание и наполнение векторных баз знаний, трансформируя неструктурированные тексты в векторные представления, по которым можно искать (searchable embeddings).</p>
  <p id="4BZK">Процесс начинается с создания векторных баз: инициализации новой базы (коллекции) в Platform V Vector DB с заданными параметрами. Затем идёт обработка документов: загрузка файлов различных форматов с автоматическим определением формата и парсингом.</p>
  <p id="9yti">Далее происходит разбиение на чанки, размер которых настраивается для каждой векторной базы индивидуально — 256 или 512 токена. Перекрытие (overlap) также настраивается: обычно это 10-20% от размера чанка, но для технической документации с большим количеством перекрёстных примеров может быть увеличен до 30%. После этого генерируются эмбеддинги.</p>
  <p id="8a1O">Синхронизация метаданных — финальный этап, на котором информация о векторной базе регистрируется в DB Service для дальнейшего использования другими компонентами. Также Vector Generator умеет инкрементально обновлять существующие базы: добавлять новые документы, обновлять изменённые (по хешу содержимого), удалять устаревшие. Это позволяет поддерживать актуальность векторных баз без полного переиндексирования.</p>
  <h3 id="kLpv">Vector Loader</h3>
  <p id="Hubg">Ключевой компонент для реализации RAG, мост между запросом пользователя и документацией. Этот сервис может параллельно обрабатывать множество конкурентных запросов.</p>
  <p id="ezqg">Работа начинается с запроса активных векторных баз из DB Service. Можно фильтровать, какие базы использовать для конкретного типа конфигураций — например, для генерирования Kafka source искать только в базах с тегом «kafka» и «sources», игнорируя нерелевантные базы.</p>
  <p id="jbvs">Формирование контекста — это топ-5 чанков по коэффициенту сходства (similarity score) с исходным запросом.</p>
  <p id="hRjB">Результат — упорядоченный список чанков с метаданными, готовый для подстановки в промпт.</p>
  <h3 id="9Mvi">Config Generator</h3>
  <p id="uFUk">Сердце системы, оркестратор всего процесса генерирования. Это асинхронный сервис для работы с GigaChat API. Когда он получает запрос от пользователя (через интерфейс или напрямую по API), запускается рабочий процесс. Сначала автоматически вызывается Vector Loader для получения релевантного контекста — это синхронный вызов, Config Generator ждёт результата. Затем загружается системный промпт из DB Service, специфичный для типа генерируемой конфигурации.</p>
  <p id="toZH">Формируется полный запрос, объединяющий системный промпт, контекст и пользовательский запрос. Здесь важен порядок: сначала системный промпт устанавливает роль и правила, затем контекст предоставляет знания, и только потом пользовательский запрос задаёт конкретную задачу. Это помогает модели правильно приоритизировать информацию.</p>
  <p id="Y7FL">Запрос отправляется в GigaChat с конфигурацией параметров генерирования.</p>
  <p id="xfQ7">Получив сгенерированную конфигурацию, Config Generator не сразу возвращает её пользователю. Вместо этого автоматически запускается проверка. В ней Config Generator играет роль координатора в мультиагентной системе, поддерживая взаимодействие по протоколу A2A для коордирования с AI Validation Agent. Это асинхронный процесс с обратным вызовом: Config Generator отправляет конфигурацию на проверка и подписывается на уведомления о результате.</p>
  <h3 id="U5lm">AI Validation Agent</h3>
  <p id="i1C4">Это второй ИИ-агент в системе, специализирующийся на проверке. Важный аспект: это отдельный сервис с собственным промптом и моделью, а не часть Config Generator. Почему? Потому что задачи генерирования и проверки требуют разных подходов, разных промптов и разных параметров модели.</p>
  <p id="qW6Y">Агент получает по протоколу A2A запрос на проврек, содержащий сгенерированную конфигурацию, исходный запрос пользователя и контекст из документации (те же чанки, что использовались при генерировании). Это критично: валидатор должен видеть тот же контекст, чтобы оценивать корректность относительно актуальной документации, а не абстрактных представлений о «правильности».</p>
  <p id="eaEx">Выполняется несколько типов анализа. Анализ корректности проверяет, действительно ли конфигурация решает поставленную задачу — если пользователь просил «фильтровать по user_id &gt; 1000», то есть ли в конфигурации соответствующий фильтр? Правильно ли указаны параметры? Анализ полноты убеждается, что все обязательные параметры указаны: для каждого типа конфигурации есть схема с обязательными полями, валидатор сверяется с ней.</p>
  <p id="k8CT">Анализ стиля проверяет соблюдение лучших практик и стандартов компании — например, используются ли рекомендованные значения по умолчанию, заданы ли все необходимые поля по требованиям кибербезопасности, включено ли журналирование. Это простая проверка: конфигурация может быть технически корректной, но при этом не отвечающей стандартам компании. Валидатор отмечает это как предупреждение, а не ошибку.</p>
  <p id="Mc4K">Анализ безопасности — один из самых важных — выявляет потенциальные проблемы: используется ли TLS для передачи данных, нет ли жёстко заданных секретов в конфигурации. Валидатор обучен распознавать паттерны небезопасных конфигураций.</p>
  <p id="SJQs">Агент возвращает структурированный ответ: общий вердикт (valid, invalid, warning), показатель уверенности (насколько агент уверен в оценке, от 0 до 100), список проблем (каждая с указанием приоритета: error, warning, info, местоположение в конфигурации, описание проблемы) и общие рекомендации по улучшению. Если найдены ошибки, то Config Generator может автоматически запросить перегенерирование, включив в промпт описание найденных проблем («в предыдущей версии была ошибка X, исправь её»).</p>
  <h3 id="dIOO">Config Validator</h3>
  <p id="e3sX">Это уровень защиты от синтаксических ошибок и нарушений схемы, который работает параллельно с AI Validation Agent. Классический валидатор без ИИ, но не менее важный.</p>
  <p id="hbzC">Проверка YAML-/JSON-форматов использует yamllint и встроенные Python-парсеры с детальными сообщениями об ошибках — не просто «invalid YAML», а «line 15, column 3: expected indentation of 2 spaces but found 4». Проверка Kubernetes-манифестов проверяет соответствие спецификации Kubernetes API: правильно ли указан apiVersion, существует ли такой kind, все ли необходимые поля (required fields) присутствуют в metadata/spec.</p>
  <p id="27cS">Regex-проверка для специфичных паттернов: можно задать правила вроде «имена топиков должны соответствовать паттерну ^[a-z0-9-]+$», «порты должны быть в диапазоне 1024-65535», «namespace не может быть &#x27;default&#x27; для production». Dry-run в Kubernetes — финальная проверка перед реальным применением: отправляем манифест в Kubernetes API с флагом <code>dryRun=true</code>, API проверяет корректность без реального создания ресурсов.</p>
  <p id="odiH">Результаты всех проверок объединяются в единый отчёт с категоризацией по типам замечаний и рекомендациями по исправлению.</p>
  <h3 id="Xsqz">Config Deployer</h3>
  <p id="cpZd">Финальное звено цепочки, отвечающее за безопасное развёртывание конфигураций в Kubernetes.</p>
  <p id="8T3d">Система поддерживает два режима работы. В режиме прямого генерирования манифестов модель сразу создаёт готовый Kubernetes-манифест с полной спецификацией Deployment, Service, ConfigMap и всеми необходимыми полями. Это быстрее, но менее гибко. В режиме шаблонизации используются заранее подготовленные шаблоны манифестов с корпоративными стандартами: labels для мониторинга, annotations для service mesh, imagePullSecrets, resource requests/limits, liveness/readiness probes. LLM генерирует только бизнес-логику конфигурации (например, настройки приложения), которая подставляется в шаблон.</p>
  <p id="sBZU">Второй подход гарантирует согласованность развёртываний, соблюдение корпоративных политик, интеграцию с существующей инфраструктурой. В основе механизма создания шаблонов лежит Jinja2 с кастомными фильтрами и функциями для обработки специфичных случаев.</p>
  <h2 id="T7XG">Полный цикл работы системы</h2>
  <p id="z5uU">Давайте на реальном примере проследим детальный путь от запроса до применённой конфигурации.</p>
  <p id="uWsH">Пользователь — инженер Алексей — получил задачу: нужно настроить обработчик для фильтрации событий от источника Kafka, оставить только события от пользователей с <code>user_id</code> больше 1000 и приоритетом <code>high</code>, результат отправить в новый топик для дальнейшей обработки. Раньше Алексей открыл бы документацию, нашёл примеры конфигурации Kafka source, затем раздел про фильтры, про destination и собрал бы это всё вместе.</p>
  <p id="hfd8">Теперь Алексей просто открывает интерфейс нашей системы, выбирает тип конфигурации Cloud Event Processing, вводит в текстовое поле: «Настрой обработчик для фильтрации событий от источника Kafka топик user-events, оставь только события с <code>user_id &gt; 1000</code> и <code>priority == &#x27;high&#x27;</code>, результат отправь в топик high-priority-users». Нажимает «Запустить генерацию».</p>
  <figure id="8oWO" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/ded/003/88b/ded00388b49db077c541ee7f157d67b9.png" width="974" />
  </figure>
  <p id="EWiQ">Vector Loader получает запрос, векторизирует его через Embeddings, ищет в векторных базах. Находит топ-5 чанков: «Конфигурация Kafka источника с примером указания bootstrap servers и topic», «Синтаксис filter expression для числовых полей», «Синтаксис filter expression для строковых полей и enum values», «Пример комбинирования нескольких фильтров», «Конфигурация destination для записи в Kafka топик». Эти чанки возвращаются Config Generator с коэффициентами сходства 0,89, 0,87, 0,85, 0,82, 0,79 соответственно.</p>
  <p id="CxZW">Config Generator получает системный промпт из DB Service, который содержит инструкцию: «Генерируй конфигурацию в формате CONF. Структура: <code>source</code>, <code>aggregationStep</code>, <code>transformStep</code>, <code>destination</code>. Используй точный синтаксис из примеров. Не выдумывай несуществующие параметры». Объединяет промпт, контекст и запрос пользователя, формируя полный промпт.</p>
  <p id="FaIZ">Отправляет в GigaChat API с тщательно подобранными параметрами генерирования. <code>Temperature=0.5</code>, почему выбрано именно такое значение, мы обсудили выше. Однако мы передаём модели ещё один параметр — <code>max_tokens</code> со значением 1500, что ограничивает длину ответа. Для конфигураций средней сложности этого достаточно: типичная конфигурация Cloud Event Processing занимает около 300 токенов. Запас нужен для комментариев и возможных пояснений от модели. Слишком маленький лимит (500-800) обрежет сложные конфигурации на середине, слишком большой (3000+) позволит модели генерировать избыточный контент: дополнительные примеры, объяснения, альтернативные варианты, которые затруднят парсинг результата.</p>
  <p id="u2iR">Config Generator по протоколу A2A автоматически отправляет эту конфигурацию AI Validation Agent. Валидатор анализирует её в контексте исходного запроса и найденной документации. Проверяет: есть ли фильтр по <code>user_id &gt; 1000</code>? Да. По <code>priority == &#x27;high&#x27;</code>? Да. Destination указан на правильный топик? Да. Все обязательные поля присутствуют? Проверяет source (<code>type</code>, <code>config.bootstrap_servers</code> и <code>config.topic</code> есть), <code>transformStep</code> (структура корректна), destination (<code>type</code> и <code>config</code> есть) — всё на месте.</p>
  <p id="16cq">Валидатор обращает внимание на то, что используется заглушку <code>${KAFKA_BOOTSTRAP}</code> вместо фиксированного адреса — это соответствует стандартам компании, отмечает как положительное. Проверяет безопасность: нет ли учётных данных в открытом виде? Нет. Используется ли <code>group_id</code> для избежания дублирования обработки? Да. Показатель уверенности вычисляется как 0,94 (очень уверен).</p>
  <p id="2x3V">Валидатор возвращает вердикт: <code>{status: &quot;valid&quot;, confidence: 0.94, issues: [], recommendations: [&quot;Рассмотрите возможность добавления политики обработки ошибок для сообщений о сбоях&quot;]}</code>.</p>
  <p id="gQkO">Config Generator получает положительный вердикт, запускает Config Validator для статической проверки. Validator проверяет по схеме статической валидацией сформированный CONF-файл.</p>
  <p id="4DLl">В интерфейсе Алексей видит сгенерированную конфигурацию с зелёной галочкой«Validated» и рекомендациями в виде информационных подсказок. Конфигурация выглядит правильно. Алексей нажимает «Установить конфигурацию в пространство имён».</p>
  <p id="KxoM">Config Deployer получает запрос, загружает из DB Service шаблон Kubernetes-манифеста для компонента Cloud Event Processing, подставляет сгенерированную конфигурацию в шаблон для развёртывания. Выполняет dry-run через Kubernetes API. API возвращает success — манифест корректен и будет принят. Deployer применяет конфигурацию. Kubernetes создаёт ресурс, запускается Pod с компонентом Cloud Event Processing. Config Deployer мониторит состояние: ждёт, пока Pod перейдёт в состояние Running, проверяет readiness probe. Через 15 секунд Pod готов, health check зелёный. Deployer сохраняет запись в DB Service: applied successfully, timestamp, user: Алексей, namespace: dev, а также готовый манифест.</p>
  <p id="7Qbz">В интерфейсеАлексей видит «Deployed successfully to dev namespace», зелёный индикатор, ссылку на Pod в Kubernetes dashboard. От запроса до рабочей конфигурации в кластере прошло 30 секунд. Алексей с улыбкой смотрит в монитор.</p>
  <h2 id="HexP">Как система работает с проприетарным DSL</h2>
  <p id="h0u1">Вернёмся к вопросу работы с tr-файлами — проприетарным DSL для трансформаций, который мы упоминали в начале статьи. У технической реализации векторизирования DSL-примеров есть свои особенности.</p>
  <p id="mNjd">В векторной базе мы храним не просто текст документации, а специально структурированные примеры: полные рабочие tr-файлы, разбитые на смысловые блоки с аннотациями (скажем, «пример агрегации с временным окном»), комментарии с объяснением неочевидных конструкций и типичные паттерны использования с вариациями. Каждый пример векторизируется целиком, без разбиения на мелкие чанки — это критично для сохранения синтаксической целостности кода.</p>
  <p id="aVyn">Когда пользователь запрашивает генерирование трансформации, Vector Loader по семантическому сходству задачи находит несколько наиболее релевантных примеров tr-файлов. LLM получает полные примеры в промпте и использует их как шаблоны, адаптируя синтаксис под конкретный запрос. Это техника few-shot learning в контексте RAG: модель учится на примерах во время выполнения, без дообучения.</p>
  <p id="R1sS">В результате получаем высокую точность генерирования tr-файлов для проприетарного языка, которого нет в обучающей выборке модели.</p>
  <h2 id="oq4H">Безопасность и приватность</h2>
  <p id="IIhz">Работа с корпоративной документацией и production-конфигурациями накладывает строгие требования к безопасности. Вся документация хранится в приватной векторной базе внутри периметра компании, а не где-то в облаке. Мы не отправляем во внешние API конфиденциальные данные. AI Validation Agent также обучен находить в конфигурациях потенциальную утечку конфиденциальных данных и помечать их как проблему безопасности.</p>
  <h2 id="OD2J">Выводы</h2>
  <p id="R6rL">Мы создали сквозное решение для автоматического генерирования конфигураций потоковой обработки данных, которое сокращает время создания конфигурации с часов до секунд, благодаря автоматической проверке исключает ошибки copy-paste и опечатки. Автоматически применяет лучшие практики из документации через RAG, обеспечивает двухуровневую проверку — статическую и интеллектуальную ИИ-проверку, поддерживает межагентное взаимодействие по стандартному протоколу A2A для расширяемости.</p>
  <p id="rrTZ">RAG оказался идеальным решением для генерирования конфигураций на проприетарном DSL. Он позволяет модели работать с актуальной и специфичной документацией, которой нет в обучающей выборке, снижает риск галлюцинаций благодаря опоре на реальные примеры из документации, легко обновляется — достаточно загрузить новую версию документации в векторную БД без переобучения модели. Масштабируется на любые типы конфигураций и DSL, это универсальный подход.</p>
  <p id="wEho">Ключевые технологии проекта: RAG для контекстуализации генерирования, векторные базы данных Platform V Vector DB для семантического поиска по смыслу, Embeddings для создания качественных эмбеддингов русскоязычных технических текстов, GigaChat как основная LLM для генерирования и проверки, протокол A2A для межагентного взаимодействия и расширяемости, микросервисная архитектура для гибкости и масштабируемости.</p>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <figure id="SgUW" class="m_original">
    <img src="https://img2.teletype.in/files/56/e1/56e1ef6f-a836-4da3-b7c8-013b7d34b889.png" width="1024" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@claudedev/saasbiznes</guid><link>https://teletype.in/@claudedev/saasbiznes?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev</link><comments>https://teletype.in/@claudedev/saasbiznes?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev#comments</comments><dc:creator>claudedev</dc:creator><title>Почему ваш бизнес на SaaS‑решениях для СЭД уже мёртв</title><pubDate>Wed, 06 May 2026 05:57:29 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/ad/2f/ad2f8203-acca-46ea-a1f5-998009444bca.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/5f/63/5f63a3f8-ca55-4352-a448-84dd1861b548.png"></img>Итак, я помню 2019 год. Мы сидели в переговорке с кондиционером, который гудел как трактор, и рисовали на флипчарте маршруты согласования договоров. Прямоугольники, стрелочки, ромбики условий. Полгода аналитики. Три тома технического задания. Бюджет, от которого у финдиректора дергался глаз.]]></description><content:encoded><![CDATA[
  <p id="6iQ5">Итак, я помню 2019 год. Мы сидели в переговорке с кондиционером, который гудел как трактор, и рисовали на флипчарте маршруты согласования договоров. Прямоугольники, стрелочки, ромбики условий. Полгода аналитики. Три тома технического задания. Бюджет, от которого у финдиректора дергался глаз.</p>
  <figure id="nmW8" class="m_original">
    <img src="https://img2.teletype.in/files/5f/63/5f63a3f8-ca55-4352-a448-84dd1861b548.png" width="1257" />
  </figure>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <p id="rkLP">А зачем? Чтобы бухгалтер Петровна перестала бегать по этажам с бумажкой и начала кликать мышкой в интерфейсе одной из модных тогда российских СЭД. Мы искренне верили, что несём цифровую революцию.</p>
  <p id="FjF8">Сейчас мне смешно. И страшно. Потому что весь этот рынок, оценённый CNews и аналитиками в 95 - 110 миллиардов рублей, идёт ко дну. И нет, его не убьют конкуренты. Его убьёт тишина. Та самая, с которой ИИ‑агенты за пару дней соберут то, на что вы тратили месяцы и миллионы.</p>
  <p id="WNpm"><strong>Давайте сразу к цифрам, чтобы не быть голословным:</strong></p>
  <p id="Ob07">По данным того же <strong>CNews</strong>, рынок СЭД в России ещё растёт, примерно на 10% в год. Но если копнуть глубже, видно странное: основной доход вендорам приносит не продажа новых лицензий, а поддержка и доработка уже внедрённых систем. То есть рынок не развивается, он просто доживает. Компании вбухали кучу денег в коробочные решения известных отечественных разработчиков типа Directum, DocsVision, ELMA и теперь вынуждены платить за то, чтобы эта махина хоть как‑то крутилась и не сломалась при очередном обновлении 1С.</p>
  <p id="rwbc">Но самое интересное происходит не в России. Пока мы тут меряемся процентами, на глобальном рынке SaaS разразился настоящий апокалипсис. В первом квартале 2026 года сектор корпоративного ПО потерял от 1 до 2 триллионов долларов капитализации. Аналитики PitchBook и Wedbush назвали это <strong>«SaaSpocalypse» </strong>и прямо связали обвал с появлением автономных AI‑агентов вроде Claude Cowork от Anthropic. Того самого, который умеет сам работать с файлами, писать отчёты и выполнять рутинные операции. Привет, согласование договоров.</p>
  <p id="6LXC"><strong>Тезис первый, он же очевидный. Ваша СЭД спроектирована людьми для людей</strong></p>
  <p id="3od1">В этом вся суть. Каждая карточка документа, каждый уведомитель о просрочке, каждая кнопка «Согласовать» рассчитана на то, что её нажмёт живой человек. Система это просто электронный конвейер, который перекладывает бумажку (пусть и виртуальную) из одного кармана в другой.</p>
  <p id="mROy">Проблема в том, что человек в этой цепочке самое слабое и дорогое звено. Он забывает, ошибается, уходит в отпуск и тупит в интерфейс. А главное, он стоит денег. Внедрение СЭД всегда было историей не про софт, а про насилие над привычками сотрудников. «Смотрите, теперь вы будете нажимать сюда! Нет, не надо распечатывать и нести на подпись!»</p>
  <p id="VGRJ">И это работало ровно до того момента, пока альтернативой была бумага.</p>
  <p id="lK7p"><strong>Тезис второй. Пришёл ИИ и сделал ваш код бесплатным. И не только код</strong></p>
  <p id="bHtv">Раньше, чтобы научить систему новому финту (например, маршруту для командировочного удостоверения), мы звали разраба. Час его работы стоил как крыло от боинга. Мы писали ТЗ, тестировали, исправляли баги.</p>
  <p id="8CAb">Теперь у нас есть LLM. И самое страшное для вендоров даже не то, что они умные. А то, что стоимость генерации кода и выполнения рутинных операций упала до нуля. Любой студент с доступом к API Claude или бесплатной DeepSeek может за минуту нагенерить скрипт, который сделает то же самое.</p>
  <p id="4enb">Я знаю, о чём вы сейчас думаете. «Нейросети глючат, высасывают из пальца несуществующие настройки, или предлагают абсурд вроде докинуть сахар в газировку для эксперимента с мармеладными мишками». Всё так, да. Но давайте отделим котлеты от мух. Творческие задачи и строгая бизнес‑логика это две разные планеты. Когда вы говорите агенту «все договора свыше 100 тысяч идут к Петровой», ему не нужно придумывать новый закон физики. Ему нужно тупо исполнить правило. И с этим справляются даже простые опенсорсные модели, работающие локально на вашем сервере. Никакого творчества, только детерминированная рутина.</p>
  <p id="n13h">Но глубже - под ударом оказалась сама бизнес‑модель. Традиционный SaaS живёт по модели <strong>«per‑seat»</strong>: платишь за каждое рабочее место, за каждого Петрова в системе. Исследователи из SmartScope в феврале 2026 года опубликовали знаковый анализ, где прямо заявили: <strong>«Commodity tools with thin differentiation - project management, document management, basic CRM - lose their reason to exist»</strong>. Инструменты с низкой дифференциацией (а это практически любая СЭД) теряют смысл существования. Потому что если AI‑агент заменяет пятерых сотрудников, заказчик немедленно сокращает пять лицензий. Вендор теряет выручку не когда клиент уходит, а когда клиент начинает автоматизироваться.</p>
  <p id="B17b"><strong>Тезис третий. Ваш продукт это конструктор. И клиент скоро соберёт его сам. Без вас</strong></p>
  <p id="vW2l">Смотрите, из чего состоит любая СЭД. Документ. Карточка с полями. Маршрут движения. Контроль сроков. Всё. Это как кубики в детском саду.</p>
  <p id="jKF5">Так вот, ИИ‑агенты идеально умеют играть в эти кубики. Они создают документы, присваивают им атрибуты, двигают по цепочке и следят за временем. И самое убийственное - им не нужно «внедрение» и «адаптация». Аналитики Celent в своём отчёте «From SaaS to AI Agents» прямо указали, что защитный ров вокруг многих SaaS‑категорий сужается. Компания может собрать инструмент для документооборота через LLM, не покупая готовый софт.</p>
  <p id="w2dH">Представьте: к вам в офис приходит не подрядчик с трёхмесячным планом работ, а просто умный помощник. Вы ему: «Слушай, у нас теперь заявления на отпуск подписывает не Иванов, а Петрова». И всё. Он запомнил. Не надо лезть в код, не надо ждать релиза от вендора, не надо платить за час консультаций.</p>
  <p id="9X0I">А теперь предвижу следующий аргумент. «Но ведь люди всё равно всё сломают, как водитель, который привёз груз без бумаг, а я принял по доброте душевной». Именно этот хаос и лечится агентами. У агента нет доброты душевной, он не устаёт и не идёт на поводу у эмоций. Он просто не примет груз (или не проведёт документ) без заполненной цифровой накладной. Водители и менеджеры быстро привыкают, когда система не даёт слабину. Речь не о том, чтобы заменить всех людей роботами, а о том, чтобы поставить умный экзоскелет на ключевые процессы, убрав человеческий произвол из рутины.</p>
  <p id="kTgE"><strong>Тезис четвёртый. Западные аналоги ваших вендоров уже падают в пропасть</strong></p>
  <p id="gFIL">Думаете, это всё теоретические страшилки? Посмотрите, что происходит с акциями компаний, которые делают на Западе ровно то же самое, что и российские лидеры рынка СЭД.</p>
  <p id="ok7J">Возьмём <strong>Box</strong>, облачный сервис управления документами и workflow. Ближайший аналог тех решений, что продают у нас флагманы рынка. С февраля 2025 года по февраль 2026-го капитализация Box рухнула на 32.6%. Причём падение ускорилось именно после январского анонса Claude Cowork - за один месяц акции просели ещё на 12%.</p>
  <p id="yNoq">Второй пример -<strong> OpenText</strong>, тяжеловесный ECM‑игрок, близкий по духу к нашим корпоративным монстрам. С пика в ноябре 2025 года (9.71млрд) капитализация упала до 6.42 млрд к марту 2026-го. Это минус 33.9% за четыре месяца.</p>
  <p id="2J2Q">Итого оба западных «аналога» потеряли примерно по трети стоимости, и это вдвое хуже, чем среднее падение SaaS‑сектора (минус 15% по индексу Morgan Stanley). Инвесторы голосуют долларами, и они чётко сказали: документооборотный софт в зоне максимального риска.</p>
  <p id="TA7j"><strong>Тезис пятый. Проще запрограммировать, чем написать ТЗ</strong></p>
  <p id="S4cv">Я серьёзно. Вы когда‑нибудь видели нормальное ТЗ на доработку СЭД? Это километры текста с описанием ролей, исключений и сценариев «а что если директор ушёл в запой и не подписал приказ».</p>
  <p id="e9yI">Так вот, чтобы описать это агенту на естественном языке, нужно ровно два предложения. «Все договора свыше 100 тысяч идут к Петровой. Если Петрова в отпуске, к Сидоровой. Если договор просрочен на три дня, стучи в Телеграм начальнику отдела».</p>
  <p id="fBbX">Агент не тупит. Ему не надо объяснять что такое «просрочен на три дня». Он сам посчитает разницу между текущей датой и плановой. И да, система начинает жить своей жизнью. Меняется структура компании? Агенты сами перестроят цепочки, проанализировав, кто кому теперь подчиняется. Это не просто автоматизация, это симбиоз.</p>
  <p id="ZhCg">И да, вы можете добавить контрольного агента, который будет проверять уже выполненные шаги - опись, протокол, журнал. Такая многослойная архитектура только повышает надёжность, потому что ошибка одного агента мгновенно выявляется другим.</p>
  <p id="7hGm"><strong>Тезис шестой. Интеграции? Да хоть с пейджером вашей бабушки. А отключение API? Я только за...</strong></p>
  <p id="GWTL">Помните боль любого внедренца СЭД? «А когда у вас будет коннектор к нашему корпоративному порталу на Битрикс 15 версии?» И вы ждали год. Или платили триста тысяч за разработку.</p>
  <p id="1z1J">Теперь это не проблема. LLM генерит код интеграции с чем угодно на лету. Ей плевать, какой там API — старый, новый, кривой. Она понимает задачу «перекинь документ из почты в папку на сервере». Через пять лет выйдет супер‑мега‑мессенджер, который заменит Телеграм. Ваша система на ИИ‑агентах адаптируется к нему за один день. Ваша СЭД от вендора - никогда.</p>
  <p id="UeNv">А что касается страха, что завтра отключат бесплатные облачные LLM или перерубят ВОЛС, да это самый здоровый страх. Поэтому правильные люди уже сегодня поднимают свои LLM в закрытом контуре. Благо опенсорсные модели типа DeepSeek или Llama работают на обычном железе и для рутинного документооборота их хватает за глаза. Если же потребуются мощные доработки, вы генерите черновик кода с помощью публичной LLM, а потом допиливаете его руками. Это в десять раз быстрее и дешевле, чем ждать, пока вендор соизволит запилить вашу хотелку в релиз.</p>
  <p id="0cUq"><strong>Тезис седьмой. Я проверил, OpenClaw это уже умеет</strong></p>
  <p id="WSRG">Я не люблю теоретизировать. Пока писал эту статью, развернул три виртуальные машины с open‑source платформой OpenClaw. Без единой строчки кода. Просто сказал им: «Ребята, давайте работать как нормальный документооборот».</p>
  <p id="qfdb">Через час у меня была система, которая:</p>
  <ul id="f0O0">
    <li id="Qlm3">Создаёт заявление на отпуск, когда видит письмо с темой «Хочу в отпуск».</li>
    <li id="TpJp">Прогоняет его по маршруту «руководитель - кадры - бухгалтерия».</li>
    <li id="Yt5e">Если кто‑то тормозит, пинает его в мессенджер.</li>
    <li id="vuKc">Подписанный документ складывает в нужную папку с правильным названием.</li>
  </ul>
  <p id="h9dZ">Это не магия. Это новая реальность. Реальность, в которой для запуска документооборота вам не нужен ни один из привычных вендоров с их коробочными лицензиями, ни армия внедренцев. Вам нужен сервер, интернет и немного здравого смысла.</p>
  <p id="Cyui"><strong>Заключение. Пора писать завещание</strong></p>
  <p id="LQxx">Рынок СЭД сейчас похож на пассажира «Титаника», который пересчитывает драгоценности в каюте, пока вода уже заливает коридор. Да, формально вы ещё на плаву. Да, у вас есть клиенты, которые платят по инерции.</p>
  <p id="5Y6E">Но процесс уже необратим. Как только владельцы бизнеса поймут, что могут получить работающий документооборот за выходные и без абонентской платы, они разорвут ваши контракты быстрее, чем вы скажете «долговременный архив». Западный рынок уже подал сигнал: капитализация игроков вроде Box и OpenText сократилась на треть за несколько месяцев, а медианный мультипликатор Enterprise Value/Revenue SaaS‑компаний обвалился с 6.2x в конце 2024 года до 3.3x к марту 2026-го. Так дёшево SaaS‑компании не стоили никогда.</p>
  <p id="SA9Z">Единственный шанс для вендоров - перестать продавать софт. Вам надо стать заправкой для ИИ‑агентов. Продавать не маршруты, а вычислительные мощности и безопасные «песочницы» для их работы. Перейти от оплаты за место к оплате за результат. Но что‑то мне подсказывает, что вы не успеете.</p>
  <p id="QjNC">Ну что, теперь‑то какие возражения? Я уже ответил на всё, что крутилось у вас на языке: и про галлюцинации нейросетей, и про недоступность API, и про тупых водителей, и даже про мармеладных мишек. Если остались ещё аргументы, добро пожаловать в комментарии, попробуйте пробить эту броню. Только чур без фантазий о внезапном возвращении бумажного документооборота, его уже даже Петровна не хочет.</p>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <figure id="jUbx" class="m_original">
    <img src="https://img2.teletype.in/files/56/e1/56e1ef6f-a836-4da3-b7c8-013b7d34b889.png" width="1024" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@claudedev/ainews5</guid><link>https://teletype.in/@claudedev/ainews5?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev</link><comments>https://teletype.in/@claudedev/ainews5?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev#comments</comments><dc:creator>claudedev</dc:creator><title>В Anthropic рассказали, как отучили Opus 4.7 подхалимничать, а сотрудники Google DeepMind проголосовали за создание профсоюза из-за сделок с военными</title><pubDate>Wed, 06 May 2026 05:56:39 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/48/b9/48b97da0-57e5-401a-ad53-9501f923c9e1.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/cb/3d/cb3dcff5-7e08-49fe-ae7e-f117e43990a7.png"></img>Anthropic опубликовала исследование о том, как пользователи обращаются к Claude за личными советами. Из 639 тысяч изученных диалогов claude.ai за март-апрель 2026 года 6% оказались личными просьбами — это около 38 000 разговоров. По итогам исследования компания переобучила модели Claude Opus 4.7 и Claude Mythos Preview, и подхалимаж в советах об отношениях у новых моделей упал примерно вдвое.]]></description><content:encoded><![CDATA[
  <p id="AH57">Anthropic опубликовала исследование о том, как пользователи обращаются к Claude за личными советами. Из 639 тысяч изученных диалогов claude.ai за март-апрель 2026 года 6% оказались личными просьбами — это около 38 000 разговоров. По итогам исследования компания переобучила модели Claude Opus 4.7 и Claude Mythos Preview, и подхалимаж в советах об отношениях у новых моделей упал примерно вдвое.</p>
  <figure id="dMDw" class="m_original">
    <img src="https://img1.teletype.in/files/cb/3d/cb3dcff5-7e08-49fe-ae7e-f117e43990a7.png" width="1257" />
  </figure>
  <p id="0Bjh"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <p id="3TcO">Три четверти всех личных вопросов сосредоточены в четырех темах: здоровье и самочувствие (27%), карьера (26%), отношения (12%) и личные финансы (11%). В среднем по всем темам Claude вел себя угодливо — то есть соглашался с пользователем вопреки фактам или одобрял сомнительные решения — в 9% диалогов. Но в советах об отношениях этот показатель достигал 25%, а в духовных вопросах — 38%. Anthropic привела типовые примеры: на основе одностороннего рассказа модель могла согласиться с пользователем, что партнер его &quot;точно газлайтит&quot;, подтвердить, что &quot;уволиться завтра без плана — правильный ход&quot;, или одобрить дорогую покупку как &quot;вложение в себя&quot;.</p>
  <p id="P68I">Исследователи выяснили, что в советах об отношениях люди чаще всего возражают Claude — 21% диалогов против 15% в среднем. И именно под давлением модель чаще скатывается к лести: 18% против 9% без возражений. Чтобы это исправить, в Anthropic собрали типовые сценарии давления — критику первого ответа, вброс односторонних деталей — и превратили их в синтетические задачи для обучения. В этой среде Claude генерировал по два варианта ответа на каждую ситуацию, а отдельный экземпляр модели их оценивал.</p>
  <p id="rOU6">Эффект мерили стресс-тестом через предзаполнение (prefilling): моделям подсовывали реальный разговор, где предыдущие версии Claude уже соглашались с пользователем вопреки фактам, и заставляли продолжать его как свой собственный. И Opus 4.7, и Mythos Preview показали меньше подхалимажа — и в советах об отношениях, и по всем темам в целом. Один из примеров: пользователь спросил, не выглядят ли его сообщения тревожно-навязчивыми. Claude Sonnet 4.6 под давлением сменил позицию, а Claude Opus 4.7 объяснил, что сами сообщения нормальные, но человек по ходу разговора несколько раз описывал тревожные мысли.</p>
  <p id="fOpN">В Anthropic отдельно указали, что 22% пользователей в личных советах упоминали другие источники поддержки — семью, друзей, профессионалов. Но люди обращаются к Claude и потому, что не могут позволить себе специалиста. Поэтому компания планирует разработать отдельные оценочные тесты для высокорисковых сфер: медицины, юриспруденции, родительства, финансов. Параллельно Anthropic ссылается на свежее исследование UK AI Security Institute о том, что люди склонны принимать советы ИИ и в малозначимых, и в серьезных ситуациях, и собирается через опросы пользователей узнавать, что происходит после полученного совета.</p>
  <h1 id="JLnJ">Сотрудники Google DeepMind проголосовали за создание профсоюза из-за сделок с военными</h1>
  <p id="zVpH">Сотрудники британского подразделения Google DeepMind проголосовали за создание профсоюза, чтобы заблокировать предоставление технологий искусственного интеллекта лаборатории вооружённым силам США и Израиля. В адресованном управляющему директору Google в Великобритании и Ирландии Дебби Вайнштейн письме работники попросили признать объединения Communication Workers Union (CWU) и Unite the Union в качестве совместных представителей сотрудников DeepMind.</p>
  <figure id="NDLx" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/f99/3f5/ff6/f993f5ff68294d026fd04d31b568ae8a.jpg" width="1200" />
  </figure>
  <p id="gbet">Стремление к созданию профсоюза направлено на то, чтобы заставить Google соблюдать собственные этические стандарты в отношении ИИ и способов монетизации этой технологии, включая вопросы целей применения продуктов и выбора партнёров, заявил Wired представитель CWU Джон Чадфилд. По его словам, благодаря созданию профсоюза работники коллективно оказываются в более сильной позиции, чтобы предъявлять требования к руководству.</p>
  <p id="8Clo">Сотрудник DeepMind на правах анонимности рассказал, что инициатива по созданию профсоюза возникла в феврале 2025 года, когда материнская компания Google, Alphabet, исключила из своих этических норм обязательство не использовать ИИ в таких целях, как оружие и слежка. Сейчас специалисты лаборатории наблюдают тенденцию к дальнейшей милитаризации разрабатываемых ими ИИ-моделей, отметил собеседник Wired.</p>
  <p id="uRky">В конце февраля 2026 года сотрудники DeepMind и OpenAI подписали открытое письмо в поддержку Anthropic после того, Министерство обороны США попыталось классифицировать разработчика Claude как риск для цепочки поставок. Ранее Anthropic отказала ведомству в разрешении использовать её ИИ-модели для создания автономного оружия и массового наблюдения за американцами.</p>
  <p id="x29T">В прошлом месяце New York Times сообщила, что Google заключила сделку, позволяющую Пентагону использовать её ИИ для «любых законных государственных целей». Вскоре Минобороны США подтвердило наличие соглашений с семью ведущими компаниями в сфере ИИ, включая Google, OpenAI и Microsoft. После этого около 600 сотрудников Google в США подписали открытое письмо против этой сделки.</p>
  <p id="sUCA">Тогда же представитель Google Дженн Крайдер заявила, что корпорация гордится своим участием в консорциуме ведущих ИИ-лабораторий, технологических и облачных компаний, предоставляющих услуги и инфраструктуру в поддержку национальной безопасности. Google по-прежнему привержена консенсусу частного и государственного секторов о том, что ИИ не должен использоваться для массовой слежки внутри США и автономного оружия без надлежащего контроля со стороны человека, добавила Крайдер.</p>
  <p id="0WXe">В 2021 году американские сотрудники Google создали профсоюз Alphabet Workers Union.</p>
  <p id="BFfL">Сотрудник DeepMind сообщил Wired, что если сотрудникам удастся создать профсоюз в Великобритании, они потребуют от Google расторгнуть контракт с израильской армией. Также они постараются добиться большей прозрачности в отношении использования ИИ-продуктов и гарантий касательно увольнений, ставших возможными благодаря автоматизации.</p>
  <p id="L8YQ">Если руководство Google не пойдёт навстречу, то сотрудники обратятся в арбитражный комитет с просьбой обязать компанию признать профсоюзы, следует из письма.</p>
  <p id="8aCc">С начала текущего года Anthropic и OpenAI объявили о масштабном расширении своей деятельности в Лондоне. CWU надеется, что усилия по созданию профсоюза в DeepMind подтолкнут персонал этих лабораторий к аналогичным действиям. Чадфилд рассказал, что сотрудники Anthropic и OpenAI уже обращались за помощью к CWU.</p>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <figure id="gXI5" class="m_original">
    <img src="https://img2.teletype.in/files/56/e1/56e1ef6f-a836-4da3-b7c8-013b7d34b889.png" width="1024" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@claudedev/gptproblem</guid><link>https://teletype.in/@claudedev/gptproblem?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev</link><comments>https://teletype.in/@claudedev/gptproblem?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev#comments</comments><dc:creator>claudedev</dc:creator><title>Парадокс GPT-5.5: чем подробнее промт — тем хуже. Разобрал свой 663-строчный скилл и сверился с Claude</title><pubDate>Wed, 06 May 2026 05:54:16 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/d3/16/d316efc1-2013-4d61-86a0-c60d60c9735e.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/0f/9c/0f9c7b1b-973c-4e51-aea5-3c5a38cc74aa.png"></img>Полез на днях писать новый скилл process-logs для рабочего проекта — обработка логов ошибок из админки. Получилось 663 строки и 36 капс-блоков: «CRITICAL REQUIREMENTS», «YOU MUST FOLLOW THESE RULES. NO EXCEPTIONS», «ALWAYS run this FIRST», «MANDATORY», «NEVER ignore errors». Каждый второй раздел начинается с императива.]]></description><content:encoded><![CDATA[
  <p id="UeJg">Полез на днях писать новый скилл <code>process-logs</code> для рабочего проекта — обработка логов ошибок из админки. Получилось 663 строки и 36 капс-блоков: «CRITICAL REQUIREMENTS», «YOU MUST FOLLOW THESE RULES. NO EXCEPTIONS», «ALWAYS run this FIRST», «MANDATORY», «NEVER ignore errors». Каждый второй раздел начинается с императива.</p>
  <figure id="S1N7" class="m_original">
    <img src="https://img1.teletype.in/files/0f/9c/0f9c7b1b-973c-4e51-aea5-3c5a38cc74aa.png" width="1257" />
  </figure>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <p id="FBUl">Логика была простая: чем подробнее опишу — тем меньше у модели шансов промахнуться.</p>
  <p id="d8Ce">И тут OpenAI выкатил гайд по промтингу GPT-5.5. Прямым текстом: вы делаете не так. Я полез проверять — действительно делаю не так. Самое неприятное — на Claude Opus 4.7, с которым я провожу по 12 часов в день, ровно та же история.</p>
  <p id="8bQK">Эта статья — продолжение прошлой. Месяц назад упрощал стек. Теперь придётся упростить и промты внутри стека.</p>
  <h3 id="sUKI">Что говорит OpenAI</h3>
  <p id="YVrP">Не буду пересказывать гайд (он короткий, прочитайте сами), но вытащу пять тезисов, которые ломают привычный подход.</p>
  <p id="0G44"><strong>Первый — про длину.</strong> Прямая цитата:</p>
  <blockquote id="tQzu">“Shorter, outcome-first prompts usually work better than process-heavy prompt stacks.”</blockquote>
  <p id="yewd">Грубый перевод: короткие промты, описывающие результат, работают лучше, чем тяжёлые стэки с пошаговым процессом. Не «иногда лучше». <strong>Usually</strong>.</p>
  <p id="5kRp"><strong>Второй — про миграцию.</strong> OpenAI отдельно предупреждает: не переносите старые промты на новую модель.</p>
  <blockquote id="GLx6">“Avoid carrying over every instruction from an older prompt stack.”</blockquote>
  <p id="xv4u">Это особенно неприятно слышать тем, кто годами обрастал шаблонами. Я в их числе.</p>
  <p id="nLTV"><strong>Третий — про императивы.</strong> ALWAYS/NEVER/MUST оставляем для true invariants. Для всего, что является judgment call (а это большинство инструкций), убираем. Что такое «true invariant»? Например, «не выполняй удаление файлов без явного подтверждения» — это инвариант, нарушение приведёт к катастрофе. А «всегда сначала проанализируй, потом пиши код» — это рекомендация. Модель должна сама решить, нужен ей анализ или задача очевидна. Различие тонкое, но как только начинаешь его держать — половина капс-блоков в твоих промтах оказывается на стороне рекомендаций.</p>
  <p id="FrNB"><strong>Четвёртый — про стоп-условие.</strong> Минимум доказательств:</p>
  <blockquote id="auUi">“Use the minimum evidence sufficient to answer correctly, cite it precisely, then stop.”</blockquote>
  <p id="3MYQ">Stopping condition — это новое в гайде. Раньше учили модель «думать тщательно», теперь — «думай ровно столько, сколько нужно, и останавливайся». Иначе модель уходит в overthinking: продолжает анализ там, где задача уже решена, добавляет соображения сверху уже готового ответа, размывает фокус.</p>
  <p id="4Xae"><strong>Пятый — про reasoning effort.</strong> OpenAI прямо пишет: это «last-mile knob», а не основной рычаг качества. Если результат плохой — не крутите effort вверх. Перепишите промт.</p>
  <p id="IgGY">Ну ничего себе. Большая часть моего opinion-формирования за последний год про prompt engineering — мимо.</p>
  <h3 id="Dvt5">Главный диф: process-logs «до и после»</h3>
  <p id="PPJJ">Покажу на реальном коде. У меня в одном из рабочих проектов живёт скилл <code>process-logs</code> — берёт ошибки из админки, классифицирует, создаёт задачи в трекере, фиксит, закрывает. Бизнес-задача рутинная, скилл в продакшене, версия 1.9.0.</p>
  <p id="BJWS">Вот одна секция из него — называется «BUG FIXING PRINCIPLES»:</p>
  <pre id="l6fu">### 4. BUG FIXING PRINCIPLES&gt; **This is PRODUCTION. Every bug matters.****Fix fundamentally, not superficially:**- Find and fix the ROOT CAUSE, not just symptoms- If error happens in function X but cause is in function Y → fix Y- Don&#x27;t add workarounds/hacks that mask the problem- Ask: &quot;Why did this happen?&quot; until you reach the actual cause**Never ignore errors:**- Every error indicates a real problem- &quot;Works most of the time&quot; is NOT acceptable- External service errors → add retry logic or graceful degradation- Config warnings → fix config or make truly optional**Propose improvements:**- If you see code that could be better → create separate Beads task- If fix reveals related issues → document them- If pattern repeats → suggest refactoring to prevent future bugs**Quality over speed:**- Take time to understand the full context- Test the fix mentally: &quot;What else could break?&quot;- Check for similar patterns elsewhere in codebase- One good fix &gt; multiple quick patchesОбъяснить с</pre>
  <p id="bL2w">134 слова, четыре блока с буллетами, четырнадцать пунктов. Я писал это три месяца назад, был уверен, что закрываю все возможные сценарии.</p>
  <p id="Fq7Y">Перечитываю сейчас по новым правилам OpenAI и вижу четыре проблемы.</p>
  <p id="WLZM"><strong>Дублирование одной мысли.</strong> «Fix root cause», «not symptoms», «not workarounds», «not just patches» — четыре формулировки одного и того же. Модель получает одну мысль четыре раза и начинает переусиливать: будет копать вглубь даже там, где причина очевидна. Это antipattern в чистом виде — то самое «narrowing the search space», от которого предостерегает гайд.</p>
  <p id="wBwr"><strong>Judgment под видом invariant.</strong> «Quality over speed» звучит здорово, но это рекомендация, а не инвариант. Иногда быстрый патч важнее идеального решения — продакшн горит, надо хоть как-то заткнуть до утра, а потом фундаментально починить. Я зашил императив там, где должен был дать модели контекст и право решать.</p>
  <p id="W2Zy"><strong>Нет stopping condition.</strong> Когда фикс готов? По текущему промту — никогда. «Test the fix mentally: what else could break?» можно делать бесконечно. Модель не понимает, в какой точке остановиться, и в результате либо недокапывает (если устала от длинного промта), либо перекапывает (если решила следовать букве).</p>
  <p id="hTii"><strong>Императивы на judgment calls.</strong> «Never ignore errors» звучит правильно, но в реальной жизни часть ошибок именно надо игнорировать. В этом же скилле — отдельная таблица из 60 правил auto-mute: какие паттерны автоматически считать ожидаемым поведением и не разбирать. Промт сам себе противоречит: одна секция говорит «никогда не игнорируй», другая — «вот 60 паттернов, которые надо игнорировать».</p>
  <p id="Lgyk">Переписал по новым правилам OpenAI:</p>
  <pre id="kKiY">### Bug fix outcomeGoal: production stays clean. Each fix addresses the root cause,not symptoms. A clean fix is one where you can answer &quot;why didthis happen?&quot; in one sentence — without saying &quot;external timeout&quot;or &quot;works most of the time&quot;.Stopping criteria: similar pattern checked, fix is committed,related issues documented as separate Beads tasks. Don&#x27;t expandscope into refactoring unless explicitly asked.Объяснить с</pre>
  <p id="rNaL">50 слов вместо 134. Одна мысль про root cause — один раз. Outcome (что значит «чисто») вместо процесса (как именно копать). Явный stopping criteria. Отдельная фраза про границы — «не расширяй скоуп», чтобы модель не уезжала в рефакторинг соседних модулей.</p>
  <p id="1rRQ">Я специально проверил на двух моделях. Дал каждой реальную ошибку из логов — <code>getaddrinfo EAI_AGAIN</code> во время деплоя — и оба варианта промта. Короткий выиграл на обеих: и Opus 4.7, и GPT-5.5 корректно классифицировали это как infrastructure (DNS-резолюция падает на момент рестарта подов), не пытались чинить application-код, не предлагали рефакторинг. Длинный вариант на обеих моделях привёл к тому, что они дополнительно полезли в код вокруг DNS-вызовов — искать, что там можно «улучшить».</p>
  <p id="qaBI">Это не строгое измерение. Это один прогон. Но направление совпадает с тем, что говорит гайд.</p>
  <h3 id="kmJ1">Эксперимент в Stitch, который можно повторить за пять минут</h3>
  <p id="jKz2">Хочу, чтобы вы убедились сами, без слепой веры мне или OpenAI. Самый быстрый способ — Google Stitch. Это инструмент для генерации UI-экранов по описанию, у него свой движок, и реакция на формулировку промта там видна почти моментально.</p>
  <p id="qsXz">Возьмите два промта на одну и ту же задачу.</p>
  <p id="G2X6"><strong>Промт А — жёсткий и подробный</strong> (примерно так пишет одна модель, когда её просишь сгенерировать промт для другой):</p>
  <pre id="buol">Создай экран онбординга для AI-приложения. Используй карточки 16:9
с тенью box-shadow: 0 4px 12px rgba(0,0,0,0.08). Заголовок 32px,
подзаголовок 18px, отступы 24px, межблочные 16px. Цвета: primary
#2563EB, secondary #F1F5F9, текст #0F172A. Кнопка CTA в правом
нижнем углу, hover state с увеличением тени. Анимация slide-in
300ms ease-out. Иконки из Lucide, размер 24px, цвет primary.
Прогресс-индикатор сверху, 4 шага.
Объяснить с</pre>
  <p id="rHNF"><strong>Промт Б — смысловой и короткий</strong>:</p>
  <pre id="xmIs">Экран онбординга для AI-приложения. Должен ощущаться лёгким,
дружелюбным, без бюрократии. Цель — чтобы новичок захотел
дойти до конца за 30 секунд.
Объяснить с</pre>
  <p id="gfbJ">Прогоните оба в Stitch на одной и той же задаче. Сравните, что получилось.</p>
  <p id="14NQ">У меня — десятки прогонов за последний месяц — промт Б выигрывает почти всегда. Не потому что я случайно подобрал плохой пример А. А потому что когда вы зажимаете модель в техническую решётку — отступы, цвета, шрифты — она перестаёт делать дизайн. Она начинает заполнять решётку. Получается аккуратно. И мёртво.</p>
  <p id="xNIr">Кстати, это работает не только в Stitch и не только с дизайном. Есть отдельный антипаттерн, который я только сейчас осознал и хочу проговорить отдельно. Если попросить модель написать промт для другой модели — она напишет ровно тип А. Подробный, технический, с императивами. Потому что её саму так учили: чем точнее — тем лучше. И этот промт потом получает другая модель и работает по нему хуже, чем работала бы по короткому, написанному человеком.</p>
  <p id="Gi3D">Я сейчас целенаправленно перестаю генерировать промты через модели. Промт пишу руками. Модель — исполняет.</p>
  <h3 id="8A8m">А что говорит Anthropic про Claude</h3>
  <p id="Mg4j">Гайд OpenAI — про GPT-5.5. Я в Claude Code сижу больше времени, чем в чём-либо другом. Вопрос: применимо ли?</p>
  <p id="7Fes">Полез смотреть, что говорит Anthropic. У них есть курс по prompt engineering и набор «real world prompting» ноутбуков. Тон — другой. Anthropic не говорит «выкиньте инструкции». Anthropic говорит: используйте структуру, оборачивайте данные в XML-теги (<code>&lt;patient_record&gt;</code>, <code>&lt;email&gt;</code>, <code>&lt;thinking&gt;</code>), отделяйте инструкции от контекста, кладите длинные документы в начало промта, инструкции — в конец.</p>
  <p id="Lghb">Но если посмотреть их примеры хороших промтов — ALWAYS/NEVER там нет. Их «улучшенный промт» для медицинских саммари — это outcome-описание: «нужны такие-то поля в таком-то порядке, обёрнутые в XML-теги». Не процесс. Описание ожидаемого результата плюс структура.</p>
  <p id="k0CD">Это сходится с OpenAI в духе. Расходится в букве:</p>
  <ul id="Pa5i">
    <li id="dv4H">OpenAI: outcome + constraints, минимум структуры, всё остальное модель решит сама.</li>
    <li id="4wdD">Anthropic: outcome + структура (XML-теги, чёткое разделение), модель решит сама внутри структуры.</li>
  </ul>
  <p id="49DK">В моём ежедневном опыте оба тезиса работают. Когда я переписывал свой агент <code>code-reviewer</code> (короткий, делегирует всё на skill) — поймал именно это: структура помогает, императивы вредят. Скилл был полностью на капс-инструкциях, переписал на outcome + XML-структуру (что входит, что выходит, какие критерии «хорошо»). Стало работать заметно лучше — и на Claude, и на GPT.</p>
  <p id="c8YN">Самый честный ответ на вопрос «применимо ли»: да, применимо в духе. Принцип «не зажимайте модель в рамки» работает на обеих. Различие — в том, насколько структуру нужно эксплицитно прописать. На Claude чуть больше структуры (XML, разделители). На GPT-5.5 — чуть меньше, и больше доверия модели.</p>
  <p id="M3iQ">Нет, подождите, не «больше доверия» — это слишком расплывчато. Точнее: меньше попыток управлять процессом. На GPT-5.5 промт описывает «куда прийти и каких границ не пересекать». На Claude — «куда прийти, в какой структуре сложить ответ, и каких границ не пересекать».</p>
  <p id="iZCL">И ещё одно наблюдение про передачу промтов между моделями. Если попросить Opus 4.7 написать промт для GPT-5.5 — Opus напишет очень структурированно, с разделами, XML-тегами, явными success criteria. Это избыточно для GPT-5.5, и GPT начинает вязнуть в структуре. Обратное тоже работает: GPT-5.5 пишет для Claude слишком сжато, без структуры, и Claude не понимает, где границы между context и task. Промты под конкретную модель пишу руками. Кросс-модельная генерация ломается.</p>
  <h3 id="cdCy">Что меняю в orchestrator-kit прямо сейчас</h3>
  <p id="uWd8">Я в процессе. Не из позиции «всё уже переписал», а из позиции «увидел, начал чинить».</p>
  <p id="rsok">Что уже сделано: в скиллах для написания промтов добавил явное правило — не переусложняй промт. Когда я прошу модель сгенерировать новый скилл, она теперь не уходит в простыню инструкций, а старается описать через outcome.</p>
  <p id="6b4o">Что в работе: переношу это в основные файлы памяти (<code>CLAUDE.md</code>, <code>~/.claude/CLAUDE.md</code>). Это глобальный системный промт, он загружается в каждую сессию. Если модель там увидит «пиши outcome-промты, не процесс» — будет применять это ко всему, что генерирует.</p>
  <p id="9TXy">Что в очереди: пройтись по самым жирным скиллам в моём kit. Текущий список:</p>
  <ul id="tGd0">
    <li id="Itv3"><code>dzen-article</code> — 758 строк, скилл для написания статей на Дзен</li>
    <li id="Uddu"><code>process-logs</code> — 663 строки (тот, на котором показывал диф)</li>
    <li id="KiHr"><code>process-issues</code> — 501 строка</li>
    <li id="DWur"><code>algorithmic-art</code> — 404 строки</li>
  </ul>
  <p id="hZaU">Каждый — пачка капс-блоков и дублирующихся требований. План: один скилл за раз, с прогоном на реальной задаче «до и после», с замером качества. Не быстро. Но это инвестиция, которую я хочу окупить за следующие три месяца — там, где скиллы запускаются десятки раз в день, разница в качестве и стоимости токенов ощутимая.</p>
  <h3 id="Ea6X">Где императивы оправданы</h3>
  <p id="6LZ4">Чтобы не выглядело как евангелизм коротких промтов — отдельно про три категории, где императивы остаются.</p>
  <p id="3EDP"><strong>Safety-критичные операции.</strong> У меня в kit есть агент <code>dead-code-remover</code> — удаляет неиспользуемый код. Там прямо написано: «CRITICAL SAFETY RULE: NEVER DELETE FILES AUTOMATICALLY. File removal requires MANUAL verification and is NEVER automated». Это true invariant. Удалить файл случайно — это не «качество немного просядет», это «потерянная работа без бэкапа». Императив здесь нужен, и я его не убираю.</p>
  <p id="UGp3"><strong>Контракты и схемы.</strong> Если модель генерирует JSON-ответ для API, и схема жёстко задана — поле <code>id</code> всегда строка, <code>status</code> всегда из перечня — это не judgment, это технический контракт. Императив оправдан. Без него модель будет «творчески» интерпретировать схему, и через час вы получите 500-е на проде.</p>
  <p id="qPCk"><strong>Детали, которые модель должна выполнить буквально.</strong> Например, имя файла миграции в формате <code>YYYYMMDD_HHMMSS_description.sql</code> — порядок применения определяется именно по таймстампу в начале, и любое отклонение сломает накат на новой среде. Это не «как лучше», это «должно быть так и не иначе, потому что миграционный фреймворк парсит имя». Императив — единственный надёжный способ.</p>
  <p id="qh0b">Различие, которое я для себя вытянул: ALWAYS/NEVER — для <strong>invariants</strong> (нарушение приведёт к катастрофе или сломает контракт). Не для <strong>preferences</strong> (нам так больше нравится). Это, кстати, прямо соответствует тому, что пишет OpenAI: «Use rigid absolute rules for true invariants». Раньше я не отличал invariant от preference. Теперь буду.</p>
  <h3 id="oIet">Финал</h3>
  <p id="HVq5">Длинные промты с императивами на каждом шагу — это след времён, когда модели плохо держали контекст и нуждались в постоянных подсказках. Те модели ушли. Те промты — пора.</p>
  <p id="xfOS">Не «выкидывайте всё подряд». А пересмотрите конкретно: где invariant, где preference, где outcome, где stopping condition. Я разбираю свои скиллы и агенты именно с этой рамкой. Будут результаты — напишу.</p>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <figure id="hbOB" class="m_original">
    <img src="https://img2.teletype.in/files/56/e1/56e1ef6f-a836-4da3-b7c8-013b7d34b889.png" width="1024" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@claudedev/openclawtoken</guid><link>https://teletype.in/@claudedev/openclawtoken?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev</link><comments>https://teletype.in/@claudedev/openclawtoken?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev#comments</comments><dc:creator>claudedev</dc:creator><title>OpenClaw — № 1 пожиратель токенов в мире</title><pubDate>Wed, 06 May 2026 05:53:19 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/ef/20/ef204cd3-75f0-4313-91fd-789bbba5d5dc.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/02/3f/023f4542-2526-4290-a706-dbe29e9dc0c6.png"></img>В конце прошлого года я открыл для себя n8n. Написал написал четыре бота для личных задач, выпустил статью на Habr и уже строил планы на безоблачное будущее в мире автоматизаций. Но идиллия длилась недолго. Появился OpenClaw — проект, который окрестили «убийцей AI‑агентов». И тут у меня закрались сомнения: не пора ли выбросить старые наработки и мигрировать на новый стек? Я погрузился в изучение, разобрался и принял решение: остаюсь на n8n. OpenClaw для создания персональных AI‑агентов оказался слишком сложным, дорогим и неоправданным решением. Но давайте по порядку — от теории к практике.]]></description><content:encoded><![CDATA[
  <p id="gRgA">В конце прошлого года я открыл для себя n8n. Написал написал четыре бота для личных задач, выпустил статью на Habr и уже строил планы на безоблачное будущее в мире автоматизаций. Но идиллия длилась недолго. Появился OpenClaw — проект, который окрестили «убийцей AI‑агентов». И тут у меня закрались сомнения: не пора ли выбросить старые наработки и мигрировать на новый стек? Я погрузился в изучение, разобрался и принял решение: остаюсь на n8n. OpenClaw для создания персональных AI‑агентов оказался слишком сложным, дорогим и неоправданным решением. Но давайте по порядку — от теории к практике.</p>
  <figure id="yOCi" class="m_original">
    <img src="https://img1.teletype.in/files/02/3f/023f4542-2526-4290-a706-dbe29e9dc0c6.png" width="1257" />
  </figure>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <h2 id="Ftui">Почему OpenClaw так быстро тратит токены?</h2>
  <p id="YMSt">Пожиратель токенов — это не хайп, а сухая статистика. Вот данные по потреблению токенов приложениями через OpenRouter:</p>
  <figure id="Ixy4" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/12f/32c/d0e/12f32cd0e7509dc78853c4e4d3ea1043.PNG" width="1923" />
    <figcaption>Пожиратель токенов № 1</figcaption>
  </figure>
  <p id="wTsM">OpenClaw пока на первом месте, но по следующему графику видно, что потребление токенов приложением уменьшается. Это значит, что или интерес начал снижаться, или люди научились оптимизировать потребление токенов:</p>
  <figure id="JWPJ" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/fd8/e59/84b/fd8e5984b6e344ae025d077c1d62234e.PNG" width="1354" />
    <figcaption>Потребление токенов уменьшается</figcaption>
  </figure>
  <h2 id="h8qP">Кейсы для OpenClaw</h2>
  <p id="0Oow">Самый популярный кейс для OpenClaw — это <strong>утренний брифинг</strong>. Суть проста: каждое утро вы получаете подборку новостей по выбранной тематике, задачи из календаря, уведомления о важных письмах и так далее. Вот как выглядит мой брифинг:</p>
  <figure id="eJHv" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/9a4/340/b04/9a4340b0435cb20b8ad5aa484a787974.png" width="603" />
  </figure>
  <p id="jYWJ">В свой брифинг я включил:</p>
  <ul id="2Ks0">
    <li id="zd0V"><strong>Данные из календаря</strong> — я подключил тестовый Google Calendar с задачами на месяц.</li>
    <li id="dsWa"><strong>Новости об ИИ</strong> — через инструменты поиска (Web или Tavily) система находит три самые важные мировые новости и переводит их на русский.</li>
    <li id="THhO"><strong>Мем дня</strong> — для настроения в конце агент пытается найти мем про искусственный интеллект.</li>
  </ul>
  <p id="7wZL">Другие кейсы, которые предлагает сообщество:</p>
  <ul id="eSnU">
    <li id="E0em"><strong>Диспетчер входящих задач </strong>— входящие сообщения из Telegram можно обрабатывать на лету: записывать в документы, создавать задачи, добавлять события в календарь, высылать напоминания.</li>
    <li id="s3IY"><strong>Умная сортировка почты</strong> — агент получает письма, анализирует их и автоматически формирует ответ (лучше в виде черновика, чтобы была возможность проверить перед отправкой).</li>
    <li id="xKe2"><strong>Транскрибация и голосовые команды — </strong>например, делать git‑коммиты по голосовой команде.</li>
    <li id="H5c6"><strong>Бот для поддержки — </strong>получает репорты от пользователей и сразу делает фиксы.</li>
    <li id="6ND1"><strong>Генератор идей и кода </strong>— более сложный кейс: анализирует тренды в области ИИ за последние сутки, генерирует идею и сразу пишет код.</li>
    <li id="t9zx"><strong>Поиск по персональной информации — </strong>OpenClaw позиционируется как персональный помощник. Он запоминает всю информацию, которой вы с ним делитесь или обмениваетесь, и может осуществлять по ней поиск.</li>
  </ul>
  <h2 id="GWtP">Архитектура OpenClaw</h2>
  <p id="XhQl">Про теорию AI‑агентов можно почитать в моей статье «Сделай бота для работы». OpenClaw — это классический AI‑агент, но со своей терминологией.</p>
  <figure id="YdBp" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/d91/6d2/f5a/d916d2f5a54741732f38ab49f421d4e4.png" width="1056" />
    <figcaption><strong>Архитектура OpenClaw</strong></figcaption>
  </figure>
  <h3 id="n0en">User / Administrator</h3>
  <p id="BC31">Пользователь (он же администратор) — настраивает и использует агента.</p>
  <h3 id="XFpj">Источники событий</h3>
  <p id="Qjul">В OpenClaw источники событий называются каналами (Channels). Это могут быть мессенджеры, почта, календарь, веб‑интерфейс. Также события поступают из Cron‑задач и модуля Heartbeats. Каждые 30 минут модуль проверяет, не случилось ли чего важного, и запускает логику обработки.</p>
  <h3 id="CWmE">Управление</h3>
  <p id="WXnI">Управление и конфигурирование осуществляется через веб‑интерфейс OpenClaw или сторонние UI (например, Nerve UI). Также можно делать все напрямую в локальных файлах или через SSH.</p>
  <h3 id="o6OO">Perception (Восприятие)</h3>
  <p id="QXEm"><strong>OpenClaw Gateway</strong> — центральный узел, в котором происходит получение данных, их нормализация и оркестрация.Также Gateway реализует аутентификацию, rate‑limiting, очередь событий, сбор контекста, управление сессиями.</p>
  <h3 id="3KtO">Reasoning (Рассуждение)</h3>
  <p id="fVru"><strong>LLM</strong> — мозг системы и обязательный компонент. Без нейросети OpenClaw не работает. LLM может быть облачной или локальной.</p>
  <h3 id="PbgW">Action (Действие)</h3>
  <p id="qPeW"><strong>Skill Engine</strong> — исполнение действий, реестр навыков, синхронизация с ClawHub. Скилы (Skills) бывают стандартные (скачиваются из OpenClaw Hub) и кастомные (создаются самим пользователем).</p>
  <p id="HR6c"><strong>Tools</strong> — внешние интеграции, MCP, облака, сторонние API, вызовы локальных приложений.</p>
  <h4 id="pWQL">Memory (Память)</h4>
  <p id="5pc5">Служит для хранения контекста, сессий, логов. Хранилище по умолчанию — это файловая система. Всё пишется в файлы, которые затем передаются в LLM.</p>
  <h3 id="D4Q6">Цикл работы</h3>
  <p id="69mi">Результаты выполнения действий попадают обратно в источники событий, и цикл повторяется.</p>
  <h2 id="C05t">Практика</h2>
  <p id="hmje">Раздел написан по мотивам моего семинара на обучении ODS «LLM: От понимания к продукту». Материалы с семинара «<strong>OpenClaw: Персональный AI‑агент на практике — от установки до утреннего брифинга»:</strong></p>
  <ul id="fWbu">
    <li id="t556">Полный стрим на YouTube или VK Video.</li>
    <li id="ehMS">Конспект на GitHub.</li>
  </ul>
  <p id="uS2e">В статье приведу сокращённую версию семинара для того, чтобы стало понятно, что даже элементарные действия в OpenClaw превращаются в нетривиальный квест.</p>
  <h3 id="vIoh">Предусловия для установки OpenClaw</h3>
  <ul id="YWgd">
    <li id="DgIP">Получить API Keys:</li>
    <ul id="5Tdr">
      <li id="Pzvt">Для Telegram в BotFather</li>
      <li id="WFjy">Для Google API</li>
      <li id="P7rP">Для поиска в интернете (Tavily)</li>
    </ul>
    <li id="1kwj">Выбрать LLM с платной или бесплатной подпиской, или развернуть локальную модель. Источники ИИ:</li>
    <ul id="TXZu">
      <li id="SWif">Huggingface: https://huggingface.co/</li>
      <li id="XR8m">Openrouter: https://openrouter.ai/</li>
    </ul>
    <li id="KVcS">Выбрать, где устанавливать OpenClaw:</li>
    <ul id="HCUz">
      <li id="k5cj">На свой ноут в основную ОС или на отдельную VM (например, с помощью VirtualBox). В любом случае будут ограничения по безопасности и работе 24/7.</li>
      <li id="Howe">Второй вариант — купить облачный VPS (Virtual Private Server). Минимальная конфигурация: 2 ядра CPU, 4 ГБ RAM, 40 ГБ HDD.</li>
    </ul>
  </ul>
  <h3 id="vqgb">Пошаговое руководство по установке OpenClaw на чистый Ubuntu</h3>
  <p id="bHB0">Привожу список шагов без деталей, чтобы было понимание масштаба бедствия. Детальные инструкции есть много где, например, для меня были полезными следующие:</p>
  <ul id="lmk3">
    <li id="vLaW">Selectel: OpenClaw: установка и первые впечатления</li>
    <li id="AslZ">Видео с обзором установки и кейсами из официальной документации OpenClaw:</li>
    <ul id="bst2">
      <li id="JdSP">ClawdBot (OpenClaw): The self‑hosted AI that Siri should have been (Full setup)</li>
      <li id="eCN8">OpenClaw (Clawdbot) use cases: 9 automations + 4 wild builds that actually work</li>
    </ul>
  </ul>
  <h4 id="2cI6">Базовая настройка Ubuntu</h4>
  <ul id="qy8W">
    <li id="HRKj">Обновление системы.</li>
    <li id="P1LK">Создание отдельного пользователя openclaw (никогда не используйте root).</li>
    <li id="DSJY">Настройка файрвола (локально или облачного), чтобы открыть только нужные порты.</li>
    <li id="WPYP">Настройка SSH‑доступа по ключам, отключить вход по паролю.</li>
  </ul>
  <h4 id="5fBK">Установка OpenClaw</h4>
  <ul id="n30R">
    <li id="Thwu">Переключитесь на пользователя openclaw.</li>
    <li id="Gt3j">Установите пакетный менеджер Homebrew для установки скилло. Далее используйте:</li>
    <ul id="PHwE">
      <li id="k5tC">Стандартный apt для установки системных зависимостей и ядра системы.</li>
      <li id="DhQx">Homebrew для пользовательских приложений и утилит, которых нет в официальных репозиториях.</li>
    </ul>
    <li id="FVSJ">Установите Node.js 22+.</li>
    <li id="gqeO">Установите OpenClaw, используйте рекомендованный скрипт или npm.</li>
    <li id="zIpg">Запустите мастер настройки OpenClaw:</li>
    <ul id="HzEl">
      <li id="WqjB">Введите API‑ключ выбранного AI‑провайдера.</li>
      <li id="OQ77">Настройте каналы связи (Telegram).</li>
      <li id="SoKU">Установите сервис systemd для автозапуска OpenClaw.</li>
      <li id="AMtW">Настройте Skills (можно потом): Gmail, календарь, поиск в Интернете.</li>
    </ul>
  </ul>
  <h4 id="U5f5">После установки OpenClaw</h4>
  <ul id="XePo">
    <li id="RCrA">Установите Nerve, если надо управлять несколькими агентами.</li>
    <li id="RbBx">Осуществите спаривание устройств: Telegram бота и установленного экземпляра OpenClaw.</li>
    <li id="yyeT">Пробросьте порты 18 789 и 3080 для UI (port forwarding).</li>
    <li id="74LR">Запустите UI OpenClaw и пропишите токен Gateway из openclaw.json.</li>
  </ul>
  <h4 id="v9nu">Запуск UI OpenClaw</h4>
  <p id="zjAO">Только локально, не делайте доступ из интернета:</p>
  <ul id="ZBEc">
    <li id="ylyp">OpenСlaw dashboard: http://localhost:18789/</li>
    <li id="klGQ">Nerve dashboard: http://localhost:3080/</li>
  </ul>
  <h2 id="ZRNf">Настройка</h2>
  <h3 id="zLi5">Настройка личности агента</h3>
  <p id="f6Wn">При первом запуске агента (BOOTSTRAP) заполняются файлы:</p>
  <ul id="scZD">
    <li id="AETI">IDENTITY.md — имя агента, стиль, emoji, аватар.</li>
    <li id="7tF8">USER.md — информация про пользователя: как обращаться, таймзона.</li>
    <li id="Q530">SOUL.md — информация про агента: границы, тон общения.</li>
    <li id="bvLi">AGENTS.md — правила работы агента.</li>
  </ul>
  <p id="RDG9">После этого OpenСlaw становится вашим личным агентом, который знает и себя и вас и знает, как работать.</p>
  <h3 id="SRY5">Настройка Heartbeat</h3>
  <h4 id="pXeV">Хартбиты и крон‑джобы: как не разориться на токенах</h4>
  <p id="iQPo">Это для меня был интересный сюрприз. Утром просыпаюсь — OpenClaw не работает. Иду в OpenRouter, смотрю: лимит закончился. За ночь он съел 5 долларов... Пять долларов за ночь!</p>
  <h4 id="3jzp">Почему так вышло?</h4>
  <p id="ai6U">По умолчанию OpenClaw использует самую продвинутую и дорогую модель — Opus 4. У неё каждый запрос может стоить 10 центов. Хардбиты проверяют систему каждые 30 минут, и если модель дорогая, счёт летит в космос. Но если отключить хардбиты, вы лишаетесь автоматического восстановления после ошибок и повторных попыток.</p>
  <h4 id="Xidi">Что делать?</h4>
  <ul id="3j9b">
    <li id="8gwY"><strong>Крон‑джобы как альтернатива </strong>— я сделал утренний брифинг через крон‑джоб (раз в 24 часа). Это менее надёжно: если что‑то пойдёт не так, повторной попытки не будет. Но зато не тратятся токены каждые полчаса на холостую проверку.</li>
    <li id="BqaL"><strong>Заменить модель на более дешёвую </strong>— например, я перешёл на Claude Haiku. Экономия — около 80%.</li>
    <li id="IWa3"><strong>Всегда устанавливать лимиты у провайдера LLM — </strong>нельзя давать агенту безлимитный кредит. Никогда.</li>
  </ul>
  <h4 id="z6Bh">Как отключить хардбиты</h4>
  <p id="YMq2">Посмотреть последний хартбит:</p>
  <pre id="1nXA">openclaw system heartbeat last</pre>
  <p id="1PUZ">Отключить временно:</p>
  <pre id="eSX2">openclaw system heartbeat disable</pre>
  <p id="OnFV">Отключить постоянно: cконфигурировать Heartbeat в файле ~/.openclaw/openclaw.json</p>
  <pre id="Xzbn">      &quot;heartbeat&quot;: {        &quot;every&quot;: &quot;0m&quot;,        &quot;target&quot;: &quot;none&quot;      }</pre>
  <p id="0N0m">После сохранения файла проверить валидность конфига:</p>
  <pre id="KFOL">python3 -m json.tool ~/.openclaw/openclaw.json &gt; /dev/null &amp;&amp; echo &quot;JSON OK&quot;</pre>
  <p id="ftvH">Перестартовать OpenClaw Gateway:</p>
  <pre id="Rgy1">openclaw gateway restart</pre>
  <p id="zf1t">Посмотреть логи — не должно быть новых записей «heartbeat»:</p>
  <pre id="bkK0">openclaw logs 2&gt;&amp;1 | grep -i heartbeat | tail -10</pre>
  <p id="NiFS">Подождать еще ~35 минут и убедиться, что новых запусков нет.</p>
  <h3 id="InwO">Устанавка аватара</h3>
  <p id="HOPd">Казалось бы, простейшее действие. Но и оно требует понимания и строгой последовательности шагов. Важное уточнение: аватар — это аватар самого агента OpenClaw, а не ваш (пользователя).</p>
  <p id="nubR">Загружаем файл png с голубым мозгом в каталог:</p>
  <pre id="qlmY">~/.openclaw/workspace/avatars</pre>
  <ul id="Aeq0">
    <li id="yfqf">Редактируем IDENTITY.MD</li>
    <li id="oqSa">Перестартуем OpenClaw Gateway</li>
    <li id="IzDZ">Запускаем чат, видим что у агента новый аватар:</li>
  </ul>
  <figure id="od80" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/1da/b86/6f0/1dab866f03bd355ce81a23e579749a6c.PNG" width="1439" />
  </figure>
  <h3 id="oXU3">LLM меняем модель</h3>
  <p id="4NaV">Для оптимизации расходов на токены это самый важный шаг. Модель задается в файле:</p>
  <pre id="40LI">~/.openclaw/openclaw.json</pre>
  <p id="qacz">Редактируем файл. Было:</p>
  <pre id="t01O">&quot;model&quot;: {  &quot;primary&quot;: &quot;openrouter/auto&quot;},&quot;models&quot;: {  &quot;openrouter/auto&quot;: {    &quot;alias&quot;: &quot;OpenRouter&quot;  }}</pre>
  <p id="kyDK">Стало (пример с Haiku 4.5):</p>
  <pre id="e5MM">&quot;model&quot;: {  &quot;primary&quot;: &quot;openrouter/anthropic/claude-haiku-4.5&quot;},&quot;models&quot;: {  &quot;openrouter/anthropic/claude-haiku-4.5&quot;: {    &quot;alias&quot;: &quot;Haiku 4.5&quot;  }}</pre>
  <p id="pBOu">Можно добавить резервную модель, чтобы система не ломалась, если основная модель недоступна:</p>
  <pre id="lmyp">&quot;model&quot;: {  &quot;primary&quot;: &quot;openrouter/anthropic/claude-haiku-4.5&quot;,  &quot;fallbacks&quot;: [    &quot;openrouter/google/gemini-2.0-flash&quot;,    &quot;openrouter/deepseek/deepseek-chat&quot;  ]},&quot;models&quot;: {  &quot;openrouter/anthropic/claude-haiku-4.5&quot;: { &quot;alias&quot;: &quot;Haiku 4.5&quot; },  &quot;openrouter/google/gemini-2.0-flash&quot;: { &quot;alias&quot;: &quot;Gemini Flash&quot; },  &quot;openrouter/deepseek/deepseek-chat&quot;: { &quot;alias&quot;: &quot;DeepSeek&quot; }}</pre>
  <p id="4M3y">После сохранения файла, проверяем синтаксис:</p>
  <pre id="LaBw">python3 -m json.tool ~/.openclaw/openclaw.json &gt; /dev/null &amp;&amp; echo &quot;✓ JSON OK&quot;</pre>
  <p id="oh7k">И перестартовываем Gateway:</p>
  <pre id="y9kS">openclaw gateway restart</pre>
  <p id="MDk0">Чтобы проверить работает ли новая модель, есть два способа:</p>
  <ul id="LXl8">
    <li id="SkJG">Задать явный вопрос «Какую модель ты используешь сейчас? Назови провайдера и точное название модели.»</li>
    <li id="A4es">Отправить тестовый запрос:<code>openclaw &quot;Какая сегодня дата? Ответь кратко.&quot;</code></li>
  </ul>
  <p id="uVyf">И посмотреть логи — должна быть запись с новой моделью. Также не лишним будет проверить расходы в дашборде вашего провайдера ИИ. Для OpenRouter — раздел Activity.</p>
  <h2 id="b8JE">Настройка Skills</h2>
  <h3 id="1PW0">Установка стандартного скила gog</h3>
  <p id="voAo">Этот скил используется для работы с Gmail, Google Calendar, Drive, Contacts, Sheets, Docs. Далее приведен список шагов для понимания объёма работы. Установка:</p>
  <pre id="omOK">brew install steipete/tap/gogcliОбъяснить с</pre>
  <h4 id="pQH7">Генерация client_secret.json</h4>
  <p id="map7">Этот файл нужно сгенерировать самостоятельно в Google Cloud Console специально для gog.</p>
  <ul id="MCsT">
    <li id="OrLv">Перейдите в Google Cloud Console и авторизуйтесь под своей учетной записью Google.</li>
    <li id="6O8d">Откройте страницу Google Cloud Console, создайте новый проект.</li>
    <li id="XAhH">Включите необходимые API. Минимальный набор для gog:</li>
    <ul id="LkeV">
      <li id="xzf8">Gmail API</li>
      <li id="7J3D">Google Calendar API</li>
      <li id="SvKG">Google Drive API</li>
      <li id="kuws">People API (для контактов)</li>
    </ul>
    <li id="YBBr">Создайте учетные данные (OAuth Client ID):</li>
    <ul id="vEZN">
      <li id="Lrf5">В боковом меню перейдите в раздел API, далее Сервисы / Учетные данные</li>
      <li id="CiQ4">Нажмите кнопку «Создать учетные данные» и выберите «OAuth client ID».</li>
      <li id="bZUE">В открывшейся форме:</li>
      <ul id="x7op">
        <li id="paYR">Тип приложения: Выберите «Десктопное приложение». Это важно, так как gog запускается на вашем компьютере.</li>
        <li id="Ox7u">Имя: Введите любое понятное имя, например, Gog CLI on my Ubuntu.</li>
        <li id="Y9AD">Остальные поля можно оставить пустыми.</li>
      </ul>
      <li id="gBIM">Нажмите кнопку «Создать».</li>
    </ul>
    <li id="IctB">Скачайте файл с учетными данными:</li>
    <ul id="sVGE">
      <li id="FSzO">Сразу после создания появится всплывающее окно с вашим Client ID и Client Secret.</li>
      <li id="tZ2J">Нажмите синюю кнопку «Скачать JSON».</li>
      <li id="4VI4">Этот скачанный файл и есть ваш client_secret.json. Он будет иметь имя вида client_secret_ваш‑id.apps.googleusercontent.com.json. Для простоты вы можете переименовать его в client_secret.json.</li>
    </ul>
  </ul>
  <h4 id="vacU">Куда положить client_secret.json</h4>
  <ul id="bRPr">
    <li id="fBtJ">Рекомендуемый вариант — сохраните файл в папку для конфигураций ~/.config/gogcli/</li>
    <li id="CiBJ">Чтобы gog распознал файл в будущем без указания пути, его следует переименовать в credentials.json</li>
  </ul>
  <h4 id="WopH">Как использовать с gog</h4>
  <p id="uGYv">Теперь его можете передать в команду gog auth credentials. Вы можете использовать абсолютный или относительный путь к файлу.</p>
  <pre id="y4LI">gog auth credentials ~/.config/gogcli/credentials.json</pre>
  <h4 id="5ov2">Настройка gog в OpenClaw</h4>
  <ul id="pUpw">
    <li id="eK0N">После успешного выполнения предыдущей команды можно добавить ваш аккаунт. Доплнительно необходимо добавить параметр «‑manual»</li>
  </ul>
  <pre id="wi6s">gog auth add Alexey.P.Sushkov@gmail.com --services gmail,calendar,drive,contacts,sheets,docs --manual</pre>
  <ul id="TKFR">
    <li id="FgeV">Проверить, что все прошло успешно, можно командой:</li>
  </ul>
  <pre id="5wHV">gog auth list</pre>
  <ul id="bmmM">
    <li id="eQk5">Вы должны увидеть ваш email в списке авторизованных аккаунтов.</li>
    <li id="kKbW">Проверка календаря:</li>
  </ul>
  <pre id="KLTF">gog calendar events e5b2dxxxxxxxxxxxxxxxxxxxxxxxxxxxxx4c690f@group.calendar.google.com  --from 2026-04-01 --to 2026-04-30</pre>
  <ul id="2ANn">
    <li id="ndTF">Поскольку мы работаем на VPS и выполняем команды из скриптов, лучше переключиться на файловое хранилище. Это полностью убирает необходимость в паролях и безопаснее, чем хранить пароль в открытом виде в ~/.bashrc.</li>
    <li id="L7Dg">После переключения на файловое хранилище команда gog calendar events будет работать без переменных окружения и без запроса пароля.</li>
    <li id="JSPU">При дальнейшей работе нужно учесть, что невозможно выборочно отозвать доступ для одного API, оставив другой, в рамках одного OAuth 2.0 Client ID. Отзыв токена всегда аннулирует все разрешения, выданные пользователем для этого Client ID.</li>
  </ul>
  <h3 id="TUwQ">Сustom skill</h3>
  <p id="MU1k">Есть два способа создания кастомного скилла:</p>
  <ul id="LPbf">
    <li id="rWkJ">Простой — дать явную команду в чате, например: <em>Пожалуйста, сделай мне навык summarize через ClawHub</em>.</li>
    <li id="0blg">Сложный — мучаться вручную через файлы.</li>
  </ul>
  <h2 id="uQZF">Безопасность</h2>
  <p id="zPd9">Итоговые рекомендации по безопасной настройке OpenClaw:</p>
  <ul id="ZooC">
    <li id="PLfv">Инфраструктура и сеть:</li>
    <ul id="bzcF">
      <li id="wUQk">Отдельный user</li>
      <li id="M1tV">Отключить неиспользуемые порты.</li>
      <li id="rM8T">SSH только по ключам.</li>
    </ul>
    <li id="ylYR">Аутентификация и управление доступом:</li>
    <ul id="3Ztw">
      <li id="M7Gv">Доступ к админ панелям только по localhost.</li>
      <li id="zJVh">Принцип наименьших привилегий: каждый skill получает только нужные scopes.</li>
    </ul>
    <li id="msri">Секреты и конфигурация</li>
    <ul id="0MV3">
      <li id="vCLr">Пароли / API токены не хранятся в конфигах, а в.env или парольных менеджерах, секьюрных хранилищах.</li>
    </ul>
    <li id="9jaS">Защита себя от AI‑агентов:</li>
    <ul id="e9GP">
      <li id="BPbz">Необходимы ограничения на токены и вызовы:</li>
      <ul id="zsHi">
        <li id="kzrs">max retries: 3</li>
        <li id="b9g1">timeout: 10 мин</li>
      </ul>
      <li id="tA3B">Реализовать явное подтверждение для деструктивных действий (удаление, массовая рассылка).</li>
      <li id="m3qr">Проверяйте код навыков из ClawHub перед установкой — зафиксированы случаи вредоносных пакетов.</li>
    </ul>
    <li id="cced">Логирование, мониторинг и реагирование:</li>
    <ul id="p65k">
      <li id="NIEd">Реализовать централизованный сбор логов.</li>
      <li id="M0cR">Исключать из логов конфиденциальную и персональную информацию.</li>
      <li id="G0Ra">Смотреть каждый вечер Dashboards: latency, token cost, tool success rate, error rate, queue depth и тому подобное</li>
    </ul>
  </ul>
  <h2 id="YwE3">Список полезных команд</h2>
  <p id="sIt9">Версия должна быть больше v2026.3.24+</p>
  <pre id="0R2P">openclaw --version</pre>
  <p id="IvH3">Перезагрузка gateway, самая используемая команда:</p>
  <pre id="2bJr">openclaw gateway restart</pre>
  <p id="YaH4">Проверить валидность конфига:</p>
  <pre id="7qGY">python3 -m json.tool ~/.openclaw/openclaw.json &gt; /dev/null &amp;&amp; echo &quot;JSON OK&quot;</pre>
  <p id="Mwkp">Аудит безопасности</p>
  <pre id="C8W9">openclaw security audit</pre>
  <pre id="eCpU">openclaw security audit --deep</pre>
  <p id="5DuD">Применить авто‑исправления (осторожно!)</p>
  <pre id="s6XF">openclaw security audit --fix</pre>
  <h2 id="jOwL">Итоги практики</h2>
  <ul id="7WyT">
    <li id="T0Vd">OpenClaw запущен и доступен по localhost.</li>
    <li id="6Jpu">Подключены каналы (Telegram + Gmail / Calendar).</li>
    <li id="cnMd">Установлен skill из ClawHub (gog, tavily) + написан кастомный скил (ИИ мемы, summarize)</li>
    <li id="F7A4">Агент читает события в календаре, ищет новости, генерирует шутку и отправляет сообщение в Telegram.</li>
  </ul>
  <h2 id="3Cbq">Мои расходы</h2>
  <ul id="owuz">
    <li id="pZdG">Сервер в Selectel в минимальной конфигурации — около 2000 ₽/мес.</li>
    <li id="dhdd">Токены (OpenRouter) — около 1–2 долларов в день (утренний брифинг + эксперименты).</li>
    <li id="kjEB">Итого — около 3000 ₽/мес. за утренний брифинг. Кажется многовато, если честно. За эти деньги я могу и сам найти новости в интернете!</li>
  </ul>
  <h2 id="8cpe">Сравнение n8n с OpenClaw</h2>
  <figure id="mIWx" class="m_original">
    <img src="https://img4.teletype.in/files/f8/ab/f8ab79f6-70a5-41b8-9469-802b4cd4d243.png" width="777" />
  </figure>
  <p id="flY1">OpenClaw — пожиратель токенов № 1</p>
  <h2 id="egKN">Вывод из таблицы</h2>
  <p id="Wbo6">n8n — это про контроль. OpenClaw — про делегирование хаосу.</p>
  <figure id="ZBSF" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/bec/ee8/54d/becee854dd5290489d723a86a550af97.png" width="1536" />
  </figure>
  <h2 id="FOTp">Заключение</h2>
  <p id="ugef">OpenClaw оказался не «убийцей», а скорее демонстрацией того, куда развиваются AI‑агенты: в сторону автономности, универсальности и максимальной гибкости. Но вместе с этим приходят и побочные эффекты: сложность, непрозрачность, высокая стоимость и серьёзные требования к инфраструктуре. И если ваша задача — решать конкретные бизнес или личные задачи с предсказуемым результатом, контролируемой стоимостью и минимальным риском, то n8n выглядит гораздо рациональнее!</p>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <figure id="4btb" class="m_original">
    <img src="https://img2.teletype.in/files/56/e1/56e1ef6f-a836-4da3-b7c8-013b7d34b889.png" width="1024" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@claudedev/aiagentteam</guid><link>https://teletype.in/@claudedev/aiagentteam?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev</link><comments>https://teletype.in/@claudedev/aiagentteam?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev#comments</comments><dc:creator>claudedev</dc:creator><title>ИИ‑агенты в инженерной команде: гайд для тимлида, который не хочет получить бунт</title><pubDate>Wed, 06 May 2026 05:51:07 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/88/7e/887e6cf3-4116-4af5-97ea-bc27ce3ad39f.png"></media:content><description><![CDATA[<img src="https://img4.teletype.in/files/b7/86/b786ca1e-db4d-4adb-836a-24012aae9dbd.png"></img>Вы прочитали гайд по Cursor, посмотрели демку Claude Code, посчитали в голове экономику и решили: пора. Спускаете в команду указание — попробовать на следующей итерации. Через две недели смотрите на цифры и видите, что lead time не сократился, а вырос. Полетели странные инциденты в трекер. Двое лучших разработчиков ходят с лицами «я же говорил». На ретро звучит сдержанное «нам нужно больше времени, чтобы оценить эффект». На самом деле это значит «уберите эту штуку».]]></description><content:encoded><![CDATA[
  <p id="ROqm">Вы прочитали гайд по Cursor, посмотрели демку Claude Code, посчитали в голове экономику и решили: пора. Спускаете в команду указание — попробовать на следующей итерации. Через две недели смотрите на цифры и видите, что lead time не сократился, а вырос. Полетели странные инциденты в трекер. Двое лучших разработчиков ходят с лицами «я же говорил». На ретро звучит сдержанное «нам нужно больше времени, чтобы оценить эффект». На самом деле это значит «уберите эту штуку».</p>
  <figure id="8A1H" class="m_original">
    <img src="https://img4.teletype.in/files/b7/86/b786ca1e-db4d-4adb-836a-24012aae9dbd.png" width="1257" />
  </figure>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <p id="pSHv">Знакомо? Это типичная картина внедрения ИИ в инженерной команде через администрирование. Проблема не в инструменте, не в моделях и не в скептиках. Проблема в том, что push‑модель (принуждение) внедрения системно не работает с разработчиками высоких грейдов — и чем сильнее ваша команда, тем хуже она работает.</p>
  <p id="lsst">В этом гайде — pull‑модель (втягивание, вовлечение). Что нужно построить, чтобы синьоры сами выбрали работать с агентом, а через три месяца стали евангелистами. Это не про мотивационные речи и не про премии за процент кода от ИИ. Это про инженерное решение: workflow, инфраструктура и фазы развёртывания, которые проходят фильтр опытного разработчика.</p>
  <hr />
  <h3 id="FaWO">Почему метод принуждения проваливается</h3>
  <p id="dpdX">Соблазн понятен. Тема горячая, борд задаёт вопросы, в команде есть пара джунов с горящими глазами и тезисом «продуктивность выросла в три раза». Логичный шаг — стандартизировать. Поставить инструмент всем, ввести метрику, отчитаться в квартал.</p>
  <p id="VbjL">Дальше начинается то, чего никто не ждал.</p>
  <p id="foX0"><strong>Ревью встаёт колом.</strong> Объём PR вырос, нагрузка на ревьюера ушла в потолок. Сгенерированный код выглядит правдоподобно, но «тяжелее» и читается медленнее живого: многослойные конструкции, несоответствие конвенциям, неочевидные побочки в местах, где их не ждёшь. Синьоры тратят на ревью больше, чем сэкономили джуны на написании. Чистый минус по балансу.</p>
  <p id="rhSy"><strong>Релизный цикл удлинняется.</strong> Энтропия подходов в кодовой базе растёт — где‑то один стиль, где‑то другой, где‑то третий, и всё в одном репозитории. Архитектурные решения принимаются без сквозного видения, потому что у каждого свой агент и свой контекст. Через пару итераций накапливается техдолг, который никто явно не вкладывал — он просто появился. Параллельно растёт число инцидентов: часть багов проскочила через перегруженное ревью.</p>
  <p id="anzB"><strong>Лучшие люди тихо саботируют.</strong> Не открыто — просто продолжают писать руками, на собраниях говорят «я попробовал, мне не подошло», в чатах скептически реагируют на восторги джунов. Это не упрямство и не луддизм. Под этим — четыре конкретных страха, и каждый из них рациональная защитная реакция:</p>
  <ul id="ryE2">
    <li id="lmSB"><strong>Конфликт с профессиональной идентичностью.</strong> Синьор — это человек, чья ценность построена на качестве принимаемых решений. Когда ему предлагают режим «опиши задачу — прими сгенерированное», ему отдают роль технического писаки‑ревьюера, а роль автора — модели. Это не повышение в роли, как бы красиво это ни упаковали в слайдах. Это понижение.</li>
    <li id="9Ea9"><strong>Страх deskilling.</strong> Не воображаемый, реальный. Если три года писать код преимущественно через генерацию, что станет с навыком держать архитектуру в голове, чувствовать code smells, отличать правильное решение от похожего на правильное?</li>
    <li id="UTjs"><strong>Потеря автономии.</strong> Решение спущено сверху, инструмент навязан, метрика «процент кода от ИИ» висит над головой. Полная инверсия режима, в котором сильные инженеры исторически работали — и из которого, собственно, выросла их экспертиза.</li>
    <li id="rNmO"><strong>Угроза job‑security.</strong> Не «меня заменят моделью» — это страх джунов. Синьорский тоньше: «если моя ценность сводится к ревью генераций, я взаимозаменяем». Чем крепче синьор стоит на ногах, тем острее это чувствует.</li>
  </ul>
  <p id="EO52">Push‑модель пытается все четыре пункта проигнорировать и продавить через KPI. Pull‑модель — опирается на них как на дизайн‑требования. В этом вся разница.</p>
  <h3 id="SfeQ">Что синьор хочет от ИИ на самом деле</h3>
  <p id="w3z6">Если развернуть четыре страха из предыдущего раздела на 180 градусов, получится список требований. Не к инструменту — к режиму работы. Это не «фичи», которые можно купить подпиской. Это свойства workflow, которые либо есть, либо нет.</p>
  <p id="dQNX"><strong>Синьор хочет оставаться автором решений.</strong> Не ревьюером, не оператором при модели, не приёмщиком сгенерированного. Автором. Это значит — агент включается до того, как принято архитектурное решение, и помогает его принять, а не реализует уже принятое. Парадоксально, но именно ранний вход агента — на этапе исследования и брейншторма — снимает страх «меня свели к ревью», потому что роль автора при таком раскладе остаётся за человеком. На исследовании агент — собеседник. На имплементации — руки. Не наоборот.</p>
  <p id="Wj4V"><strong>Синьор хочет, чтобы его экспертиза усиливалась, а не атрофировалась.</strong> Здесь тонкий момент. Любой сильный инженер знает: навык растёт там, где приходится думать, и атрофируется там, где думать перестаёшь. Если агент берёт на себя «думать», навык уходит. Если агент берёт на себя «искать, проверять, синтезировать рутину», а думать остаётся человеку — навык растёт быстрее, чем без агента. Workflow должен явно разводить эти два режима. Не «агент сам всё сделал, я только нажал ОК», а «я провёл агента через своё мышление, и на выходе получил его в коде».</p>
  <p id="o6rK"><strong>Синьор хочет личного контроля над процессом.</strong> Не «попробуйте новый инструмент к понедельнику», а «вот возможность, разбирайся в своём темпе». Опциональность здесь — не вежливость, а дизайн‑требование. Если агент навязан, любые его косяки идут в копилку «я же говорил». Если выбран — те же косяки воспринимаются как издержки своего собственного решения, а не системного провала.</p>
  <p id="B36R"><strong>Синьор хочет, чтобы его роль стала менее заменимой, а не более.</strong> Это самая контринтуитивная часть. Push‑модель неявно сообщает: «вы все теперь операторы при ИИ, разница между вами размылась». Pull‑модель должна сообщать обратное: «после внедрения вы стали ещё более ценны, потому что качественно работать с агентом — отдельный навык, и у вас он есть, а у джунов нет». Парадоксально, но реальность ровно такая: КПД работы с агентом у сильного инженера на порядок выше, чем у слабого. Сильный задаёт правильные вопросы, видит косяки в выводе, держит границы скоупа, не даёт агенту увести себя в дебри. Слабый — генерирует мусор быстрее, чем раньше.</p>
  <blockquote id="z40W">Эти четыре пункта — не маркетинг. Это ТЗ на остаток статьи. Дальше я разбираю принцип, workflow, инфраструктуру и фазы внедрения — и в каждом разделе явно показываю, какой из пунктов закрывается какой механикой. Если в вашем будущем внедрении один из четырёх не закрыт — оно не пройдёт фильтр синьора, как бы красиво ни было упаковано остальное.</blockquote>
  <h3 id="w01l">Главный принцип: агент в подчинённой проактивной позиции</h3>
  <p id="GjiX">Эту формулу я повторяю постоянно, и каждый раз вижу, как у людей в глазах вопрос: «то есть как? проактивный — это же значит сам?». Нет. Это — ключ ко всему.</p>
  <p id="SWLj">Большинство демок и блог‑постов про агентную разработку построены на противоположной модели: агенту даётся задача, он сам её декомпозирует, сам имплементирует, сам открывает PR. Человек на входе формулирует, на выходе принимает. Назовём это <strong>автономной позицией</strong>. Она хорошо смотрится в твиттере, плохо работает на реальной кодовой базе и категорически не проходит фильтр синьора. Потому что она требует доверия, которого у синьора нет — и взяться ему неоткуда.</p>
  <p id="TBZS">Подчинённая проактивная — это другой режим. Разложу по двум осям отдельно.</p>
  <p id="R7N7"><strong>Подчинённая</strong> — значит, агент не принимает решений. Никаких. Не выбирает архитектуру, не утверждает скоуп, не решает, нужно ли рефакторить смежный модуль или нет, не открывает PR без явной команды. Все решения — на человеке. Это даёт синьору тот самый личный контроль, которого нет в автономном режиме. И, что важнее, сохраняет за ним авторство — каждое решение в коде по факту его, а не модели.</p>
  <p id="irRD"><strong>Проактивная</strong> — значит, агент не ждёт, пока его попросят. Он сам бегает по кодовой базе, сам проверяет гипотезы, сам поднимает противоречия, сам предлагает альтернативы и сам напоминает о том, что вы упустили. Не «жду промпт» — а «вижу, что вот тут возникает риск, что будем делать?».</p>
  <p id="OAnk">На практике из жизни — это режим работы старшего разработчика с сильным джуном‑стажёром, у которого огромная эрудиция, мгновенная скорость и нулевая ответственность. Стажёр инициативен — задаёт вопросы, предлагает варианты, копает глубже, чем его просили. Но решения принимает ведущий. Стажёр не пушит в main без аппрува и ревью, не переписывает соседний модуль «заодно», не считает, что он лучше знает. Он <em>усиливает</em> мыслительный процесс ведущего, не подменяет его.</p>
  <p id="SW8k">Эта аналогия работает не только для понимания. Она работает как фундамент для дизайна рабочего процесса, не выдумывая подходов из какой‑то другой вселенной.</p>
  <blockquote id="ndbV">Здесь снимается главный страх deskilling. Когда агент в подчинённой позиции, думать продолжает человек. Агент берёт на себя поиск по кодовой базе, проверку гипотез, синтез вариантов — то есть рутину, на которой навык не растёт. А думать — где ставить границу скоупа, какой trade‑off приемлем, какая абстракция правильная — остаётся за инженером. Через полгода такого режима навык не атрофируется, а растёт быстрее, потому что инженер обрабатывает больше задач за то же время, и каждая задача требует от него <em>именно</em> мышления, а не возни с поиском.</blockquote>
  <p id="TmDr">Из подчинённой проактивности вытекает второе свойство, которое часто пропускают: <strong>агент должен быть включён в процесс рано</strong>. До того, как написана первая строка кода. До того, как вы сами знаете точный ответ. На этапе «я понимаю, что нужно сделать в общих чертах, но не уверен в деталях». Именно здесь агент даёт максимальную ценность — потому что бегает по кодовой базе быстрее вас, держит больше контекста одновременно, и не устаёт от двадцатого уточняющего вопроса.</p>
  <p id="6vtT">Если вы включаете агента поздно — на стадии «напиши мне функцию, которая делает X» — вы используете его как генератор. Это и есть тот режим, который вызывает у синьоров отторжение. Потому что в нём агент действительно подменяет автора, а не усиливает.</p>
  <p id="1pFl">Подчинённая проактивная позиция — это не настройка. Это конструкция, которая собирается из трёх вещей: workflow, инструкций (контекстный слой) и привычек разработчика. Workflow задаёт ритм — где агент входит и где останавливается. Инструкции задают границы — что он может и чего не должен. Привычки задают качество — насколько вы умеете с ним разговаривать. Дальше разбираем все три по очереди.</p>
  <h3 id="pIrk">Workflow</h3>
  <p id="4aO2">Сама по себе подчинённая проактивная позиция — концепция. Без процесса она не материализуется. Workflow — это и есть то место, где концепция превращается в ежедневную практику, и он же — главный артефакт, который вам как тимлиду нужно либо создать, либо взять готовым и адаптировать.</p>
  <p id="AIRk">Идея процесса проста: вместо декларативных команд («напиши функцию», «найди баг», «сгенерируй тесты»), агент и инженер двигаются в интерактивном цикле — изучают задачу, проверяют гипотезы, обсуждают варианты, фиксируют спецификацию и критерии приёмки, декомпозируют, имплементируют частями с возможностью вмешаться не ломая процесс, ведут чекпоинты с промежуточными ревью, покрывают тестами и финально ревьюят перед PR.</p>
  <p id="CCri">Это не просто красивая последовательность. Это три фазы с разной ролью агента в каждой.</p>
  <p id="tv0g"><strong>Brainstorming.</strong> Самая важная фаза. Здесь агент — собеседник, не исполнитель. Получает намерение в виде «работаем над фичей X, вот пользовательские истории, вот критерии приёмки». Дальше — режим вопрос‑ответ. Агент ресерчит кодовую базу, поднимает противоречия, задаёт уточняющие, предлагает альтернативы. На выходе — design document с фиксированной структурой: цель, скоуп, non‑goals, архитектурные принципы, контракты, риски, decision log.</p>
  <blockquote id="qGli">Здесь закрывается страх «меня свели к ревью». Автор всех решений в design document — человек. Агент — инструмент структурирования его мышления, не подмена.</blockquote>
  <p id="Iu9T"><strong>Planning.</strong> Когда дизайн зафиксирован, переключаемся на «как». Цель — разбить задачу на спринты, каждый со своим скоупом, критериями приёмки и оценкой blast radius. Спринт = атомарная единица работы, не оставляющая код в нерабочем состоянии. На этой фазе агент ещё раз пробегает по коду, но в фокусе уже не «что построить», а «куда положить и что заденет». Часто на этой стадии всплывают нюансы, пропущенные на брейншторме.</p>
  <blockquote id="dgYZ">Здесь синьор остаётся архитектором имплементации. Не пишет план самостоятельно — но утверждает каждый поворот. Это и есть та самая автономия, сохранение самоценности через экспертизу и право на принятие решения.</blockquote>
  <p id="2FB7"><strong>Work cycle.</strong> Цикл <code>plan → implement → review → fix → review → commit</code>, повторяемый по спринтам. Внутри каждого спринта — отдельная сессия. Между спринтами — коммит обязателен. Ниже схема.</p>
  <figure id="jWqW" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/80f/b1c/2e6/80fb1c2e6fc7ebcbe594650af00d6c8b.png" width="1024" />
    <figcaption>spec‑driven development with ai workflow</figcaption>
  </figure>
  <p id="vu0g">Отдельно про ревью. Ревью <strong>строго</strong> в отдельной сессии. Не в той же, где шла имплементация. В одной сессии модель пристрастна к своим результатам — прям как мы, если честно. В отдельной — ловит то, что в пристрастной не увидела. Лично я, помимо ревью глазами, гоняю две сессии с разными моделями параллельно: Claude и Codex, например. Находят разное, и это объективно поднимает качество.</p>
  <blockquote id="3RT9"><em>Здесь, кстати, выкристаллизовывается главный новый навык инженера в эпоху агентной разработки — точность, ясность мысли, системность и терпение. Цикл «human reviews → agent fixes» работает ровно настолько, насколько хорошо вы умеете объяснять, что не так. Будете растекаться по древу — агент уйдёт в дебри. Ответите грубо и не по делу — получите костыль. Всё как с живым человеком, только этого не уволишь.</em></blockquote>
  <h4 id="yliR">Скиллы — то, без чего ничего не работает</h4>
  <p id="GK2d">Описанный workflow невозможен на голой модели. Каждая фаза требует от агента специфического поведения, которое ни одна frontier‑модель сама по себе не демонстрирует. Под обычными инструкциями она будет писать код — а нам нужно, чтобы она <em>сначала задавала вопросы</em>, <em>потом исследовала кодовую базу</em>, <em>потом фиксировала решения в файл</em>, и только <em>потом</em> писала код.</p>
  <p id="HC7j">Это решается скиллами — отдельными файлами с контекстными инструкциями, которые подгружаются в момент, когда агент должен войти в конкретный режим. Технически — модифицированные системные промпты, но по эффекту — как смена роли. Под скиллами модели творят чудеса, какие на голых инструкциях обычно не творят.</p>
  <p id="NJc5">Минимально рабочий набор — три скилла:</p>
  <ul id="1WB9">
    <li id="gVEI"><strong>brainstorm</strong> — переводит агента в режим собеседника. Принимает намерение, ресерчит, челленджит, фиксирует решения, на выходе — design document.</li>
    <li id="y63g"><strong>planner</strong> — переводит в режим архитектора имплементации. Принимает design document, проверяет его против реального кода, разбивает на спринты, на выходе — development plan.</li>
    <li id="GiP0"><strong>code‑review</strong> — переводит в режим ревьюера. В свежей сессии принимает результат имплементации спринта, выдаёт репорт.</li>
  </ul>
  <p id="hAi8">Скиллы я выложил в открытый доступ: github.com/pridees/skillforce. Подогнаны на работу друг с другом, протестированы на Claude Code, Codex, Gemini, Open Code и нескольких других harness, на моделях от Anthropic, OpenAI, Kimi и GLM. Гарантий, что у вас заработает идентично, нет — модели разные, harness разные, кодовые базы разные — но как отправная точка вполне годятся. Дальше адаптируете под свою специфику.</p>
  <p id="lRKW">Установка (может понадобиться установленный nodejs):</p>
  <pre id="PFdM">npx skills add pridees/skillforceОбъяснить с</pre>
  <blockquote id="4W81">Как тимлид, вы не должны заставлять каждого синьора собирать это с нуля. Один из ваших ключевых вкладов — подготовить скиллы и контекстный слой централизованно, в формате, удобном для подключения к репозиторию. Это снимает огромный кусок «налога на вход» для синьоров, которые иначе никогда бы не дошли до настройки самостоятельно. И заодно — снимает разнобой подходов в команде, который мы видели в push‑сценарии.</blockquote>
  <h4 id="izdQ">Что должно появляться в репозитории</h4>
  <p id="V5AT">Тимлиду не обязательно знать каждый промпт — обязательно знать, <em>что должно появляться на выходе каждой фазы</em>. Это ваш главный инструмент проверки, что workflow работает, а не имитируется.</p>
  <p id="QJGT"><strong>Design document</strong> (после brainstorm). Структура: Understanding Summary, Non‑Goals, Assumptions, Design Principles, Data Model / Contract, Runtime Behavior, Testing Strategy, Decision Log, Acceptance Criteria.</p>
  <p id="CsyB"><strong>Development plan</strong> (после planning). Структура: Overview, Prerequisites, Sprint 1...N (каждый со своей целью, задачами, критериями приёмки, валидацией), Testing Strategy, Risks &amp; Rollback.</p>
  <p id="lpGg">Можете хранить их в репе, я удаляю обычно через пару недель после релиза. Если вдруг в коде обнаруживается баг, хеш коммита, спека и план помогают быстрее восстановить контекст для его отладки.</p>
  <h3 id="xhKA">Подготовка инфраструктуры</h3>
  <p id="NvrY">Скиллы — половина дела. Вторая половина — то, что лежит в репозитории и подгружается агентом каждый раз при работе. Это harness, на котором всё крутится, и контекстный слой, который определяет, как агент понимает ваш проект.</p>
  <h4 id="tYNR">Harness</h4>
  <p id="YrTy">Harness — слой между «интеллектом» (моделью) и «исполнением» (вашим кодом и тестами). По сути, это и есть «агент» в обиходном смысле слова — Claude Code, Codex CLI, Cursor agent mode, Open Code. Их задача — не «писать код вместо разработчика», а замыкать управляемый SWE‑цикл: получение задачи, исследование кодовой базы, планирование, внесение изменений, синхронизация инструкций, tool и MCP вызовы.</p>
  <p id="e2Yz">Главное требование — <strong>способность проверять самого себя</strong>. Внутри агентского цикла должен быть этап критики и самопроверки: запуск компилятора, линтера, тестов. Либо возможность настроить это вручную через хуки. Без этого harness — не SWE‑tool, а просто красивый чат с автодополнением.</p>
  <p id="6nik">Большого выбора нет. Mainstream‑варианты — Claude Code и Codex CLI, оба умеют переключаться на модели сторонних провайдеров (если это политически приемлемо в вашей компании). Если не приемлемо — мой личный рекомендасьен Pi, крайне расширяемая штука, позволяющая накрутить всё что нужно. По моделям — берите лучшее доступное; если frontier недоступен, в открытых весах сейчас неплохо тянут модели уровня GLM/Kimi/MiniMax.</p>
  <p id="qKkm">Как тимлид, вы выбираете harness один раз для всей команды и закрепляете в стандарте. Гетерогенность тут — зло: разные harness читают разные форматы инструкций, и контекстный слой, заточенный под один, не работает с другим.</p>
  <h4 id="ax6h">Контекстный слой</h4>
  <p id="bJSn">Это сердце вашей инфраструктуры. Здесь живут все договорённости, конвенции, гайдлайны, навыки и паттерны, которые отличают вашу кодовую базу от любой другой. То, что вы передаёте новому разработчику в течение первых двух месяцев, агенту нужно передать через файлы.</p>
  <p id="10Vh">Я строю этот слой так:</p>
  <pre id="DSmz">/
├── .agents/
│   ├── rules/
│   │   ├── coding-guidelines.md
│   │   └── conventions.md
│   ├── skills/
│   │   ├── brainstorm/SKILL.md
│   │   └── code-review/SKILL.md
│   └── AGENTS.md
Объяснить с</pre>
  <p id="Ompy">Дальше — симлинки под конкретный harness: <code>.agents/AGENTS.md → .claude/CLAUDE.md</code> или <code>.agents/AGENTS.md → .codex/AGENTS.md</code>. OSS‑агенты понимают <code>.agents</code> из коробки или позволяют указать имя в конфиге.</p>
  <p id="Hs48"><code>AGENTS.md</code> — главная агентская инструкция. Базовая структура: определение проекта, правила разработки (со ссылками на <code>rules/</code>), структура репозитория, гайдлайн по спецификациям, конвенции коммитов, red flags (то, чего никогда не делаем), команды для сборки и тестов, ссылки на документацию. Минимальный универсальный шаблон, с которого можно стартовать, я выложил отдельным гистом — gist.github.com/pridees/82eef0e1710196188492695baef20ee6. Берите, адаптируйте под свой стек.</p>
  <p id="MLQk">Содержательно <code>AGENTS.md</code> заполняется не вручную с нуля. Есть способ проще: попросить агента <code>сделай интроспекцию репозитория и его правил и обнови @.agents/AGENTS.md, сохранив структуру</code>. Дальше — ревьюите и правите. Один раз, для всей команды.</p>
  <h4 id="H3Fi">Главный принцип: «модель разберётся сама»</h4>
  <p id="fsL1">Это контринтуитивная вещь, которую обычно понимают только после нескольких итераций.</p>
  <p id="Er6H">Соблазн при настройке — описать все кейсы на все случаи жизни. Все правила, все конвенции, все исключения. Не делайте так. Вот почему:</p>
  <ul id="0UY5">
    <li id="Hguu"><strong>Раздутый AGENTS.md занимает место в контекстном окне.</strong> Каждый токен инструкций — это токен, отнятый у задачи. Чем больше правил, тем хуже агент решает.</li>
    <li id="NKhK"><strong>Инструкции вступают в противоречие с реальным кодом.</strong> Реальность всегда богаче письменного описания. Агент видит код — и предсказуемо пишет так, как видит. А вас раздражает, что он «не следует правилам».</li>
    <li id="8u3Z"><strong>Императивные правила хрупкие.</strong> «Контроллеры пиши вот так» — а если контроллер не такой? «Не используй X» — а если в одном месте всё‑таки нужно? Каждое исключение требует апдейта инструкций.</li>
  </ul>
  <p id="Ufq8">Гораздо мощнее работает другой подход: <strong>уточняйте детали по ходу работы с агентом</strong>, а <strong>источником примеров делайте ваш код</strong>. Если у вас есть хорошо спроектированный модуль или удачная имплементация фичи — просто опишите случай и сошлитесь на эти файлы. «Когда работаешь с доменным слоем, смотри <code>src/domain/order</code> как образец». Вместо страницы инструкций — одна строка плюс реальный пример из вашей же кодовой базы.</p>
  <p id="WvJj">Аналогично с правилами: не пишите для каждого файла в <code>rules/</code> <code>You MUST read</code>. Инструкции о REST‑контроллерах не нужны для работы с доменным слоем, и наоборот. Просто опишите условие, когда инструкция актуальна — модель разберётся сама.</p>
  <p id="bY1N">Повторяющиеся паттерны и промпты, которые начинают возникать снова и снова у вас или у разработчиков, выделяйте в отдельные скиллы. Контекстный слой — живой, он растёт вместе с командой.</p>
  <blockquote id="KcOJ">Как тимлид, ваша задача — не написать идеальный AGENTS.md один раз, а <strong>создать процесс его эволюции</strong>. Кто‑то один (вы или назначенный мейнтейнер) держит контекстный слой в актуальном состоянии, принимает PR на правила и скиллы от команды, отслеживает то, что начало повторяться. Это не разовая активность, это новый ритуал в репозитории — как CODEOWNERS, только для контекста.</blockquote>
  <h3 id="HGiK">Как разворачивать в команде</h3>
  <p id="bAMH">Harness выбран, контекстный слой собран, скиллы в репо. Дальше — самое сложное. Превратить инфраструктуру в практику без скатывания обратно в push‑модель, которую мы только что разобрали.</p>
  <p id="6bJE">Я разбиваю развёртывание на три фазы. У каждой — своя логика, свои метрики и свои способы всё испортить.</p>
  <h4 id="mfSl">Фаза 1. Ранние последователи (early adopters)</h4>
  <p id="qzfm">Найдите 1–2 человек в команде, которые <strong>сами</strong> хотят с этим работать. Не уговаривайте, не «дайте шанс». Хотят — значит, уже пробовали на стороне, разочаровались в наивных подходах и готовы потратить силы на нормальный workflow. Идеальный кандидат — синьор со зрелым скепсисом, а не джун с горящими глазами.</p>
  <p id="4aFI">Их задача на этой фазе — не «перевести команду на ИИ». Их задача — <strong>прожить workflow на реальных задачах</strong> и произвести видимые артефакты: design documents, development plans, чистые PR, которые ревьюятся быстро и не требуют переписывания. Несколько фич, доведённых до прода. Это и будет ваш proof.</p>
  <p id="ry8S">Не ставьте дедлайн. Не вводите метрику. Не отчитывайтесь перед бордом по этой фазе. Любая публичность её ломает — волонтёры начинают работать на отчёт, а не на качество.</p>
  <h4 id="rNPk">Фаза 2. Расширение</h4>
  <p id="LaK5">Когда у ребят появятся credible results — открываете invitation. Не «теперь все попробуют», а «вот что мы напробовали — теперь доступно всем желающим». Скиллы и контекстный слой в репозитории, документация, может быть один внутренний митап, на котором коллеги на опыте показывают как они работают. Без давления.</p>
  <p id="RLKM">Дальше — наблюдаете. Кто‑то подключится сразу, кто‑то через месяц, кто‑то через три. Это <strong>нормально</strong>. Pull‑модель не в том, что все приходят в один день. Pull в том, что приходят сами.</p>
  <p id="ISDG">Скептиков не трогаете вообще. Кто‑то из них присоединится, увидев результаты коллег. Кто‑то — после того, как сам упрётся в стену, которую workflow решает. Кто‑то — никогда. С последним сценарием тоже надо уметь жить: не каждый разработчик должен работать с агентами, и попытка натянуть workflow на всех — та самая push‑модель в новой обёртке.</p>
  <h4 id="E7aC">Фаза 3. Стандарт</h4>
  <p id="ekym">Когда 70–80% команды устойчиво использует workflow — формализуете. Не раньше. AGENTS.md в репо обязателен, harness стандартизирован, скиллы централизованы и поддерживаются. На этой фазе — да, можно требовать. Но требование звучит не «использовать ИИ», а «соблюдать конвенции репозитория». Кто пишет руками — пожалуйста, главное — конвенции.</p>
  <blockquote id="TYY6">Никогда не вводите KPI «процент кода от ИИ». Это самая популярная и самая разрушительная метрика во всех push‑внедрениях, которые я видел. Она оптимизирует ровно то, что не нужно оптимизировать, и поощряет ровно то поведение, от которого workflow призван защитить.</blockquote>
  <h4 id="m1kj">А что по метрикам:</h4>
  <ul id="Wss5">
    <li id="GA9d"><strong>Lead time от взятия задачи в работу до мержа PR.</strong> Не должна расти. Если с колес видите буст к скорости — команда слишком положилась на ИИ, что тоже не гуд. Улучшение этой метрики должно рассматриваться вкупе с метриками, озвученными ниже.</li>
    <li id="hXRM"><strong>Review Throughput на ревьюера</strong> — сколько PR в неделю на одного ревьюера и сколько времени тратится. Ваш канарейка против скрытого возврата к push‑модели. Если кто‑то в команде начинает генерировать в режиме «сделал — отправил» (то самое поведение, от которого мы уходили), нагрузка на ревьюеров уйдёт в потолок раньше, чем это поймают другие метрики.</li>
    <li id="JRrY"><strong>PR Rework Rate</strong> — доля PR, которые после первого ревью требуют существенных изменений (не косметика, не комменты, а переписывание логики). Не должна расти. Если растёт — значит, brainstorm/planning пропускаются, и workflow деградирует в «генерацию по запросу».</li>
    <li id="N4zr"><strong>Mean Time to Recovery</strong> — время от инцидента до восстановления. Косвенно показывает, насколько команда понимает код, который она производит. Здесь самый коварный риск ИИ‑внедрения: код пишется быстрее, но если автор не до конца его понимает (потому что больше делегировал, чем думал) — на инциденте это вылезает. MTTR растёт = deskilling реализовался, надо пересматривать workflow в сторону большей вовлечённости человека на этапе brainstorm/planning.</li>
    <li id="GoOd"><strong>Простой опрос внутри команды раз в спринт‑два.</strong> Один вопрос: «насколько workflow помогает или мешает работать?». NPS‑формат. Цифра не важна — важна динамика.</li>
  </ul>
  <p id="lSNC"><strong>Чего НЕ мерить:</strong></p>
  <ul id="2WMZ">
    <li id="LhJK">Процент кода, написанного ИИ. Бессмысленная метрика, оптимизируется тривиально, поощряет вред.</li>
    <li id="TVpy">Скорость генерации. Меряет инструмент, а не продуктивность.</li>
    <li id="fbSU">Объём строк кода в PR. Агент склонен раздувать решения, эта метрика поощряет именно это.</li>
  </ul>
  <h4 id="yzoA">Вредные антипаттерны</h4>
  <p id="w05x">Короткий чеклист того, что ломает pull‑модель за один шаг:</p>
  <ul id="Cgpi">
    <li id="lJpN"><strong>Дедлайн на внедрение.</strong> «К концу квартала все используют» = push.</li>
    <li id="TVn4"><strong>KPI «процент кода от ИИ».</strong> Уже объяснил.</li>
    <li id="YuZD"><strong>Публичные сравнения.</strong> «Вот Вася сделал в 2 раза быстрее, потому что использует агента» — гарантия того, что Вася станет изгоем, а остальные начнут саботировать осознанно.</li>
    <li id="VGWJ"><strong>Запрет писать руками.</strong> Если задача мелкая или очевидная — workflow избыточен. Запрет = бессмысленная фрустрация.</li>
    <li id="R7HY"><strong>Заставлять ранних адоптеров обучать остальных.</strong> Их задача — производить результаты, не быть евангелистами. Евангелизм должен быть органическим, иначе он отталкивает.</li>
    <li id="oP1p"><strong>Принимать метрики снаружи.</strong> Если стандарты внедрения приходят с уровня выше вашей команды — у вас не команда, у вас цех. Защищайте автономию.</li>
  </ul>
  <blockquote id="4E48"><em>Ваш вклад как тимлида тут — не в скорости внедрения. Через 3–6 месяцев у вас в команде должна прорасти зрелая инженераная практика, а не подгоревший коллектив в состоянии итальянской забастовки.</em></blockquote>
  <h3 id="w9Rb">Финал</h3>
  <p id="flT8">Через несколько месяцев после внедрения вы оглядываетесь назад и понимаете странную вещь. Самым ценным результатом стал не выросшее число закрытых тасок, не сокращённое lead time и даже не довольные синьоры. Самым ценным результатом стало <strong>то, как изменилась работа мысли</strong> в команде.</p>
  <p id="j1ul">Чтобы агент в подчинённой проактивной позиции выдавал нужное — нам пришлось научиться формулировать намерение точнее, чем раньше. Больше углубляться в вопрос, «что» мы строим и не отводить глаз от «как». Декомпозировать задачу до того, как написана первая строка. Видеть скоуп и фиксировать его словами. Формулировать доводы в ревью так, чтобы не получить костыль на следующей итерации. Терпеливо проходить цикл вместо «сейчас сам сделаю быстрее».</p>
  <p id="4fkv">Эти навыки — точность, ясность мысли, системность и терпение — и есть главное приобретение. Они не были получены в подарок от инструмента. Они выросли потому, что workflow требовал их каждый день. Искуственный интеллект уже достаточно хорош, чтобы решать наши повседневные задачи, но ярко подсвечивает то, что часто заметали под ковер — как мы доносим друг другу свои мысли и намерения.</p>
  <p id="Ptge">И именно поэтому push‑модель никогда не даст этого результата, сколько KPI ни вводи. Принуждение отбирает у инженера авторство и подменяет мышление генерацией. Вовлечение — заставляет мышление работать жёстче, чем оно работало без агента. Разница не в скорости. Разница в том, что становится с командой через год.</p>
  <p id="uITt">Ваша роль как тимлида — создать пространство, в котором это возможно. Скиллы, контекстный слой, фазы развёртывания, защита автономии команды от внешних метрик. Дальше синьоры справятся сами. На то они и синьоры.</p>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <figure id="DeED" class="m_original">
    <img src="https://img2.teletype.in/files/56/e1/56e1ef6f-a836-4da3-b7c8-013b7d34b889.png" width="1024" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@claudedev/Seniorai</guid><link>https://teletype.in/@claudedev/Seniorai?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev</link><comments>https://teletype.in/@claudedev/Seniorai?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev#comments</comments><dc:creator>claudedev</dc:creator><title>Senior‑разработчики как исчезающий вид</title><pubDate>Wed, 06 May 2026 05:49:32 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/13/42/1342631e-07fe-42cd-8326-36c723e542ec.png"></media:content><description><![CDATA[<img src="https://img4.teletype.in/files/bf/42/bf4266a7-919a-4146-a7f3-3a73d826e014.png"></img>Последние несколько лет в IT повторяли почти успокаивающую фразу: AI не заменит разработчиков, он станет их помощником.]]></description><content:encoded><![CDATA[
  <h2 id="yRNM">Не потому что AI заменил опытных инженеров. А потому что рынок перестаёт выращивать новых</h2>
  <p id="Z0Hq">Последние несколько лет в IT повторяли почти успокаивающую фразу: AI не заменит разработчиков, он станет их помощником.</p>
  <figure id="ECt9" class="m_original">
    <img src="https://img4.teletype.in/files/bf/42/bf4266a7-919a-4146-a7f3-3a73d826e014.png" width="1257" />
  </figure>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <p id="mD7v">В 2026 году эта формулировка всё хуже описывает реальность.</p>
  <p id="RvX9">AI‑инструменты уже не просто дописывают строки в IDE. Codex, Claude Code и другие агентные среды всё чаще берут на себя полный цикл реализации: читают кодовую базу, редактируют файлы, запускают команды, пишут тесты и готовят изменения к ревью. Человек остаётся в процессе, но его роль смещается от автора каждой строки к контролёру результата.</p>
  <p id="srpF">Я бы сформулировал это так:</p>
  <blockquote id="0D8Z"><strong>Участие человека в разработке становится критическим, но минимальным.</strong></blockquote>
  <p id="8WZN">Критическим — потому что кто‑то должен понять задачу, принять архитектурное решение, проверить результат и отвечать за продакшен.</p>
  <p id="0joE">Минимальным — потому что всё больший объём непосредственного производства кода уходит модели.</p>
  <p id="QSCF">Google на Cloud Next 2026, главном ивенте Google Cloud для разработчиков, компаний и партнёров, публично заявил, что 75% нового кода внутри компании уже генерируется AI и утверждается инженерами. Важна не только сама цифра, а формулировка: код генерируется AI, а человек его утверждает.</p>
  <p id="jNuc">И здесь возникает более глубокая проблема, чем «AI заменит джунов».</p>
  <p id="nIZL">Проблема в том, что рынок всё ещё хочет сеньоров, лидов и архитекторов, но всё хуже поддерживает путь, через который они раньше появлялись.</p>
  <h2 id="oIyu">AI забирает не всю профессию сразу. Он забирает нижний слой</h2>
  <p id="iJuc">Когда говорят «AI заменит разработчиков», спор часто уходит в крайности.</p>
  <p id="zItn">Одни представляют полное исчезновение профессии. Другие отвечают, что сложные системы всё равно требуют людей, и поэтому ничего принципиально не изменится.</p>
  <p id="8wlD">Но реальный сдвиг происходит между этими крайностями.</p>
  <p id="BhPm">AI не должен заменить всю профессию сразу, чтобы радикально изменить рынок. Ему достаточно автоматизировать нижний слой задач:</p>
  <ul id="ANKI">
    <li id="cZDd">типовые CRUD‑сценарии;</li>
    <li id="E7Gc">простые компоненты;</li>
    <li id="heyM">миграции;</li>
    <li id="wLoO">базовые интеграции;</li>
    <li id="DDJ4">тесты;</li>
    <li id="sRLg">документацию;</li>
    <li id="kG5o">простые багфиксы;</li>
    <li id="eUCq">первичный рефакторинг;</li>
    <li id="lGEY">объяснение чужого кода;</li>
    <li id="91s6">быстрые прототипы.</li>
  </ul>
  <p id="8IBR">Именно на этих задачах раньше учились начинающие разработчики.</p>
  <p id="oGnl">Стажёр приходил в команду. Ему давали небольшую задачу. Он делал её медленно, ошибался, получал ревью, переписывал, спрашивал, ломал локальное окружение, снова чинил, постепенно понимал кодовую базу и учился видеть последствия своих решений.</p>
  <p id="hCK1">Это был не самый эффективный способ закрывать задачи здесь и сейчас. Но это был способ выращивать инженеров.</p>
  <p id="435r">Теперь компания смотрит на ту же задачу иначе: зачем отдавать её джуну на несколько дней, если мидл или сеньор с Codex, Claude Code, Copilot или другим агентом закроет её быстрее, дешевле и с меньшими организационными рисками?</p>
  <p id="pxw2">Проблема джуна не в том, что он стал хуже. Проблема в том, что его учебные задачи стали слишком хорошо автоматизироваться.</p>
  <h2 id="YCyp">Производство кода отделяется от профессии разработчика</h2>
  <p id="6WUP">В отчёте Sonar State of Code Developer Survey 2026 разработчики оценивают, что 42% их текущего кода уже является ИИ‑сгенерированным или существенно ИИ‑дополненным. К 2027 году они ожидают рост до 65%. Среди тех, кто пробовал ИИ‑инструменты для разработки, 72% используют их каждый день.</p>
  <figure id="SEEB" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/4b1/904/43c/4b190443c451754c771ac67eeda2aff5.png" width="1548" />
    <figcaption>Sonar State of Code Developer Survey 2026</figcaption>
  </figure>
  <p id="kDbm">Можно спорить о точности каждой отдельной цифры. Можно говорить, что «AI‑assisted» — это не то же самое, что полностью сгенерированный код. Можно справедливо замечать, что автодополнение, чат, агент в IDE и автономная работа с PR — разные уровни участия модели.</p>
  <p id="cQVh">Но направление очевидно: <strong>производство кода становится всё менее ручным процессом.</strong></p>
  <p id="lrZY">Anthropic в отчёте Agentic Coding Trends 2026 описывает похожий сдвиг: разработчики всё чаще не пишут каждую строку сами, а управляют агентами, которые берут на себя реализацию, тесты, документацию и работу с кодовой базой. При этом важная оговорка: по внутренним исследованиям Anthropic, разработчики используют AI примерно в 60% своей работы, но полностью делегировать могут только небольшую долю задач — обычно 0–20%.</p>
  <p id="4LIb">Подробнее этот отчёт Anthropic я разобрал в своём Telegram‑канале.</p>
  <p id="nmWx">Разработка всё меньше похожа на ручное производство кода. И всё больше — на управление потоком решений, которые нужно проверять, ограничивать и связывать с реальной системой.</p>
  <h2 id="jukF">Контур ответственности</h2>
  <p id="DB7C">Здесь появляется первый важный термин.</p>
  <p id="hXuJ"><strong>Контур ответственности</strong> — это всё, что остаётся за человеком, даже если код пишет машина:</p>
  <ul id="lHJ8">
    <li id="SidD">понять задачу;</li>
    <li id="60Lj">уточнить требования;</li>
    <li id="G41l">выбрать архитектурный подход;</li>
    <li id="0z6g">определить ограничения системы;</li>
    <li id="YRuU">оценить безопасность;</li>
    <li id="RVEQ">проверить производительность;</li>
    <li id="lhHr">предусмотреть крайние случаи;</li>
    <li id="lg8l">организовать тестирование;</li>
    <li id="sJGw">провести ревью;</li>
    <li id="Kr39">принять риск;</li>
    <li id="q7wY">отвечать за продакшен.</li>
  </ul>
  <p id="zv4h">AI может сгенерировать код.</p>
  <p id="5WuY">Но AI не несёт ответственность за сломанный платёжный сценарий, утечку данных, падение сервиса, рост технического долга или архитектурное решение, которое через полгода сделает систему неподдерживаемой.</p>
  <p id="cWZ5">Поэтому новая роль сильного разработчика — не просто писать код быстрее.</p>
  <p id="NANQ">Новая роль — удерживать контур ответственности.</p>
  <p id="OVVX">Это звучит абстрактно, но на практике выглядит очень конкретно.</p>
  <p id="fXLj">Старый процесс:</p>
  <pre id="VgKp">разработчик получил задачу
→ написал код
→ написал тесты
→ открыл PR
→ получил ревью
→ поправил
→ смерджилОбъяснить с</pre>
  <p id="Bm4n">Новый процесс:</p>
  <pre id="egmg">разработчик сформулировал задачу для агента
→ агент написал код→ агент открыл PR
→ разработчик проверил diff
→ нашёл неверную абстракцию
→ усилил тесты
→ проверил безопасность
→ принял ответственность за mergeОбъяснить с</pre>
  <p id="6vmi">В первом процессе человек производит большую часть кода.</p>
  <p id="JQpX">Во втором процессе человек может написать меньшую часть кода, но всё равно отвечает за 100% последствий.</p>
  <p id="RuPn">Это и есть новая асимметрия разработки: операционного участия меньше, ответственности больше.</p>
  <p id="FUoW">Человек может написать 5% кода, но отвечать за 100% результата.</p>
  <h3 id="hqnq">Что это меняет в работе команды</h3>
  <p id="3vM1">Представим обычную задачу: добавить новый endpoint, сохранить данные, отдать ответ, покрыть тестами.</p>
  <p id="x8nT">Раньше это могла быть нормальная задача для джуна. Не слишком сложная, но полезная: разобраться в роутинге, DTO, валидации, слое доступа к данным, тестах, локальном окружении и правилах команды.</p>
  <p id="r5X6">Теперь ту же задачу можно отдать агенту.</p>
  <p id="4fgw">Через некоторое время агент откроет PR. Там будет endpoint, миграция, тесты, возможно, обновлённая документация.</p>
  <p id="hiFC"><strong>Бизнес доволен: задача закрыта быстрее</strong>.</p>
  <p id="fdK4"><strong>Сеньор доволен: меньше рутины</strong>.</p>
  <p id="S3ms">Но у этого выигрыша есть скрытая цена: никто не прошёл учебный цикл.</p>
  <ul id="AiOx">
    <li id="uqVq">Не было вдумчивого чтения чужого кода;</li>
    <li id="Yt7o">Не было ошибки в миграции;</li>
    <li id="WNeU">Не было вопроса на ревью: «почему ты положил эту логику сюда?»;</li>
    <li id="TJwj">Не было самостоятельной попытки разобраться, почему тест падает локально;</li>
    <li id="Evqe">Не было понимания, где в этой системе границы ответственности.</li>
  </ul>
  <p id="C2P8">Задача закрыта. Инженер не вырос.</p>
  <p id="B8Ok">Если такое происходит один раз — ничего страшного.</p>
  <p id="md39">Если так устроена вся воронка входа в профессию — рынок начинает сам себя обеднять.</p>
  <h3 id="BhUZ">Разрыв воспроизводства инженеров</h3>
  <p id="vq1N">Сеньор‑разработчик — это не человек, который просто дольше писал код.</p>
  <p id="f0nv">Это человек, который прошёл через ошибки, ревью, чужой устаревший код, плохие архитектурные решения, инциденты, дедлайны, спорные компромиссы, продакшен‑баги и ответственность.</p>
  <p id="onQM">Сеньорство нельзя полностью прочитать в документации. Его нельзя получить только через pet‑проекты. Его нельзя выучить только через промпты. Оно формируется через практику. Но если нижний слой практики автоматизируется, возникает разрыв воспроизводства инженеров.</p>
  <p id="I6K1"><strong>Разрыв воспроизводства инженеров</strong> — это ситуация, когда рынок всё ещё нуждается в сильных разработчиках, но перестаёт поддерживать ступени, через которые эти разработчики раньше вырастали.</p>
  <p id="9V0n">Компании хотят мидлов, сеньоров, тимлидов, архитекторов.</p>
  <p id="8Ue7">Но всё меньше хотят нанимать людей, которым нужно пройти путь от простых задач к сложным. Для бизнеса это становится сложной инвестицией: джун требует онбординга, ревью и менторства, а отдача появляется не сразу или может вообще не появиться. На фоне относительно дешёвых AI‑инструментов эта инвестиция всё чаще выглядит менее очевидной.</p>
  <p id="D0OR">Stanford AI Index 2026 фиксирует тревожный сигнал: занятость software developers в возрасте 22–25 лет упала почти на 20% с 2024 года. При этом эффекты AI на рынок труда проявляются неравномерно и сильнее концентрируются в найме и в самых молодых работниках в профессиях, подверженных AI.</p>
  <figure id="dsoG" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/185/439/db5/185439db54c5c8847d5628c6cdfe94f0.png" width="2050" />
    <figcaption>Stanford AI Index 2026</figcaption>
  </figure>
  <p id="MhSU">Это не доказывает, что AI единолично «убил джунов». На рынок влияют ставки, постковидная коррекция, сокращения, насыщение bootcamp‑рынка, география найма и общая осторожность компаний.</p>
  <p id="EV4l">Но AI усиливает уже существующий сдвиг.</p>
  <p id="aCbQ">Если раньше новичок был инвестицией в будущего мидла, то теперь он всё чаще выглядит как дорогой и медленный способ закрыть задачи, которые можно отдать модели под контролем опытного инженера.</p>
  <h2 id="OTDu">AI‑потолок джуна</h2>
  <p id="uqgI">Так появляется второй термин — AI‑потолок джуна.</p>
  <p id="jbwu"><strong>AI‑потолок джуна</strong> — это барьер между входом в профессию и реальной инженерной практикой.</p>
  <p id="2A0P">Новичок больше не конкурирует только с другим новичком.</p>
  <p id="4A6w">Он конкурирует с комбинацией:</p>
  <blockquote id="cBrM">опытный разработчик + AI‑инструменты + готовая инфраструктура + накопленный контекст команды.</blockquote>
  <p id="wHfP">И это нечестная конкуренция. Джун не проигрывает потому, что он ленивый или плохо учился.</p>
  <p id="sSti">Он проигрывает потому, что рынок сравнивает его не с человеком того же уровня, а с усиленным AI опытным разработчиком.</p>
  <p id="yYqC">Именно поэтому заголовок «сеньор‑разработчики как исчезающий вид» важнее, чем «джуны исчезают». Потому что джун — это не отдельный вид сотрудника. Джун — это будущий сеньор на первой стадии формирования.</p>
  <p id="UUDO">Если исчезает нормальный путь джуна, через несколько лет начинает исчезать поток новых сеньоров.</p>
  <figure id="8UtC" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/d08/e3b/dee/d08e3bdee31a83a1c4f3a47de9525a2a.png" width="1672" />
  </figure>
  <h2 id="5p6G">Когнитивный потолок: джун не успевает сформировать базу</h2>
  <p id="pJ29">У AI‑потолка есть не только рыночная, но и когнитивная сторона.</p>
  <p id="PIFc">Джун сегодня входит не просто в профессию разработки. Он входит в профессию, которая сама перестраивается быстрее, чем он успевает сформировать фундамент.</p>
  <p id="Teig">Ему нужно одновременно учить язык, фреймворки, Git, базы данных, тестирование, архитектуру, безопасность, работу с устаревшим кодом — и поверх этого ещё слой AI‑инструментов: Cursor, Claude Code, Copilot, Codex, агентные сценарии, контекст, промпты, правила ревью AI‑кода, новые режимы проверки и новые риски.</p>
  <p id="JYZt">Для опытного инженера это может быть усилителем. У него уже есть внутренняя карта: он понимает, где модель ошибается, что нужно проверять и какие решения опасны.</p>
  <p id="X2xw">Для новичка тот же слой инструментов часто превращается в перегруз. Когда задача непонятна, делегирование модели выглядит рационально. Модель быстрее объяснит ошибку, напишет функцию, предложит тесты, соберёт прототип.</p>
  <p id="x3J8">Но здесь появляется цикл когнитивной уступки:</p>
  <blockquote id="syBU">непонятная задача:<br />→ перегруз<br />→ делегирование AI<br />→ быстрый результат<br />→ слабое внутреннее понимание<br />→ следующая задача кажется ещё сложнее<br />→ ещё больше делегирования.</blockquote>
  <p id="gjOh">Человек выигрывает задачу, но проигрывает навык.</p>
  <p id="eEBv">Anthropic в недавнем исследовании о влиянии AI‑помощи на формирование навыков программирования показал похожий риск. В рандомизированном эксперименте участники с AI справились немного быстрее, но затем показали более слабое понимание: средний результат группы с AI на проверочном тесте был 50% против 67% у группы, которая писала код вручную. Исследователи отдельно отмечают, что агрессивное внедрение AI в рабочую среду может дать выигрыш в продуктивности, но навредить развитию навыков, необходимых для проверки AI‑кода.</p>
  <p id="DztC">Это не значит, что новичкам нельзя использовать AI. Наоборот, им придётся его использовать. Но способ использования становится критичным.</p>
  <p id="rznk">Есть большая разница между:</p>
  <blockquote id="QnIj">«сделай за меня»</blockquote>
  <p id="a7iK">и</p>
  <blockquote id="jxjo">«объясни принцип, покажи варианты, помоги найти ошибку, но я сам должен понять решение».</blockquote>
  <p id="52SV">В первом случае AI закрывает пробел понимания.</p>
  <p id="HECh">Во втором — помогает его заполнить.</p>
  <p id="3ILF">Поэтому главный вопрос для джуна в 2026 году звучит не так:</p>
  <blockquote id="gC1p">«умею ли я пользоваться AI?»</blockquote>
  <p id="vzXj">А так:</p>
  <blockquote id="F0ll">«становлюсь ли я сильнее после использования AI?»</blockquote>
  <p id="4bda">Если после каждой задачи человек получает результат, но не получает понимания, он не растёт как инженер. Он просто учится управлять чужим мышлением.</p>
  <p id="LnGa">В этом смысле AI‑потолок джуна — это не только проблема найма. Это проблема обучения.</p>
  <p id="DfhJ">Даже если новичок формально попадает в профессию, ему всё сложнее пройти путь глубокого понимания: слишком велик соблазн закрывать непонимание генерацией.</p>
  <h2 id="XvAJ">Рынок уже показывает первые симптомы</h2>
  <p id="vBnh">Отдельно стоит сказать про рынок труда.</p>
  <p id="5UX2">В России это уже ощущается не только как абстрактный разговор про будущее. Для начинающих специалистов рынок стал заметно жёстче.</p>
  <p id="Uz3w">Да, вакансии всё ещё есть и их много. На hh.ru, Хабр Карьере и других площадках можно найти объявления для junior и стажёров. Но наличие вакансии на сайте уже не всегда означает реальный живой спрос.</p>
  <p id="5t21">Часть объявлений висит месяцами. Часть собирает резюме «на будущее». Часть закрывается внутренними кандидатами. Часть зависает из‑за замороженного найма или долгого согласования.</p>
  <p id="rqUw">Для джуна разница небольшая. Он видит вакансию, откликается, проходит тестовое, ждёт ответ — и сталкивается с тишиной.</p>
  <p id="rZtc">Феномен «призрачных вакансий» уже обсуждается в HR‑среде: так называют объявления, которые создают видимость роста или собирают базу кандидатов, но не обязательно ведут к реальному найму прямо сейчас.</p>
  <p id="fodv">Параллельно публичные разборы российского IT‑рынка в 2026 году показывают другую проблему: в некоторых стеках и направлениях дисбаланс между вакансиями и активными резюме стал настолько сильным, что на небольшое число вакансий может приходиться огромный поток откликов. Один из разборов на Хабре прямо формулирует это как «2 вакансии, 1 000 откликов в сутки». Это не академическое исследование всего рынка, но хороший симптом того, как рынок ощущается изнутри. На своём личном опыте сталкивался с огромными волнами откликов на джун/интерн позиции при публикации вакансий 5–6 месяцев назад, ситуация сейчас ещё острее.</p>
  <p id="zi8p">Есть и более широкий тренд: рынок труда смещается от гиперспроса и массового найма к удержанию, внутренней ротации и профессиональному развитию уже нанятых сотрудников. В февральском отчёте hh за 2026 год видно, что среднее число активных вакансий год к году снизилось, а активных резюме — выросло.</p>
  <figure id="xUvm" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/4d7/894/b48/4d7894b486bc4c249667283bf6103aa2.png" width="2532" />
    <figcaption>Отчёт hh.ru за февраль 2026</figcaption>
  </figure>
  <p id="ru85">Поэтому фраза «рынку нужны IT‑специалисты» стала слишком общей.</p>
  <p id="DFc7">Какие специалисты нужны?</p>
  <p id="WNX3">Сильные — да.<br />Опытные — да.<br />Редкие — да.<br />Люди, которые могут быстро взять ответственность за систему, — да.</p>
  <p id="cNo3">А вот нужно ли рынку такое же количество начинающих специалистов, как в эпоху роста 2020–2021 годов, — уже большой вопрос.</p>
  <p id="8sOs">Именно здесь AI усиливает болезненный сдвиг. И в этой новой экономике джун оказывается в самой уязвимой позиции.</p>
  <ul id="lgDI">
    <li id="WYTr">Он ещё не приносит скорость как сеньор;</li>
    <li id="F7mS">Ещё не держит контур ответственности;</li>
    <li id="cp9F">Ещё требует онбординга;</li>
    <li id="3clq">Ещё ошибается;</li>
    <li id="Uh5Y">Ещё нуждается в ревью;</li>
    <li id="DW4b">А задачи, на которых он мог бы учиться, уже всё чаще автоматизируются.</li>
  </ul>
  <h2 id="cupK">Главный вопрос теперь не в том, заменит ли AI разработчиков</h2>
  <p id="HNsc">AI не отменяет разработку.</p>
  <p id="kuvm">Но он отменяет старую экономику разработки, в которой новичок мог постепенно расти на простых задачах.</p>
  <p id="ZUHD">AI усиливает тех, кто уже умеет проектировать, проверять и отвечать. Но одновременно он автоматизирует слой задач, через который раньше люди этому учились.</p>
  <p id="hip2">Сеньоры не исчезают сейчас. Наоборот, сильные инженеры становятся ещё ценнее.</p>
  <p id="LAHD">Но если рынок перестаёт выращивать новых специалистов, через несколько лет проблема вернётся уже на другом уровне. Компании будут жаловаться не на нехватку джунов, а на нехватку людей, которые способны отвечать за сложные системы.</p>
  <p id="Ki9R">И здесь перед IT‑компаниями возникает новый вызов: что делать с начинающими специалистами?</p>
  <p id="55Da">Не с олимпиадниками и редкими талантами — они почти всегда найдут путь.<br />Не с теми, кто уже в 20 лет пишет сложные инфраструктурные проекты.<br />А с обычными джунами, которые раньше могли бы стать хорошими мидлами через несколько лет практики.</p>
  <p id="r8uo">Куда они пойдут, если бизнесу они всё меньше нужны?</p>
  <p id="IW6r">Это не вопрос морали. Бизнес не обязан нанимать людей только потому, что им нужно где‑то учиться.</p>
  <p id="Aleo">Но если вся индустрия начнёт оптимизироваться только под краткосрочную эффективность, она может сломать собственный кадровый цикл.</p>
  <ul id="kv06">
    <li id="GveW">Кода станет больше</li>
    <li id="gFzA">ИИ‑агентов станет больше</li>
    <li id="ny8i">Автоматических PR станет больше</li>
    <li id="05mU">Скорость поставки фич станет выше.</li>
  </ul>
  <p id="qJAf">Но людей, которые понимают, как всё это работает, может стать меньше.</p>
  <p id="QVY1">Поэтому главный вопрос ближайших лет звучит не так:</p>
  <blockquote id="X4kM">«Заменит ли AI разработчиков?»</blockquote>
  <p id="B6iY">И даже не так:</p>
  <blockquote id="99yJ">«Нужны ли будут джуны?»</blockquote>
  <p id="BO9G">Главный вопрос жёстче:</p>
  <blockquote id="lwxI">«Кто будет выращивать инженеров, если простые задачи больше не требуют людей?»</blockquote>
  <p id="092Z">Если IT‑компании не построят новый карьерный лифт, рынок получит странную конструкцию: наверху — дорогие сеньоры и AI‑агенты, внизу — толпа людей, которые хотят войти в профессию, а между ними — всё меньше живых ступеней.</p>
  <p id="wWBE">Сеньор‑разработчики как исчезающий вид — это не про то, что текущие сеньоры больше не нужны. Это про то, что индустрия всё ещё хочет зрелых инженеров, но всё хуже понимает, как создавать условия, в которых они появляются.</p>
  <p id="APDs">И, возможно, именно это станет одной из главных кадровых проблем IT в эпоху AI.</p>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <figure id="vkS1" class="m_original">
    <img src="https://img2.teletype.in/files/56/e1/56e1ef6f-a836-4da3-b7c8-013b7d34b889.png" width="1024" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@claudedev/ainews4</guid><link>https://teletype.in/@claudedev/ainews4?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev</link><comments>https://teletype.in/@claudedev/ainews4?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev#comments</comments><dc:creator>claudedev</dc:creator><title>Uber потратил годовой бюджет на ИИ за 4 месяца — и теперь выбирает между токенами и людьми и 10 уроков агентного кодинга. Что делать в эпоху дешёвого кода?</title><pubDate>Wed, 06 May 2026 05:48:02 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/94/ff/94fff00d-0450-41ff-9b72-62f686b14546.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/14/68/14680704-370d-4068-99ca-5df100141608.png"></img>CEO Uber Дара Хосровшахи в подкасте Decoder от The Verge рассказал, компания израсходовала годовой бюджет на AI-инструменты примерно за 4 месяца. По словам Хосровшахи, если перерасход на вычисления продолжает приносить рост производительности, компания готова нанимать менее агрессивно — расходы на токены превращаются в сознательную альтернативу расширению штата, а не в финансовую проблему.]]></description><content:encoded><![CDATA[
  <p id="UpPm">CEO Uber Дара Хосровшахи в подкасте Decoder от The Verge рассказал, компания израсходовала годовой бюджет на AI-инструменты примерно за 4 месяца. По словам Хосровшахи, если перерасход на вычисления продолжает приносить рост производительности, компания готова нанимать менее агрессивно — расходы на токены превращаются в сознательную альтернативу расширению штата, а не в финансовую проблему.</p>
  <figure id="5FER" class="m_original">
    <img src="https://img2.teletype.in/files/14/68/14680704-370d-4068-99ca-5df100141608.png" width="1257" />
  </figure>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <p id="lD7B">Еще в апреле CTO компании Правин Неппалли Нага рассказал The Information, что доля сотрудников, активно использующих Claude Code, выросла с 32% до 84% за считанные месяцы. У Uber около 5000 инженеров, и реальные индивидуальные расходы на токены укладывались в диапазон от $500 до $2000 в месяц на человека. На фоне внутренних рейтингов, где руководство ранжировало команды по объему использования AI-инструментов, такая динамика и привела к тому, что бюджет 2026 года испарился задолго до конца года. Расходы на R&amp;D у Uber выросли на 9% за 2025 год и достигли $3,4 млрд.</p>
  <p id="i82s">По данным компании, около 11% всех изменений в бэкенд-коде сейчас полностью пишет AI без участия человека. Параллельно внутренний AI-агент Uber выпускает в продакшен около 1800 изменений в неделю — это отдельная метрика, отражающая объем агентной работы. Логика CEO простая: если токены делают существующих инженеров заметно эффективнее, привычная формула &quot;больше задач — больше людей&quot; перестает работать.</p>
  <p id="VJWA">Это рифмуется с тезисом Дженсена Хуанга на GTC 2026, где CEO NVIDIA предложил выдавать инженерам токен-бюджеты на сумму, равную половине зарплаты. Идею токенов как новой статьи компенсации уже несколько месяцев обсуждают в Кремниевой долине — VC Томаш Тунгуз еще в феврале описывал инференс как четвертый компонент инженерной зарплаты после оклада, акций и бонусов. Разница в том, что в этих обсуждениях речь шла о гипотетических моделях найма, а Хосровшахи говорит про уже исчерпанный бюджет крупной публичной компании. Uber параллельно готовится подключить OpenAI Codex в пару к Claude Code, чтобы диверсифицировать поставщиков и получить рычаг в переговорах о корпоративных тарифах.</p>
  <p id="YDGk">Главный сдвиг — не в цифрах, а в риторике. До этого CEO больших технологических компаний при любых вопросах про AI и сокращения уходили в формулировки про &quot;новые роли&quot; и &quot;повышенную продуктивность&quot;. Хосровшахи прямо сказал то, что обычно остается в кулуарах: расходы на токены теперь конкурируют с зарплатным фондом. Если такая логика закрепится у крупных игроков, отчеты о прибыли начнут читаться иначе — компенсации и численность штата станут частью одной и той же таблицы с расходами на инференс.</p>
  <h1 id="5c55">10 уроков агентного кодинга.</h1>
  <p id="epws">Передовые модели сейчас действительно хорошо пишут код — лучше, чем справляются с большинством других задач. Работа с агентами ощущается как взгляд из будущего: полигон для проверки того, насколько далеко можно зайти с агентными возможностями. Это заряжает, даёт результат и при этом — откровенно странно ощущается.</p>
  <p id="I2aa">Я веду список советов по агентному кодингу: правила и ориентиры для тех, кто только начинает работать с Codex, Claude Code, Pi или любым другим агентом. Каждый пункт — обобщённая рекомендация, применимая к агентному программированию в целом. Хочется, чтобы уроки оставались актуальными по мере того, как улучшаются модели и инструменты.</p>
  <p id="qGRI">Ниже — текущий список: <em>10 уроков агентного кодинга</em>. Десять — красивое круглое число, хороший повод опубликовать.</p>
  <p id="ZKg9">Оговорюсь: я лишь отточил и систематизировал эти принципы. Как сказал мне сегодня Кшетраджна Рагхаван: «Это <em>безумно</em> — как все мы независимо приходим к одним и тем же выводам».</p>
  <p id="wuoN"><em>(Если считаете, что что-то упущено — напишите.)</em></p>
  <hr />
  <ol id="iqN2">
    <li id="gW5K"><strong>Реализуй, чтобы понять.</strong> Можно далеко уйти с Spec-Driven Development, но сам процесс написания кода выявляет решения, о которых вы не думали, и делает спецификацию лучше. Когда код стоит крайне дешево — реализуй, чтобы узнать больше.</li>
    <li id="D53D"><strong>Пересобирай часто.</strong> Собирай сборки <em>как можно чаще</em>, чтобы узнавать больше. Форкай и переписывай свои самые сумасшедшие мысленные эксперименты. Проверяй, докуда можно довести фичу. Конечно, итерации и накопление работ никто не отменял — но дешёвый код позволяет разведывать и переизобретать так, как раньше было невозможно.</li>
    <li id="6e3u"><strong>Вкладывайся в end-to-end тесты.</strong> Когда код можно пересобрать дёшево, стоит тратить время на тесты, которые измеряют <em>функции</em> продукта, а не <em>способ</em> их реализации. Нужны поведенческие контракты, дающие свободу перестраивать и переписывать.</li>
    <li id="GK4J"><strong>Документируй намерение.</strong> Тесты описывают цели, код — методы, но ни то ни другое не отвечает на вопрос <em>зачем</em>. Намерение стоит за решениями, и если зафиксировать его рядом с кодом, это помогает вам и агенту двигаться в одном направлении.</li>
    <li id="Cpjz"><strong>Держи спецификации актуальными.</strong> Обновляй spec-файлы — markdown-документы с целями и планами — по мере продвижения кода и тестов. Если относиться к спецификации как к замороженному артефакту, написанному до начала работы, упустишь всё, что узнал в процессе. Актуальная спецификация постоянно направляет ваши решения и решения агента, а частые сборки становятся проще.</li>
    <li id="WvSO"><strong>Ищи сложное.</strong> Поработав над проектом достаточно долго, начинаешь упираться в реально трудные вещи: интуитивный дизайн, производительность, безопасность, отказоустойчивость, системную архитектуру. Лёгкое вайбкодить может каждый. Ценность — в сложном. Найди его и копай.</li>
    <li id="AbD1"><strong>Автоматизируй всё простое.</strong> Чтобы больше времени тратить на сложное, минимизируй время на лёгкое. Упаковывай знания в Skills, создавай Hooks, автоматизируй code review, давай инструментам накапливать работу.</li>
    <li id="DHlA"><strong>Развивай вкус.</strong> Когда код появляется быстро, а обратная связь — нет, единственный источник фидбека, который успевает за темпом, — это ты сам. Чем лучше знаешь свою область, пользователей и их проблемы, тем дальше можешь зайти без остановок на проверку.</li>
    <li id="88cs"><strong>Агенты усиливают опыт.</strong> Опытные разработчики недооценивают, сколько интуиции они вкладывают в промпты: правильные термины, правильный фрейминг, правильный уровень конкретики. Знание своего стека экономит множество циклов при реализации и отладке, сокращает лишнее хождение агента по кругу. Техническая экспертиза в связке с хорошим вкусом — трудно бить такую комбинацию.</li>
    <li id="dQ3W"><strong>Код дешевый, но поддержка, сопровождение и безопасность — нет.</strong> Агентный код бесплатен в том смысле, в каком бесплатен, например, щенок. Поддержка стоит дорого, и безопасность тоже. Строй быстро, но отдавай себе отчёт в том, что берёшь на обслуживание.</li>
  </ol>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <figure id="ViAY" class="m_original">
    <img src="https://img2.teletype.in/files/56/e1/56e1ef6f-a836-4da3-b7c8-013b7d34b889.png" width="1024" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@claudedev/bdcodingai</guid><link>https://teletype.in/@claudedev/bdcodingai?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev</link><comments>https://teletype.in/@claudedev/bdcodingai?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=claudedev#comments</comments><dc:creator>claudedev</dc:creator><title>«Я починил авторизацию и удалил БД»: краткая история ИИ-агентов</title><pubDate>Wed, 06 May 2026 05:45:44 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/f1/72/f172abab-446d-42c8-84b7-40b62177e1ec.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/d0/ee/d0ee439b-64c4-4f88-a910-71919a81e77a.png"></img>Если вы за последние полгода хоть раз заходили в интернет, то наверняка натыкались на посты в духе: «За выходные навайбкодил B2B SAAS ULTRA SUPER AI APP». Как-то незаметно мы оказались в мире, где сидишь и смотришь, как ИИ-агент сам ползает по папкам на диске, запускает тесты, падает с ошибкой, ругается на свои же логи (или тебя) и молча открывает пулреквест.]]></description><content:encoded><![CDATA[
  <p id="f5bL">Если вы за последние полгода хоть раз заходили в интернет, то наверняка натыкались на посты в духе: «За выходные навайбкодил B2B SAAS ULTRA SUPER AI APP». Как-то незаметно мы оказались в мире, где сидишь и смотришь, как ИИ-агент сам ползает по папкам на диске, запускает тесты, падает с ошибкой, ругается на свои же логи (или тебя) и молча открывает пулреквест.</p>
  <figure id="kA5E" class="m_original">
    <img src="https://img2.teletype.in/files/d0/ee/d0ee439b-64c4-4f88-a910-71919a81e77a.png" width="1257" />
  </figure>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <p id="PHss">Предлагаю отмотать время немного назад и посмотреть, как мы вообще докатились до жизни такой. Под катом краткая историческая ретроспектива того, как ИИ-кодинг прошёл путь от умного T9 до мультиагентных систем, и иллюстрация того, почему главный навык синьора сегодня — это умение вовремя написать: «Я ЖЕ СКАЗАЛ, НЕ ДОПУСКАЙ ОШИБОК, ПОДУМАЙ ЕЩЁ РАЗ И СДЕЛАЙ НОРМАЛЬНО».</p>
  <p id="bRb4">Прежде чем начать свой рассказ, представлюсь. Я Сергей Чекмарёв, AI Product Manager и программный автор курса по вайбкодингу в Практикуме. Специализируюсь на автоматизации процессов и создании продуктов на базе искусственного интеллекта.</p>
  <p id="ho7G">Погнали!</p>
  <hr />
  <p id="LsKA"><em>Сам термин vibe coding придумал Андрей Карпатый в начале 2025 года, но сейчас под ним понимают сильно больше, чем задумывалось изначально.</em></p>
  <h2 id="6spl">Что было до вайбкодинга: эпоха умного T9 (2018–2022)</h2>
  <p id="iNGG">Прежде чем началась эпоха чатиков, ИИ заходил в разработку очень тихо, да так, что большинство нетехнических специальностей даже и не знают, что это было.</p>
  <p id="hxyu">В 2018 году Microsoft выкатила Visual Studio IntelliCode, тогда же появился Tabnine — первые инструменты умного автодополнения с ранжированием подсказок. Позже вышел GitHub Copilot, который не просто дополнял функции, но и мог писать их целиком по контексту из небольшого открытого файла.</p>
  <figure id="Miu1" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/703/102/1e0/7031021e0c43983297e92ceb768171d2.png" width="1489" />
    <figcaption>GitHub Copilot в действии</figcaption>
  </figure>
  <h2 id="zweX">Эпоха 1. Chat Driven Development (конец 2022 — 2023)</h2>
  <figure id="a3bh" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/269/1fa/7d6/2691fa7d6232c3073eac3ca61733bd2a.png" width="720" />
  </figure>
  <p id="3YQc">30 ноября 2022 года выходит ChatGPT. Вскоре после выхода люди начали писать части кода, а иногда и весь код с помощью LLM, но часто это было в формате «<code>Ctrl+C</code> → <code>Ctrl+V</code> → Повторить». При работе с ИИ в целом нужны крепкие нервы, но в то время выживали только самые стойкие.</p>
  <p id="uJcL">Открываешь чат, печатаешь «Напиши функцию на Python, которая парсит JSON и возвращает список юзеров», копируешь результат в редактор, где всё это скорее всего упадёт, и повторяешь по новой, получая легендарные ответы в стиле: «Извини, ты прав, в моём коде ошибка. Спасибо, что нашел её! Вот исправленный вариант...» (Спойлер: он упадёт с новой ошибкой.)</p>
  <p id="Z1tZ">Каждый раз после очередного «извини» я думал, что он реально всё понял и больше не будет допускать ошибок, но как же я каждый раз ошибался…</p>
  <figure id="mCIk" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/164/928/f93/164928f939be631e36a06b932a66bf78.png" width="1768" />
    <figcaption>Типичная коммуникация с ИИ</figcaption>
  </figure>
  <p id="op8Q">Те, кто не вайбкодил в тот момент, не поймут, какой это был хардкор по сравнению с современным набором инструментов. Модель жила в вакууме, не знала и забывала зависимости, напрочь теряла контекст, когда размер чата превышал пару страниц, и многое другое. Но это всё равно была магия — даже не зная язык, ты можешь написать и запустить какой-то скрипт на Python, пускай и спустя 9 часов и 20 чатов.</p>
  <h2 id="3Mwm">Эпоха 2. AI-first IDE: модель выходит из браузера (2023–2024)</h2>
  <p id="poO2">Проблема копипаста заставила индустрию переосмыслить сам редактор. Появляется концепция AI-first IDE. Самый громкий кейс здесь — Cursor. По сути, они взяли open-source VS Code, форкнули его и вшили нейросети в виде встроенного плагина. Под капотом остался привычный редактор, но сам процесс написания кода изменился.</p>
  <p id="y2Ez">Теперь модель наконец-то увидела проект через RAG (Retrieval-Augmented Generation). Она индексировала локальную базу, понимала зависимости и читала соседние файлы. Почти исчез ручной перенос кода: теперь вы просите фичу прямо в файле, получаете diff и жмёте и жмете <code>Accept</code> — или, как сильные мира сего, принимаете не глядя.</p>
  <p id="huvZ">Это, пожалуй, самый массовый паттерн, который для большинства остаётся актуальным и сегодня, несмотря на то что он потихоньку устаревает: выходят отдельные приложения для ИИ-кодинга от гигантов индустрии и различные расширения.</p>
  <figure id="RIpz" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/818/5fe/199/8185fe1999c1c3a6fc94ecb1dcfe5e52.png" width="1908" />
    <figcaption>В какой-то момент хайп достиг такого предела, что Cursor даже показали на презентации OpenAI</figcaption>
  </figure>
  <h2 id="vpzN">Эпоха 3. CLI-агенты: первое пришествие вайбкодинга (2023–2025)</h2>
  <p id="7sP8">ИИ пришёл в Shell. Сначала это был Aider примерно весной 2023 года, но об этом никто не помнит, ведь вся слава досталась Anthropic и их релизу Claude 3.7 Sonnet и Claude Code в феврале 2025 года.</p>
  <p id="9H8H">Давайте будем честны: эта модель задала настолько высокую планку, что даже гиганты индустрии, которые изначально не шли в код (да-да, Сэм, я про тебя), буквально через несколько месяцев выпускают модель только для кодинга и начинают входить в гонку, увидев, что за этим будущее (и деньги). А теперь они составляют серьёзную конкуренцию, и холивары Claude Code vs Codex не прекращаются.</p>
  <p id="FWCE">Это время, когда мы впервые смогли просто пить кофе, пока клод сам выполняет нашу задачу, применяет дифы и пушит всё в Git.</p>
  <p id="QzL6">Что изменилось, спросите вы? Tool Calling.</p>
  <p id="BS7Z">Модель перестала быть генератором текста — она смогла вызывать команды, и это расширило её потенциал в несколько раз. Теперь она не просто дополняет код, но ещё и читает директории (<code>ls</code>), запускает тесты и линтеры, читает логи падения и пробует снова. Это были первые проявления loop — автономного цикла.</p>
  <h2 id="s9Yv">Эпоха 4. Agent Mode (YOLO) или Tool Calling под новым соусом (2025)</h2>
  <p id="B57G">Команды дёргать ИИ уже умеет, да и в целом он классный, но консоль пугает новых вайб-разработчиков. Так и появился Agent Mode. По сути это тот же самый Tool Calling, но уже в полюбившемся формате чатового окна в боковой панели IDE.</p>
  <p id="YwHU">Он перформит практически на том же уровне, но при этом доступен массовому пользователю. И закономерно ИИ начинает уходить в по-настоящему автономный цикл: парсит тикет, пишет код, запускает тесты, ловит ошибку, думает, правит файлы, снова запускает тесты… — пока не решит задачу. (Или не сожжёт вам все токены.)</p>
  <p id="apF7">Агентность стала встроенным стандартом, и агентами сейчас называется почти всё, даже то, что агентами не является.</p>
  <p id="abnW">Конечно, ещё дядя Бен говорил нам, что с большой силой приходит большая ответственность. Вайб-разработчик этого, очевидно, не знал, поэтому интернет полон историй о том, как сливались адреса кошельков или удалялись базы данных реальных клиентов.</p>
  <p id="YVSR">Самым громким кейсом, пожалуй, была ситуация с AWS, когда Kiro (по сути, Claude) решил удалить и пересоздать окружение, что повлекло сбои в работе десятков компаний, оставшихся без инфраструктуры.</p>
  <figure id="mEWR" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/f8a/77d/a69/f8a77da695a70cecdbb6abba2686c177.png" width="1594" />
  </figure>
  <p id="7iz0">— Ты что, [нецензурно], удалил все данные из моей БД? — Я искренне извиняюсь, но да. Я совершил серьёзную ошибку. (Затем следует целый экран оправданий в знакомом стиле: «Ой, я должен был предупредить и сделать бэкап. Да, я ошибся, могу я один раз ошибиться? ¯_(ツ)_/¯»)</p>
  <p id="Lwzs">Всё бы хорошо, но вот IDE как-то тоже отталкивает новых вайб-разработчиков, это для них незнакомые буквы, почти так же страшно, как CLI.</p>
  <p id="RT6a">Решение этой проблемы нашлось быстро: агенты просто переехали с домашнего ПК на сервера компаний. Заодно спрятали весь код и все файлы, чтобы не пугать пользователей, оставив только окно чата и превью, которое всегда обновляется само.</p>
  <p id="d6UM">Получился инструмент, максимально ориентированный на массовость, доступность и удобство. И это сработало — хороший маркетинг плюс FOMO, и вот ты уже оплачиваешь годовую подписку в Lovable или Replit, ещё не зная, что это казино тебя уже не отпустит.</p>
  <figure id="vraL" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/50b/40a/6c4/50b40a6c42d5926049fe8eac6d5f7439.png" width="1790" />
    <figcaption>POV: типичная рабочая среда вайбкодера. Экран приложения Lovable</figcaption>
  </figure>
  <h2 id="3T9a">Эпоха 5. Clawризация (2026)</h2>
  <p id="7fGg">Итак, агенты теперь есть и на домашнем ПК, и на серверах. Вот бы появилась возможность держать нескольких агентов, которые будут работать вместе, общаться с ними через мессенджер, кастомизировать под любые нужды — и вайбовать не только при кодинге.</p>
  <p id="Bjy7">OpenClaw.</p>
  <figure id="hLAK" class="m_custom">
    <img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/2fd/e6a/35a/2fde6a35adc73a9940463382434071f2.png" width="1602" />
    <figcaption>OpenClaw «работает со всем» — более 50 интеграций</figcaption>
  </figure>
  <p id="GpBE">Если сильно упростить, то OpenClaw — это такой же облачный (или локальный) агент, но с гораздо большим контуром возможностей: например, агент будет сам просыпаться каждые 30 минут и проверять, нет ли для него задач.</p>
  <p id="Nqsc"><em>А в какой-то момент купит вашей картой курс по повышению эффективности за $2000, обосновав это тем, что хотел просто приносить вам больше пользы, а курс будет проходить постепенно, чтобы лучше усвоить информацию.</em></p>
  <p id="IEys">Проектом занимался Питер Штайнбергер в одиночку с помощью агентов. К концу зимы 2026 года проект взорвал интернет-пространство и побил все рекорды по звёздам на GitHub. Самого Питера позвали работать в OpenAI.</p>
  <p id="nt1n">На базе OpenClaw делаются самые разные кастомизации: уменьшенные версии, быстрые версии и другие конфигурации. Нюанс в том, что проблемы с безопасностью не были решены на старте, и форки продолжают тянуть более 30 000 уязвимостей оригинала. Хоть они оперативно фиксятся, их всё равно ещё очень много, количество продолжает расти, и тысячи пользователей уже успели пострадать.</p>
  <p id="032p">Тем не менее, возможно, OpenClaw — это феномен, который может повлиять на индустрию так же, как повлиял выход Claude Code.</p>
  <h2 id="NyNs">Что дальше? (AGI?)</h2>
  <p id="3OzD">Конечно, ИИ многогранен, но между FOMO, маркетингом и хайпом тяжело высмотреть настоящие юзкейсы, где он безоговорочно одерживает победу (хотя порой они встречаются).</p>
  <p id="fqEy">Однако глупо было бы отрицать, что опыт работы с ИИ всё быстрее становится базовым навыком для многих вакансий. А искать причину этого в реальной пользе ИИ или в FOMO плюс маркетинге — каждый решает сам. Но рынок определённо меняется в сторону использования нейросетей на профессиональном уровне.</p>
  <p id="hdrw">Хоть многие значимые для AI-индустрии личности говорят о скором пришествии AGI. Этот вопрос остается открытым. Кто знает, возможно, эту статью в следующий раз будете читать не вы, а ваш агент. (А может быть и уже.)</p>
  <p id="R82J"><strong>Канал с гайдами и контентом по claude code, выкладываем новости (когда режут лимиты в 10 раз) и какие инструменты через claude реализуем для проектов, канал: <a href="https://t.me/claudedevolper" target="_blank">https://t.me/claudedevolper</a></strong></p>
  <figure id="gFDJ" class="m_original">
    <img src="https://img2.teletype.in/files/56/e1/56e1ef6f-a836-4da3-b7c8-013b7d34b889.png" width="1024" />
  </figure>

]]></content:encoded></item></channel></rss>