{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Андрей Крисанов",
    "_rss_description": "Блог Андрея Крисанова о разработке в эпоху ИИ: прикладной ИИ, инфраструктура ИИ, ИИ-нативные продукты и управление инженерными командами.",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/agenticeng.ru\/",
    "feed_url": "https:\/\/agenticeng.ru\/json\/",
    "icon": "https:\/\/agenticeng.ru\/pictures\/userpic\/userpic@2x.jpg?1775503436",
    "authors": [
        {
            "name": "Андрей Крисанов",
            "url": "https:\/\/agenticeng.ru\/",
            "avatar": "https:\/\/agenticeng.ru\/pictures\/userpic\/userpic@2x.jpg?1775503436"
        }
    ],
    "items": [
        {
            "id": "10",
            "url": "https:\/\/agenticeng.ru\/all\/ci-cd-v-epohu-agentov\/",
            "title": "CI\/CD в эпоху агентов",
            "content_html": "<p>С интересом наблюдаю, как инженерные процессы и инструменты, к которым мы привыкли за десятки лет, переосмысливаются под ИИ-нативный подход. Например, классический CI\/CD, построенный вокруг pull request-ов и человеческого темпа разработки, плохо подходит для мира, где код всё чаще пишут агенты.<\/p>\n<p>До работы с агентами цикл разработки выглядел так: человек медленно пишет код → оформляет PR → CI прогоняет линтеры, тесты и сборку → другой человек ревьюит изменения → изменения попадают в основную ветку.<\/p>\n<p>В такой парадигме долгое время работы CI-пайплайна часто было ожидаемым и терпимым, потому что самая большая задержка всё равно была на стороне команды: разработчик писал код часами или днями, ревью тоже ждали часами или днями, PR жил долго.<\/p>\n<p>С агентами всё меняется: код генерируется быстро и относительно дёшево → задач становится больше → ветки с изменениями плодятся быстрее → PR становится слишком медленной и неудобной единицей работы → валидацию изменений нужно двигать внутрь агентного цикла.<\/p>\n<p>Но CI\/CD вряд ли не исчезает. Скорее он перестанет быть контуром вокруг которого происходит работа с изменениями и превратится в низкоуровневый слой для быстрой проверки изменений внутри агентного цикла. Почему так?<\/p>\n<p>CI\/CD в текущем виде был спроектирован для мира, где человек — главный агент.<\/p>\n<p>Человек держит в голове некое намерение: например, «хочу добавить кнопку оформления заказа». Потом проходит цикл: намерение → код → pull request → CI → код-ревью → merge. На каждом этапе может быть откат назад:<\/p>\n<ul>\n<li>PR не по принятому формату → назад к коду<\/li>\n<li>тесты упали → назад к коду<\/li>\n<li>ревьюер попросил изменить API → назад к коду<\/li>\n<li>merge queue показывает, что ветка отстаёт от main → назад к коду<\/li>\n<\/ul>\n<p>Это уже агентный цикл, просто раньше агентом был человек. И в этом цикле роль harness-а (упряжки для агента) тоже выполнял человек: разработчик сам фокусировался на цели, писал код, запускал проверки, обрабатывал обратную связь от коллег и инструментов и доводил изменение до слияния.<\/p>\n<p>Когда код пишет не человек, а агент, меняются масштабы:<\/p>\n<ul>\n<li>много агентов могут параллельно выполнять работу<\/li>\n<li>появляется много короткоживущих веток<\/li>\n<li>растёт количество PR<\/li>\n<li>частые исправления становятся нормальной частью агентного цикла<\/li>\n<\/ul>\n<p>Проблема не только в том, что CI в такой парадигме будет медленным. Проблема в том, что сам процесс слияния изменений становится бутылочным горлышком.<\/p>\n<p>Если сравнить git с журналом изменений, то все сгенерированные агентами изменения должны попасть в него последовательно. Это начинает напоминать проблему из мира баз данных: транзакции, блокировки, порядок применения изменений (пресловутый serializable). Когда людей мало и они работают медленно, окно для слияния изменений может быть долгим по времени. Когда агенты генерируют пачки изменений параллельно, основная ветка постоянно обновляется, и шанс, что рабочая ветка быстро устареет, резко возрастает.<\/p>\n<p>Сейчас, когда кодинговые агенты всё больше становятся привычным инструментом для команд, цикл разработки трансформируется примерно в такую схему:<\/p>\n<pre class=\"e2-text-code\"><code class=\"plain\">Цель + план\n      ↓\nАгентный цикл:\n  генерация кода\n  внутренняя валидация: сборка, тесты, линтеры\n  внешняя валидация: человек или специализированные агенты\n  исправления по обратной связи\n      ↓\nMerge Queue\n      ↓\nРепозиторий<\/code><\/pre><p>Кажется, следующим шагом будет сокращение участия человека внутри быстрого агентного цикла. То есть разработчику уже не придётся смотреть каждую итерацию изменений и каждый PR. Для этого появятся специализированные агенты. Можно легко представить такую агентную команду:<\/p>\n<ul>\n<li>основной кодинговый агент<\/li>\n<li>агент-ревьюер по безопасности<\/li>\n<li>агент-ревьюер по производительности<\/li>\n<li>агент-тестировщик<\/li>\n<li>агент-архитектор<\/li>\n<li>агент, оценивающий функциональную корректность реализации по требованиям<\/li>\n<\/ul>\n<p>Человеку уже не нужно будет читать каждый diff, как это было раньше. Он будет смотреть на более высокий уровень:<\/p>\n<ul>\n<li>была такая цель<\/li>\n<li>вот что получилось<\/li>\n<li>вот summary изменений<\/li>\n<li>вот результат security-проверок<\/li>\n<li>вот риски<\/li>\n<li>вот демонстрация работы<\/li>\n<\/ul>\n<p>И только после этого принимать решение: approve, reject или «нужны правки».<\/p>\n<p>Также ставлю на то, что изменится сама концепция merge queue. Обычной очереди на слияние изменений будет недостаточно. Если много агентов параллельно меняют один и тот же код, системе придётся не просто запускать тесты перед merge, а группировать изменения, разрешать конфликты, проверять совместимость и выстраивать безопасный порядок применения.<\/p>\n<p>Изменятся и окружения для агентных проверок. Они станут более stateful: с заранее подготовленными зависимостями, прогретыми кэшами, локальным контекстом и сохранённым состоянием между итерациями. Иначе агентный цикл будет слишком медленным.<\/p>\n<p>В итоге мы получим не просто CI job после git push, а что-то ближе к continuous compute: вычислительную среду, которая постоянно работает вокруг intent-а, кода, валидации и изменений-кандидатов на слияние с основной веткой.<\/p>\n",
            "summary": "ИИ-агенты меняют CI\/CD: код генерируется быстрее, PR становятся узким местом, а валидация переезжает внутрь агентного цикла. Разбираю, почему классический software delivery придётся переосмыслить.",
            "date_published": "2026-05-14T00:52:40+03:00",
            "date_modified": "2026-05-14T00:52:38+03:00",
            "tags": [
                "AI",
                "CI\/CD",
                "SDLC"
            ],
            "_date_published_rfc2822": "Thu, 14 May 2026 00:52:40 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "10",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "9",
            "url": "https:\/\/agenticeng.ru\/all\/future-of-mcp\/",
            "title": "Будущее MCP",
            "content_html": "<p>Посмотрел доклад David Soria Parra из Anthropic про будущее MCP.<\/p>\n<p>В 2026 году узким местом для AI-агентов становятся уже не модели, а связность между разными компонентами ИИ-системы: как агент подключается к инструментам, данным, приложениям, какие права доступа у него есть, как вокруг всего этого строить UX и бизнес-сценарии.<\/p>\n<p>Основые тезисы из доклада Дэвида с моими дополнениями 👇🏻<\/p>\n<h3>MCP — не серебряная пуля, а важный компонент агентной системы<\/h3>\n<p>Лучшие агенты будут использовать не только MCP, но и:<\/p>\n<ul>\n<li>CLI<\/li>\n<li><a href=\"https:\/\/agentskills.io\/home\">skills<\/a><\/li>\n<li>браузер и другие приложения<\/li>\n<li>API сервисов<\/li>\n<li>платформенные решения<\/li>\n<\/ul>\n<p>Основная мысль в том, чтобы дать агенту правильный интерфейс доступа к нужному действию. Иногда проще предоставить CLI, а в других ситуациях сделать полноценный MCP-сервер с авторизацией, аудитом и контролем доступа. Где-то же понадобится полноценный gateway между агентами и корпоративными системами.<\/p>\n<h3>REST API → MCP 1:1 — плохая идея<\/h3>\n<p>Не стоит брать REST API и превращать его в MCP-сервер просто обернув суще API-методы.<\/p>\n<p>REST API обычно спроектирован для разработчиков и CRUD-операций:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">GET \/users\nPOST \/orders\nPATCH \/documents\/:id<\/code><\/pre><p>А агенту чаще нужен не набор низкоуровневых методов, а осмысленное действие:<\/p>\n<ul>\n<li>создай отчёт за период<\/li>\n<li>найди договор и проверь риски<\/li>\n<li>подготовь черновик ответа клиенту<\/li>\n<li>сравнить версии документа<\/li>\n<\/ul>\n<p>Хороший MCP-интерфейс должен быть нативным для агента, а не оберткой поверх когда-то разработанного API. Это важный сдвиг в мышлении при проектировании агентных систем.<\/p>\n<h3>Информация о тулах должна быть доступна модели по требованию<\/h3>\n<p>Одна из проблем, с которой мы сейчас сталкиваемся на практике — многие интеграции через MCP выгружают агенту огромный список tools, который затем утекает в контекстное окно модели. Как следствие:<\/p>\n<ul>\n<li>модель хуже выбирает нужный инструмент<\/li>\n<li>растёт стоимость запроса<\/li>\n<li>растёт latency ответа<\/li>\n<li>повышается риск неправильного tool call<\/li>\n<li>контекст забивается описаниями инструментов вместо полезной информации<\/li>\n<\/ul>\n<p>Anthropic предлагает реализовывать progressive discovery: агент должен постепенно получать нужные инструменты, а не весь список доступных tools сразу.<\/p>\n<p>Для разработчика это означает, что нам нужно думать не только о том, какие tools предоставлять модели, но и как модель будет их находить.<\/p>\n<h3>Skills и MCP не конкуренты<\/h3>\n<p>Skills хорошо подходят для локальных, процедурных, CLI-based сценариев. Например, «возьми ffmpeg, обработай видео, положи результат сюда». MCP лучше подходит там, где нужны:<\/p>\n<ul>\n<li>авторизация<\/li>\n<li>RBAC<\/li>\n<li>аудит действий и observability<\/li>\n<li>управление доступом к инструментам<\/li>\n<li>стабильный контракт между агентом и внешней системой<\/li>\n<\/ul>\n<p>Общая рекомендация сейчас: используйте самый простой механизм, который решает вашу задачу. MCP-сервер не нужен для каждого shell-скрипта. Но если инструмент живёт в enterprise-среде и работает к чувствительными данными, то Skills — менее надёжное решение.<\/p>\n<h3>Enterprise-агентам нужен gateway<\/h3>\n<p>Для компаний главный вывод такой: нельзя позволять каждой команде поднимать свой зоопарк MCP-серверов и гейтвеев.<\/p>\n<p>Нужен общий слой, который решает следующие задачи:<\/p>\n<ul>\n<li>единая точка подключения инструментов<\/li>\n<li>авторизация и политики доступа<\/li>\n<li>аудит вызова tools<\/li>\n<li>лимиты<\/li>\n<li>логирование, observability<\/li>\n<li>контроль того, какие агенты к чему имеют доступ<\/li>\n<li>контроль жизненного цикла инструментов<\/li>\n<\/ul>\n<p>Иначе через год разработки получится не AI-платформа, а распределённая коллекция небезопасных интеграций, которые никто не понимает и не контролирует.<\/p>\n<p>В докладе это формулируется как движение к общему connectivity\/gateway-слою, т. е. не каждый агент сам знает обо всех системах, а платформа даёт ему управляемый доступ.<\/p>\n<h3>Идентичность агентов<\/h3>\n<p>Сейчас большинство систем всё ещё реализуют такую цепочку действий: пользователь авторизовался → пользователь нажал кнопку → система выполнила действие.<\/p>\n<p>Но с агентами появляется новая проблема — агент действует от имени пользователя, но не всегда синхронно, не всегда сразу, его действия могут выполняться продолжительное время, иногда через несколько систем.<\/p>\n<p>Возникают вопросы:<\/p>\n<ul>\n<li>кто именно вызвал tool<\/li>\n<li>от чьего имени<\/li>\n<li>с какими правами<\/li>\n<li>можно ли агенту продолжить задачу без подтверждения пользователя<\/li>\n<li>как отозвать доступ<\/li>\n<li>как показать аудитору, что произошло<\/li>\n<\/ul>\n<p>Это отдельный пласт инженерной работы. И он пока решён хуже, чем хотелось бы.<\/p>\n<h3>TLDR;<\/h3>\n<p>MCP — это не просто новый стандарт для тулов. Это сигнал, что разработчикам придётся учиться проектировать интерфейсы для агентов, а не только API для людей и frontend-приложений.<\/p>\n<p>Практические советы:<\/p>\n<ul>\n<li><b>Не делайте глупую 1-1 обертку REST-to-MCP<\/b>. Сначала подумайте, какое действие реально должен выполнить агент.<\/li>\n<\/ul>\n<ul>\n<li><b>Проектируйте тулы как атомарные действия, которые можно соединять в более крупную задачу<\/b>. Не createUser, updateUser, deleteUser, а «подготовить пользователя к онбордингу», «проверить доступы к X», «собрать контекст по клиенту».<\/li>\n<\/ul>\n<ul>\n<li><b>Ограничивайте набор тулов для задачи<\/b>. Чем больше инструментов вы добавите в контекст, тем хуже может работать агент (а точнее модель).<\/li>\n<\/ul>\n<ul>\n<li><b>Думайте о discovery инструментов по запросу<\/b>. Агенту не обязательно знать обо всех тулах сразу. Лучше сделать каталог тулов и progressive discovery.<\/li>\n<\/ul>\n<ul>\n<li><b>Сразу закладывайте аудит и работу с правами доступа<\/b>. Особенно если инструмент может читать документы или менять данные.<\/li>\n<\/ul>\n<ul>\n<li><b>Используйте CLI там, где этого достаточно<\/b>. Не стоит реализовывать MCP ради MCP.<\/li>\n<\/ul>\n<ul>\n<li><b>Для enterprise-сценариев нужен gateway<\/b>. Без него MCP быстро превращается в shadow IT для агентов.<\/li>\n<\/ul>\n<div class=\"e2-text-video\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/v3Fr2JR47KA?enablejsapi=1\" allow=\"autoplay\" frameborder=\"0\" allowfullscreen><\/iframe>\n<div class=\"e2-text-caption\">The Future of MCP — David Soria Parra, Anthropic<\/div>\n<\/div>\n",
            "summary": "Посмотрел доклад David Soria Parra из Anthropic про будущее MCP.\r\n\r\nВ 2026 году узким местом для AI-агентов становятся уже не столько модели, а связность между разными компонентами системы: как агент подключается к инструментам, данным, приложениям, какие права доступа у него есть, как вокруг всего этого строить UX и бизнес-сценарии.\r\n\r\nОсновые тезисы из доклада Дэвида с моими дополнениями.",
            "date_published": "2026-05-05T14:09:07+03:00",
            "date_modified": "2026-05-05T15:20:07+03:00",
            "tags": [
                "MCP",
                "агенты",
                "инфраструктура ИИ"
            ],
            "image": "https:\/\/agenticeng.ru\/pictures\/remote\/youtube-v3Fr2JR47KA-cover.jpg",
            "_date_published_rfc2822": "Tue, 05 May 2026 14:09:07 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "9",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": [
                    "https:\/\/agenticeng.ru\/pictures\/remote\/youtube-v3Fr2JR47KA-cover.jpg"
                ]
            }
        },
        {
            "id": "8",
            "url": "https:\/\/agenticeng.ru\/all\/genai-cost\/",
            "title": "Сколько на самом деле стоит GenAI в продакшене",
            "content_html": "<p>Когда обсуждают стоимость внедрения генеративного ИИ, разговор часто сводится к цене за токен или цене за арендуемый GPU. Это удобно — одно число. Но в реальном продакшене такая оценка почти всегда обманчива.<\/p>\n<p>Стоимость GenAI-системы — это не только сколько стоит вызвать модель. Это инфраструктура, эксплуатация, безопасность, наблюдаемость, разработка, интеграции, поддержка пользователей и постоянные изменения вокруг моделей. Именно поэтому «мы поднимем open-source модель сами, будет дешевле» часто оказывается правдой только на первом слайде презентации.<\/p>\n<h3>Из чего складывается стоимость GenAI в продакшене<\/h3>\n<p>Типовая GenAI-система состоит не из одной модели. Даже если бизнес-задача звучит просто, например, сделать Q&A чат-бота по документам, внутри быстро появляются:<\/p>\n<ul>\n<li>backend-сервис (API)<\/li>\n<li>модель или несколько моделей<\/li>\n<li>RAG: индексация документов, эмбеддинги, векторный поиск<\/li>\n<li>хранилище документов<\/li>\n<li>авторизация и права доступа<\/li>\n<li>модерация и guardrails<\/li>\n<li>трассировка запросов<\/li>\n<li>мониторинг качества<\/li>\n<li>логирование ошибок<\/li>\n<li>рейт-лимиты, очереди и ретраи<\/li>\n<li>CI\/CD<\/li>\n<li>регламент обновления моделей<\/li>\n<li>поддержка пользователей и команд, которые интегрируются с этим сервисом<\/li>\n<\/ul>\n<p>Пока всё работает в демо-режиме, это кажется избыточным. Но как только сервис начинает использоваться внутри компании, особенно в задачах с персональными данными, документами, юридическими текстами, финансами или внутренними знаниями, нужна архитектура и практики.<\/p>\n<h3>Цена за токен — заметный, но не единственный расход<\/h3>\n<p>Если использовать <a href=\"https:\/\/aistudio.yandex.ru\/docs\/ru\/\">Yandex Cloud AI Studio<\/a>, стоимость зависит от режима работы модели и количества токенов: входных, исходящих, кешированных и токенов инструментов. Это уже важная деталь: один и тот же пользовательский сценарий может стоить по-разному в зависимости от длины промпта, длины ответа, истории диалога и использования tools.<\/p>\n<p>Например, в синхронном режиме YandexGPT Pro 5.1 стоит 0,8 ₽ за 1000 входящих токенов и 0,8 ₽ за 1000 исходящих токенов с НДС. YandexGPT Lite стоит 0,2 ₽ за 1000 входящих и 0,2 ₽ за 1000 исходящих токенов. DeepSeek V3.2 в AI Studio стоит 0,5 ₽ за 1000 входящих токенов и 0,8 ₽ за 1000 исходящих токенов.<\/p>\n<p>Допустим, у нас есть внутренний ассистент, который обрабатывает 1 млн запросов в месяц. Средний запрос:<\/p>\n<ul>\n<li>1000 входящих токенов<\/li>\n<li>500 исходящих токенов<\/li>\n<\/ul>\n<p>Тогда примерная стоимость генерации:<\/p>\n<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" class=\"e2-text-table\">\n<tr>\n<td><b>Модель<\/b><\/td>\n<td><b>Расчёт на 1 запрос<\/b><\/td>\n<td><b>1 млн запросов в месяц<\/b><\/td>\n<\/tr>\n<tr>\n<td>YandexGPT Lite<\/td>\n<td>0,2 ₽ + 0,1 ₽<\/td>\n<td>300 000 ₽<\/td>\n<\/tr>\n<tr>\n<td>YandexGPT Pro 5.1<\/td>\n<td>0,8 ₽ + 0,4 ₽<\/td>\n<td>1 200 000 ₽<\/td>\n<\/tr>\n<tr>\n<td>DeepSeek V3.2<\/td>\n<td>0,5 ₽ + 0,4 ₽<\/td>\n<td>900 000 ₽<\/td>\n<\/tr>\n<\/table>\n<p>На этом этапе возникает соблазм сказать, что Lite дешевле Pro в 4 раза и нужно брать эту модель. Но если Lite отвечает хуже, чаще требует повторных запросов, хуже следует инструкциям, хуже работает с длинным контекстом или создаёт больше ошибок для пользователей, реальная стоимость может быть выше. Дешёвый токен может привести к дорогому бизнес-процессу.<\/p>\n<h3>Покупка GPU vs оплата за токены<\/h3>\n<p>Другой популярный подход — поднять open-source модель самостоятельно на своей инфраструктуре. Например, через vLLM, TGI или другой serving-стек.<\/p>\n<p>В Yandex DataSphere конфигурация g2.8 с 8 GPU A100 стоит 4 401,83808 ₽ в час. При расчёте 720 часов в месяц это примерно:<\/p>\n<pre class=\"e2-text-code\"><code class=\"txt\">4 401,84 ₽ × 720 ≈ 3 169 323 ₽ \/ месяц<\/code><\/pre><p>Конфигурация g2.1 с 1 GPU A100 стоит <i>550,22976 ₽ в час<\/i>, а g1.1 с 1 GPU V100 — <i>341,52192 ₽ в час<\/i>. Цены DataSphere для региона Россия указаны с НДС.<\/p>\n<p>На первый взгляд, 8×A100 за ~3,17 млн ₽\/месяц может выглядеть конкурентно, если у вас большой объём трафика. Но это только compute. Дальше нужно добавить:<\/p>\n<ul>\n<li>Kubernetes или другой runtime<\/li>\n<li>хранилище для моделей и образов (container registry)<\/li>\n<li>observability стек (наблюдаемость)<\/li>\n<li>сетевую инфраструктуру<\/li>\n<li>инженерную команду<\/li>\n<\/ul>\n<p>а также процессы вокруг:<\/p>\n<ul>\n<li>обновления моделей<\/li>\n<li>тестирования качества<\/li>\n<li>безопасности<\/li>\n<li>работу с деградациями и инцидентами<\/li>\n<\/ul>\n<p>DataSphere отдельно тарифицирует хранение моделей, Docker-образов, дисков, датасетов и других артефактов; например, хранение модели внутри DataSphere сверх бесплатных лимитов стоит 13,08 ₽ за 1 ГБ в месяц.<\/p>\n<p>То есть self-hosting может быть дешевле на большом масштабе. Но он редко бывает дешевле сам по себе. Он становится выгодным, когда у компании уже есть сильная инфраструктурная команда, понятный объём нагрузки и реальная потребность контролировать serving, latency, безопасность и модельный стек.<\/p>\n<h3>Главный скрытый расход — ФОТ<\/h3>\n<p>В России стоимость инженерной команды ниже, чем в США, но она всё равно быстро становится одной из основных категорий расходов. По данным Dream Job, средняя зарплата ML Engineer в России в 2026 году — 185 000 ₽ на руки, типичный диапазон — 140 000—230 000 ₽, а в Москве среднее значение указано как 260 000 ₽. Другой обзор по рынку ML-инженеров указывает ориентиры по грейдам: Middle — около 160 000—200 000 ₽, Senior — 280 000—350 000 ₽, Lead — 360 000—450 000 ₽ в зависимости от региона и формата работы.<\/p>\n<p>Но для продакшен GenAI вам обычно нужен не один ML Engineer. Минимальный состав может выглядеть так:<\/p>\n<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" class=\"e2-text-table\">\n<tr>\n<td><b>Роль<\/b><\/td>\n<td><b>Зачем нужна<\/b><\/td>\n<\/tr>\n<tr>\n<td>Backend Engineer<\/td>\n<td>API, бизнес-логика, интеграции<\/td>\n<\/tr>\n<tr>\n<td>ML \/ LLM Engineer<\/td>\n<td>выбор моделей, промпты, evals, качество<\/td>\n<\/tr>\n<tr>\n<td>Platform \/ DevOps Engineer<\/td>\n<td>Kubernetes, GPU, CI\/CD, observability<\/td>\n<\/tr>\n<tr>\n<td>Security \/ InfoSec<\/td>\n<td>доступы, данные, аудит, compliance<\/td>\n<\/tr>\n<tr>\n<td>Product \/ Analyst<\/td>\n<td>сценарии, метрики, приоритизация<\/td>\n<\/tr>\n<\/table>\n<p>Даже маленькая команда из 2—3 сильных инженеров может стоить компании заметно больше, чем API-вызовы модели. Особенно если считать не только зарплату на руки, а полную стоимость сотрудника: налоги, оборудование, менеджмент, найм, отпуска, простои, коммуникации и стоимость ошибок.<\/p>\n<p>Именно здесь часто ломается наивная математика: <i>API стоит 1 млн ₽ в месяц, а self-hosting на GPU — 3 млн ₽. Значит API дешевле<\/i>.<\/p>\n<p>Или наоборот: <i>GPU стоит 3 млн ₽ в месяц, а API при нашем объёме стоит 5 млн ₽. Значит self-hosting дешевле<\/i>.<\/p>\n<p>Обе оценки неполные. Нужно считать людей, эксплуатацию, риски и качество.<\/p>\n<h3>Доступ к LLM через API vs self-hosting<\/h3>\n<p>Упрощённо выбор выглядит так.<\/p>\n<h3>Доступ к LLM через API<\/h3>\n<p>Выгоднее если вы только запускаете продукт, нагрузка непредсказуема, команда маленькая, а главная задача — быстро проверить гипотезу. В этом случае YandexGPT, DeepSeek или другие модели через API позволяют не строить всю инфраструктуру с нуля.<\/p>\n<p>Плюсы:<\/p>\n<ul>\n<li>быстрый старт<\/li>\n<li>не нужно управлять GPU<\/li>\n<li>проще масштабироваться на раннем этапе<\/li>\n<li>меньше эксплуатационной нагрузки<\/li>\n<li>проще считать стоимость на уровне токенов<\/li>\n<\/ul>\n<p>Минусы:<\/p>\n<ul>\n<li>зависимость от провайдера<\/li>\n<li>ограничения по моделям и настройкам<\/li>\n<li>меньше контроля над latency (временем отклика)<\/li>\n<li>сложнее оптимизировать serving под свой сценарии и тип нагрузки<\/li>\n<li>возможные ограничения по данным и комплаенсу<\/li>\n<\/ul>\n<h3>Self-hosting моделей<\/h3>\n<p>Выгоднее если у вас большой и стабильный объём запросов, есть инфраструктурная команда, нужны строгие требования по данным, есть желание контролировать модели, serving-стек, batching, маршрутизацию и стоимость на большом масштабе.<\/p>\n<p>Плюсы:<\/p>\n<ul>\n<li>больше контроля<\/li>\n<li>можно оптимизировать serving<\/li>\n<li>можно выбирать open-source модели<\/li>\n<li>можно строить собственный роутинг и механизмы кэширования<\/li>\n<li>потенциально ниже стоимость за токен на большом объёме<\/li>\n<\/ul>\n<p>Минусы:<\/p>\n<ul>\n<li>высокая сложность<\/li>\n<li>нужен опыт с GPU-инфраструктурой<\/li>\n<li>нужны SRE-практики<\/li>\n<li>нужно самим решать инциденты<\/li>\n<li>нужно самим обновлять модели<\/li>\n<li>нужно самим строить evals и release gates<\/li>\n<\/ul>\n<h3>Скрытые расходы, о которых забывают<\/h3>\n<h3>Наблюдаемость<\/h3>\n<p>Для обычного backend-сервиса достаточно latency, error rate, throughput и логов. Для LLM-системы этого мало.<\/p>\n<p>Нужно понимать:<\/p>\n<ul>\n<li>сколько токенов потребляется<\/li>\n<li>какие промпты дают плохие ответы<\/li>\n<li>где растёт latency<\/li>\n<li>где модель галлюцинирует<\/li>\n<li>какие пользователи повторяют запросы<\/li>\n<li>какие инструменты вызываются<\/li>\n<li>какие документы попадают в контекст<\/li>\n<li>как меняется качество после обновления модели<\/li>\n<\/ul>\n<p>Без этого система становится чёрным ящиком: деньги тратятся, пользователи жалуются, а команда не понимает, где проблема.<\/p>\n<h3>Обновление моделей<\/h3>\n<p>Модель — это не статичная библиотека. Провайдеры обновляют версии, меняют поведение, добавляют новые режимы, снимают старые версии с поддержки.<\/p>\n<p>Каждое обновление требует:<\/p>\n<ul>\n<li>регрессионного тестования<\/li>\n<li>сравнения качества<\/li>\n<li>проверки промптов<\/li>\n<li>проверки latency<\/li>\n<li>проверки стоимости<\/li>\n<li>коммуникации с пользователями<\/li>\n<li>rollback-плана<\/li>\n<\/ul>\n<p>Если этого нет, можно обновить модель и сломать upstream-команды.<\/p>\n<h3>Безопасность<\/h3>\n<p>В корпоративном контексте вопрос не только в том, где дешевле токен.<\/p>\n<p>Нужно отвечать на вопросы:<\/p>\n<ul>\n<li>какие данные уходят в модель<\/li>\n<li>логируются ли запросы<\/li>\n<li>где хранятся трейсы запросов<\/li>\n<li>можно ли отправлять персональные данные<\/li>\n<li>как работает маскирование PII и других данных<\/li>\n<li>кто имеет доступ к истории запросов<\/li>\n<li>можно ли использовать внешние tools<\/li>\n<li>как аудитить действия агента<\/li>\n<\/ul>\n<p>Это не бесплатная часть системы. Её кто-то должен проектировать, внедрять и поддерживать.<\/p>\n<h3>Качество<\/h3>\n<p>Стоимость плохого ответа может быть выше стоимости токенов.<\/p>\n<p>Например, если модель помогает бухгалтерии, юристам, поддержке или инженерам, ошибка может привести к:<\/p>\n<ul>\n<li>потере времени<\/li>\n<li>неправильному решению<\/li>\n<li>ручной перепроверке<\/li>\n<li>недоверию пользователей<\/li>\n<li>отказу от продукта<\/li>\n<li>инциденту безопасности<\/li>\n<\/ul>\n<p>Поэтому более дорогая модель иногда дешевле в реальности, если она снижает количество ошибок и повторных запросов.<\/p>\n<h3>Как посчитать полную стоимость GenAI-системы<\/h3>\n<p>Хорошая формула выглядит не так:<\/p>\n<pre class=\"e2-text-code\"><code class=\"txt\">TCO = цена токенов<\/code><\/pre><p>где TCO — это Total Cost of Ownership, т. е. <b>полная стоимость владения<\/b>.<\/p>\n<p>А примерно так:<\/p>\n<pre class=\"e2-text-code\"><code class=\"txt\">TCO =\n  стоимость inference\n+ стоимость инфраструктуры\n+ стоимость хранения\n+ стоимость сети\n+ стоимость разработки\n+ стоимость эксплуатации\n+ стоимость observability\n+ стоимость безопасности\n+ стоимость обновления моделей\n+ стоимость ошибок<\/code><\/pre><p>Для managed API основная переменная часть — токены. Для self-hosting — GPU, инфраструктура и команда.<\/p>\n<p>Практический подход:<\/p>\n<ol start=\"1\">\n<li>Посчитать ожидаемый объём запросов.<\/li>\n<li>Разделить входные и исходящие токены.<\/li>\n<li>Посчитать стоимость для 2—3 моделей.<\/li>\n<li>Добавить RAG: embeddings, хранилища, поиск.<\/li>\n<li>Добавить observability и логи.<\/li>\n<li>Оценить стоимость команды.<\/li>\n<li>Оценить стоимость поддержки и инцидентов.<\/li>\n<li>Сравнить API и self-hosting не на демо, а на горизонте 6—12 месяцев.<\/li>\n<\/ol>\n<h3>Пример: внутренний AI-ассистент<\/h3>\n<p>Допустим, компания хочет сделать внутреннего ассистента для сотрудников.<\/p>\n<p>Параметры:<\/p>\n<ul>\n<li>1 000 активных пользователей<\/li>\n<li>30 запросов на пользователя в месяц<\/li>\n<li>30 000 запросов в месяц<\/li>\n<li>1 500 входящих токенов<\/li>\n<li>700 исходящих токенов<\/li>\n<\/ul>\n<p>Для YandexGPT Pro 5.1:<\/p>\n<pre class=\"e2-text-code\"><code class=\"txt\">Вход: 1500 \/ 1000 × 0,8 ₽ = 1,2 ₽\nВыход: 700 \/ 1000 × 0,8 ₽ = 0,56 ₽\nИтого: 1,76 ₽ за запрос\n\n30 000 × 1,76 ₽ = 52 800 ₽ \/ месяц<\/code><\/pre><p>Для YandexGPT Lite:<\/p>\n<pre class=\"e2-text-code\"><code class=\"txt\">Вход: 1500 \/ 1000 × 0,2 ₽ = 0,3 ₽\nВыход: 700 \/ 1000 × 0,2 ₽ = 0,14 ₽\nИтого: 0,44 ₽ за запрос\n\n30 000 × 0,44 ₽ = 13 200 ₽ \/ месяц<\/code><\/pre><p>На таком масштабе стоимость токенов почти наверняка не будет главным расходом. Главным расходом будет разработка, интеграция, поддержка, безопасность и внедрение в бизнес-процессы.<\/p>\n<p>Но если это уже не 30 000, а 3—10 млн запросов в месяц, математика меняется. Тогда имеет смысл отдельно смотреть на кэширование, роутинг запросов, batch-режимы, более дешёвые модели для простых задач и self-hosting.<\/p>\n<h3>Вывод<\/h3>\n<p>Главная ошибка при оценке GenAI систем — сравнивать только цену токена или часа за аренду GPU.<\/p>\n<p>Для прототипа это нормально. Для продакшена — нет.<\/p>\n<p>Managed API может быть дороже на единицу inference, но дешевле по TCO (полной стоимости владения), если экономит месяцы разработки и эксплуатации. Self-hosted open-source модель может быть дешевле на большом объёме, но только если у вас есть команда, инфраструктура и зрелые процессы.<\/p>\n<p>Правильный вопрос звучит не так:<\/p>\n<blockquote>\n<p>Какая модель дешевле?<\/p>\n<\/blockquote>\n<p>А так:<\/p>\n<blockquote>\n<p>Какая архитектура даёт нужное качество, время отклика, безопасность и управляемость при минимальной полной стоимости владения?<\/p>\n<\/blockquote>\n<p>И почти всегда ответ зависит не от одной цены в прайсе, а от масштаба, команды и зрелости компании.<\/p>\n",
            "summary": "Разбираемся, сколько на самом деле стоит GenAI-система в продакшене: токены, GPU, Yandex Cloud, self-hosted модели, зарплаты инженеров, эксплуатация и полная стоимость владения.",
            "date_published": "2026-04-27T21:55:46+03:00",
            "date_modified": "2026-04-27T22:01:07+03:00",
            "tags": [
                "LLM",
                "ИИ",
                "инфраструктура ИИ",
                "стоимость"
            ],
            "_date_published_rfc2822": "Mon, 27 Apr 2026 21:55:46 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "8",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "7",
            "url": "https:\/\/agenticeng.ru\/all\/go-and-coding-agents\/",
            "title": "Go как язык программирования в эпоху агентов",
            "content_html": "<p>На дворе 2026 год, и любые рассуждения о разработке с AI-агентами рискуют устареть быстрее, чем мы допишем README.md в нашем репозитории. Тем не менее некоторые вещи уже начинают выглядеть не как временный шум, а как новые инженерные практики.<\/p>\n<p>Одна из таких вещей — изменение отношения к языкам программирования.<\/p>\n<p>Раньше мы часто выбирали язык программирования по тому, насколько на нём удобно писать человеку. Насколько он выразителен или позволяет быстро накидать прототип. Насколько приятно читать написанный код через полгода, когда ты уже забыл, зачем вообще всё это делал.<\/p>\n<p>AI меняет картину. Если заметную часть кода пишет не человек, а агент, то удобство языка остаётся важным для нас, разработчиков, но перестаёт быть единственным критерием при выборе языка программирования для нового проекта. Внезапно оказывается, что язык должен быть удобен ещё и для агентного цикла: сгенерировал код, собрал проект, прогнал тесты, получил ошибку, исправил, повторил.<\/p>\n<p>И в таком цикле Go выглядит неожиданно хорошо.<\/p>\n<h3>Так ли критичны недостатки Go<\/h3>\n<p>Go всегда был немного странным языком в глазах людей, привыкших к более выразительным альтернативам. Он простой, иногда слишком. Многословный и без особой магии, с ручной обработкой ошибок. С кодом, который часто выглядит так, будто его писал очень дисциплинированный, но слегка потерявший интерес к программированию разработчик.<\/p>\n<p>Примерно так:<\/p>\n<pre class=\"e2-text-code\"><code class=\"go\">data, err := os.ReadFile(path)\nif err != nil {\n    return fmt.Errorf(&quot;read config %q: %w&quot;, path, err)\n}<\/code><\/pre><p>Никакой поэзии — зато всё понятно.<\/p>\n<p>Такая многословность иногда раздражает. Писать однотипную обработку ошибок руками — удовольствие так себе. Генерировать обвязку, тесты, HTTP-ручки, конфигурацию, простые клиенты к API — тоже не самая вдохновляющая работа.<\/p>\n<p>Но AI-агентам для написания кода всё равно. Они не страдают от кучи похожего кода, не закатывают глаза на очередной <i>if err != nil<\/i>. Они просто генерируют код, а потом получают от компилятора и тестов обратную связь.<\/p>\n<p>В этот момент недостатки Go перестают быть такими уж серьёзными. А старые достоинства — простота, явность, единообразие — становятся гораздо важнее.<\/p>\n<h3>AI любит предсказуемость<\/h3>\n<p>Чем больше в языке и экосистеме вариантов сделать одно и то же, тем выше шанс, что модель выберет не тот вариант.<\/p>\n<p>В экосистемах вроде JavaScript или Python это видно особенно хорошо. Исторически там накопилось много способов собрать проект, управлять зависимостями, писать асинхронный код, строить веб-приложения, описывать конфигурацию и раскладывать файлы по директориям.<\/p>\n<p>Для опытного разработчика это пространство выбора. Для модели — пространство для галлюцинаций.<\/p>\n<p>Go устроен иначе. В нём меньше вариантов, меньше магии, меньше стилистической свободы. Типичный Go-код часто похож на другой Go-код, и это не баг, а фича. У языка есть стандартный форматтер, понятный набор инструментов, быстрый компилятор, простая модель сборки и достаточно единообразная культура написания кода. Это делает Go удобным не только для людей, но и для AI-агентов.<\/p>\n<p>Модель лучше работает там, где меньше случайности. Go как раз про это.<\/p>\n<h3>Хороший агентный цикл важнее синтаксиса<\/h3>\n<p>В разработке c AI-ассистентами и агентами не надо верить, что модель сразу напишет идеальный код — это завышенное ожидание. Скорее всего, не напишет. Или напишет почти правильно, что иногда даже хуже.<\/p>\n<p>Нормальный процесс выглядит иначе: <i>план → генерация кода → сборка → тесты → исправления → ревью<\/i>.<\/p>\n<p>И чем проще этот цикл, тем лучше:<\/p>\n<pre class=\"e2-text-code\"><code class=\"shell\">gofmt -w .\ngo test .\/...\ngo vet .\/...\ngolangci-lint run<\/code><\/pre><p>Ошибки компилятора обычно конкретные. Тесты запускаются просто. Форматирование единое. Линтеры можно встроить в CI. Сборка проекта не требует сложного окружения и скриптов. Во многих случаях на выходе получается один бинарник, который легко положить в контейнер и отправить в продакшен.<\/p>\n<p>Такие скучные вещи делают AI-разработку безопаснее. Промптами можно объяснить агенту многое, но не всё. А вот компилятор, тесты, линтеры, контракты API и CI-проверки не интерпретируют задачу творчески, как это могут делать модели. Они просто говорят: вот здесь сломано, чини.<\/p>\n<p>Такие инструменты гораздо надёжнее, чем надеяться на длинный промпт в духе «пожалуйста, пиши хороший код».<\/p>\n<h3>Go как язык для разработки с кодинговыми агентами<\/h3>\n<p>AI не отменяет инженерную дисциплину. Скорее наоборот: он делает её важнее.<\/p>\n<p>Когда в проекте появляются агенты, цена плохих тестов, слабого CI, неясных контрактов и хаотичной структуры кода растёт. Агент может быстро написать много кода. Но если среда не умеет этот код проверять, мы просто быстрее получим больше проблем и технического долга.<\/p>\n<p>В этом смысле Go интересен не сам по себе, а как пример правильной экосистемы для новой реальности:<\/p>\n<ul>\n<li>меньше магии, больше явности<\/li>\n<li>быстрый feedback loop<\/li>\n<li>хорошие инструменты из коробки<\/li>\n<li>простая сборка под любую архитектуру и ОС<\/li>\n<\/ul>\n<p>Не самый красивый язык, не самый выразительный и не самый модный. Но очень удобный для мира, где код всё чаще пишется в паре с машиной.<\/p>\n<p>И, возможно, именно поэтому Go сейчас выглядит сильнее, чем несколько лет назад. Не потому что он изменился, а потому что изменился контекст вокруг него.<\/p>\n",
            "summary": "Как AI-агенты меняют критерии выбора языков программирования и почему простота, предсказуемость и хороший набор инструментов снова делают Go сильным вариантом для разработки продакшен-систем.",
            "date_published": "2026-04-24T23:09:06+03:00",
            "date_modified": "2026-04-24T23:10:05+03:00",
            "tags": [
                "go",
                "golang",
                "агенты",
                "ИИ"
            ],
            "_date_published_rfc2822": "Fri, 24 Apr 2026 23:09:06 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "7",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "6",
            "url": "https:\/\/agenticeng.ru\/all\/dcgm-exporter-k3s-wsl2\/",
            "title": "Установка DCGM Exporter в локальный Kubernetes-кластер с NVIDIA GPU",
            "content_html": "<p>В <a href=\"\/all\/wsl-nvidia-gpu\/\">предыдущей заметке<\/a> я рассказывал как развернуть локальный кластер Kubernetes с доступом к GPU внутри WSL2 окружения. Для того, чтобы собирать детальные метрики с видеокарты, <i>nvidia-smi<\/i> не достаточно, т. к. GPU-Util показывает только активность в рамках короткого sampling-окна. Для анализа того, что происходит с GPU при обработке задач, нужен DCGM. <a href=\"https:\/\/github.com\/NVIDIA\/dcgm-exporter\">dcgm-exporter<\/a> — это утилита NVIDIA для сбора GPU-метрик через DCGM, которая отдает их через HTTP-метод \/<i>metrics<\/i> для Prometheus и похожих систем мониторинга.<\/p>\n<p>При попытке установить <i>dcgm-exporter<\/i> в k3s кластер Helm chart по умолчанию создает <i>ServiceMonitor<\/i>. Но если в кластере не установлен Prometheus оператор, процесс завершится с ошибкой:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">no matches for kind &quot;ServiceMonitor&quot; in version &quot;monitoring.coreos.com\/v1&quot;\nensure CRDs are installed first<\/code><\/pre><p>Это ожидаемое поведение. В dcgm-exporter chart по умолчанию <i>serviceMonitor.enabled: true<\/i>, а <i>ServiceMonitor<\/i> относится к CRD из экосистемы Prometheus Operator. В том же чарте <i>runtimeClassName<\/i> — пустой.<\/p>\n<p>Проверяем, что Kubernetes все еще видит GPU:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">kubectl get nodes -o json | jq &#039;.items[].status.allocatable&#039;<\/code><\/pre><p>На моей системе результат такой:<\/p>\n<pre class=\"e2-text-code\"><code class=\"json\">{\n  &quot;cpu&quot;: &quot;20&quot;,\n  &quot;ephemeral-storage&quot;: &quot;1027046117185&quot;,\n  &quot;hugepages-1Gi&quot;: &quot;0&quot;,\n  &quot;hugepages-2Mi&quot;: &quot;0&quot;,\n  &quot;memory&quot;: &quot;16233644Ki&quot;,\n  &quot;nvidia.com\/gpu&quot;: &quot;1&quot;,\n  &quot;pods&quot;: &quot;110&quot;\n}<\/code><\/pre><p>Далее добавляем репозиторий:<\/p>\n<pre class=\"e2-text-code\"><code class=\"shell\">helm repo add gpu-helm-charts https:\/\/nvidia.github.io\/dcgm-exporter\/helm-charts\nhelm repo update<\/code><\/pre><p>Отключаем создание <i>ServiceMonitor<\/i> и указываем Nvidia runtime class:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">helm install dcgm-exporter gpu-helm-charts\/dcgm-exporter \\\n  --set serviceMonitor.enabled=false \\\n  --set runtimeClassName=nvidia<\/code><\/pre><p>Проверяем, что pod с экспортером поднялся:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">kubectl get pods -l app.kubernetes.io\/name=dcgm-exporter -o wide\nkubectl logs -l app.kubernetes.io\/name=dcgm-exporter --tail=50<\/code><\/pre><p>Успешный запуск выглядит примерно так:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">Starting dcgm-exporter\nAttempting to initialize DCGM.\nInitialized DCGM Fields module.\nAttempting to initialize NVML library.\nNVML provider successfully initialized for Kubernetes MIG support\nDCGM successfully initialized!\nSuccessfully queried DCGM profiling metric groups\nHTTP server started - ready to serve metrics\nListening on [::]:9400<\/code><\/pre><p>Это означает, что:<\/p>\n<ul>\n<li>DCGM инициализировался<\/li>\n<li>NVML инициализировался<\/li>\n<li>exporter увидел GPU<\/li>\n<li>HTTP endpoint с метриками уже работает<\/li>\n<\/ul>\n<p>Если chart создал сервис, его можно посмотреть так:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">kubectl get svc<\/code><\/pre><p>Дальше пробрасываем порт:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">kubectl port-forward svc\/dcgm-exporter 9400:9400<\/code><\/pre><p>И проверяем:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">curl http:\/\/127.0.0.1:9400\/metrics | head -50\ncurl http:\/\/127.0.0.1:9400\/health<\/code><\/pre><p>Если все ок, \/<i>health<\/i> вернет успешный ответ, а \/<i>metrics<\/i> начнет отдавать метрики вида <i>DCGM_FI_*<\/i>.<\/p>\n",
            "summary": "Установка NVIDIA DCGM Exporter в локальный Kubernetes-кластер под WSL2: как обойти ошибку ServiceMonitor, настроить runtimeClassName и проверить сбор GPU-метрик.",
            "date_published": "2026-04-23T17:31:40+03:00",
            "date_modified": "2026-04-23T17:33:37+03:00",
            "tags": [
                "gpu",
                "kubernetes",
                "nvidia",
                "wsl2",
                "инфраструктура ИИ",
                "мониторинг"
            ],
            "_date_published_rfc2822": "Thu, 23 Apr 2026 17:31:40 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "6",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "5",
            "url": "https:\/\/agenticeng.ru\/all\/wsl-nvidia-gpu\/",
            "title": "Kubernetes с доступом к GPU внутри WSL2 на ноутбуке с RTX",
            "content_html": "<p>На днях мне понадобилась локальная среда c Kubernetes для запуска GPU задач и тестирования сервисов с ИИ. Мой рабочий компьютер — это ноутбук Lenovo Legion следующей конфигурации:<\/p>\n<ul>\n<li>Процессор 13th Gen Intel(R) Core(TM) i7-13650HX (2.60 GHz)<\/li>\n<li>Оперативная память 32 GB<\/li>\n<li>Видеокарта NVIDIA GeForce RTX 5070 Laptop GPU<\/li>\n<li>Диск 1 TB SSD<\/li>\n<\/ul>\n<p>Каждый раз арендовать облако и временно развертывать K8s-окружение, чтобы экономить на стоимости — не очень удобно. Поэтому я решил попробовать сконфигурировать локальную среду. Оказалось, что Kubernetes с доступом к GPU внутри WSL2 — это реально. Но есть несколько неочевидных нюансов, которые ломают рантайм.<\/p>\n<h3>TL;DR<\/h3>\n<p>Итоговый стек:<\/p>\n<ul>\n<li>Windows 11 + NVIDIA driver (с поддержкой WSL)<\/li>\n<li><a href=\"https:\/\/podman.io\/\">Podman<\/a><\/li>\n<li>WSL2 (Ubuntu 24.04)<\/li>\n<li>K3s (containerd)<\/li>\n<li>NVIDIA Container Toolkit<\/li>\n<li>NVIDIA device plugin<\/li>\n<li>фикс: <i>runtimeClassName: nvidia<\/i> для device plugin<\/li>\n<\/ul>\n<h3>Что хотелось получить<\/h3>\n<p>По сути — мини-кластер на ноутбуке, который работает по следующей схеме:<\/p>\n<p>Pod → Kubernetes → containerd → NVIDIA runtime → WSL GPU → Windows driver → RTX GPU<\/p>\n<p>С возможностью делать:<\/p>\n<ul>\n<li>локальный инференс<\/li>\n<li>эксперименты с AI-инфраструктурой и GPU<\/li>\n<\/ul>\n<h3>Шаг 1: Проверка GPU в WSL<\/h3>\n<p>Если после установки WSL2 у вас работает <a href=\"https:\/\/docs.nvidia.com\/deploy\/nvidia-smi\/index.html\">Nvidia System Management<\/a>:<\/p>\n<pre class=\"e2-text-code\"><code class=\"console\">nvidia-smi<\/code><\/pre><p>— двигаемся дальше.<\/p>\n<h3>Шаг 2: Linux-драйверы<\/h3>\n<p>WSL — особенная штука. Драйвер для GPU живет в Windows, Linux просто проксирует доступ через \/<i>usr\/lib\/wsl<\/i><\/p>\n<p>Если nvidia-smi не находится:<\/p>\n<pre class=\"e2-text-code\"><code class=\"shell\">echo &#039;export PATH=$PATH:\/usr\/lib\/wsl\/lib&#039; &gt;&gt; ~\/.bashrc\nsource ~\/.bashrc<\/code><\/pre><p>Чего не стоит делать:<\/p>\n<pre class=\"e2-text-code\"><code class=\"shell\">apt install nvidia-utils-*<\/code><\/pre><p>Такая установка системных пакетов внутри Linux  почти гарантированно все сломает.<\/p>\n<h3>Шаг 3: Проверка GPU в контейнерах<\/h3>\n<p>Перед установкой Kubernetes важно убедиться, что GPU работает в контейнерах.<\/p>\n<pre class=\"e2-text-code\"><code class=\"shell\">sudo nvidia-ctk cdi generate --output=\/etc\/cdi\/nvidia.yaml\npodman run --rm --device=nvidia.com\/gpu=all ubuntu nvidia-smi<\/code><\/pre><p>Если последняя команда выполняется успешно, то runtime настроен правильно.<\/p>\n<h3>Шаг 4: Установка K3s<\/h3>\n<pre class=\"e2-text-code\"><code class=\"shell\">curl -sfL https:\/\/get.k3s.io | sh -<\/code><\/pre><p>Настраиваем kubeconfig:<\/p>\n<pre class=\"e2-text-code\"><code class=\"shell\">mkdir -p ~\/.kube\nsudo cp \/etc\/rancher\/k3s\/k3s.yaml ~\/.kube\/config\nsudo chown $USER:$USER ~\/.kube\/config\nexport KUBECONFIG=~\/.kube\/config<\/code><\/pre><p>Проверяем доступна ли наша единственная Kubernetes нода:<\/p>\n<pre class=\"e2-text-code\"><code class=\"shell\">kubectl get nodes<\/code><\/pre><h3>Шаг 5: Подключение NVIDIA runtime<\/h3>\n<pre class=\"e2-text-code\"><code class=\"shell\">sudo nvidia-ctk runtime configure --runtime=containerd\nsudo systemctl restart k3s<\/code><\/pre><p>После перезапуска K3s убеждаемся, что поддержка GPU есть в конфиге:<\/p>\n<pre class=\"e2-text-code\"><code class=\"shell\">sudo grep nvidia \/var\/lib\/rancher\/k3s\/agent\/etc\/containerd\/config.toml<\/code><\/pre><h3>Шаг 6: Установка device plugin<\/h3>\n<pre class=\"e2-text-code\"><code class=\"shell\">kubectl apply -f \\\nhttps:\/\/raw.githubusercontent.com\/NVIDIA\/k8s-device-plugin\/v0.17.1\/deployments\/static\/nvidia-device-plugin.yml<\/code><\/pre><h3>NVIDIA runtime и device plugin<\/h3>\n<p>После выполнения шага 6 я столкнулся со следующей ситуацией вокруг device plugin — он запускается и не падает, но не видит GPU. В логах можно увидеть:<\/p>\n<pre class=\"e2-text-code\"><code class=\"shell\">No devices found. Waiting indefinitely.\nIncompatible strategy detected auto<\/code><\/pre><p>Причина такого поведения кроется в том, что device plugin запускается под обычным runtime (runc), а не под NVIDIA runtime. Т. е.:<\/p>\n<ul>\n<li>внутри pod’а нет CUDA \/ NVML<\/li>\n<li>GPU не может быть обнаружен<\/li>\n<li><i>nvidia.com\/gpu<\/i> не регистрируется<\/li>\n<\/ul>\n<p>Нужно заставить сам device plugin использовать NVIDIA runtime:<\/p>\n<pre class=\"e2-text-code\"><code class=\"shell\">kubectl patch daemonset nvidia-device-plugin-daemonset \\\n  -n kube-system \\\n  --type=&#039;merge&#039; \\\n  -p &#039;{&quot;spec&quot;:{&quot;template&quot;:{&quot;spec&quot;:{&quot;runtimeClassName&quot;:&quot;nvidia&quot;}}}}&#039;<\/code><\/pre><p>Перезапускаем pod:<\/p>\n<pre class=\"e2-text-code\"><code class=\"shell\">kubectl delete pod -n kube-system -l name=nvidia-device-plugin-ds<\/code><\/pre><p>и проверяем доступные GPU:<\/p>\n<pre class=\"e2-text-code\"><code class=\"shell\">kubectl get node -o jsonpath=&#039;{.status.capacity.nvidia\\.com\/gpu}&#039;<\/code><\/pre><p>Команда должна вернуть <i>1<\/i>.<\/p>\n<h3>Финальная проверка<\/h3>\n<p>Для тестирования работы GPU внутри WSL2 можно запустить следующий pod:<\/p>\n<pre class=\"e2-text-code\"><code class=\"shell\">cat &lt;&lt;&#039;EOF&#039; | kubectl apply -f -\napiVersion: v1\nkind: Pod\nmetadata:\n  name: cuda-smoke-test\nspec:\n  restartPolicy: Never\n  runtimeClassName: nvidia\n  containers:\n  - name: cuda\n    image: nvcr.io\/nvidia\/k8s\/cuda-sample:nbody\n    args: [&quot;nbody&quot;, &quot;-gpu&quot;, &quot;-benchmark&quot;]\n    resources:\n      limits:\n        nvidia.com\/gpu: 1\nEOF<\/code><\/pre><p>и проверить его состояние и логи:<\/p>\n<pre class=\"e2-text-code\"><code class=\"shell\">kubectl get pod cuda-smoke-test -w\nkubectl logs cuda-smoke-test<\/code><\/pre><h3>Что в итоге получилось<\/h3>\n<ul>\n<li>локальный Kubernetes на ноутбуке с Nvidia RTX 5070 (8GB vRAM)<\/li>\n<li>с возможность GPU scheduling<\/li>\n<li>тестирования задач с CUDA и LLM<\/li>\n<\/ul>\n<p>Такое окружение хорошо подходит для локального инференса LLM, экспериментов и обучения. Но его не стоит использовать для бенчмарков и более серьезных задач.<\/p>\n",
            "summary": "Локальный Kubernetes с GPU внутри WSL2: K3s + NVIDIA runtime + device plugin. Разбор проблемы с NVML\/device discovery и практическое решение через runtimeClass.",
            "date_published": "2026-04-22T11:57:42+03:00",
            "date_modified": "2026-04-22T12:03:41+03:00",
            "tags": [
                "gpu",
                "kubernetes",
                "nvidia",
                "windows",
                "wsl2",
                "инфраструктура ИИ"
            ],
            "_date_published_rfc2822": "Wed, 22 Apr 2026 11:57:42 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "5",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "4",
            "url": "https:\/\/agenticeng.ru\/all\/chto-ne-tak-s-vakansiyami-llm-engineer\/",
            "title": "Что не так с вакансиями LLM Engineer",
            "content_html": "<p>В 2026 году вакансий, связанных с ИИ, большими языковыми моделями и агентами, стало заметно больше и в России, и за ее пределами. Технологические компании, банки и даже обычный enterprise поняли, куда движется индустрия, и начали срочно внедрять ИИ в продукты и внутренние процессы.<\/p>\n<p>Если открыть hh.ru, LinkedIn или Telegram-каналы с вакансиями, легко увидеть набор ролей, которые постоянно пересекаются по описанию и требованиям:<\/p>\n<ul>\n<li>LLM Engineer<\/li>\n<li>ML Engineer<\/li>\n<li>AI Engineer<\/li>\n<li>AI Architect<\/li>\n<li>иногда еще что-то вроде «AI Automation Engineer»<\/li>\n<\/ul>\n<p>Особенно часто встречается вакансия LLM Engineer. И вот тут начинается путаница.<\/p>\n<p>Например, в одной вакансии Senior LLM Engineer требуют:<\/p>\n<ul>\n<li>2+ года коммерческой разработки на Python<\/li>\n<li>практический опыт с LangChain, LlamaIndex, prompt engineering, RAG<\/li>\n<li>подтвержденный опыт разработки и внедрения AI-решений<\/li>\n<\/ul>\n<p>Смотришь другую вакансию — уже Team Lead LLM Engineer. А там:<\/p>\n<ul>\n<li>создание и развитие RAG-систем, включая Agentic RAG<\/li>\n<li>observability для агентов<\/li>\n<li>сервисы обработки документов<\/li>\n<li>организация разметки данных<\/li>\n<li>дообучение мультимодальных моделей<\/li>\n<li>LLM-as-a-Judge и quality pipelines<\/li>\n<li>вывод моделей и сервисов в production<\/li>\n<\/ul>\n<p>Проблема в том, что под одним и тем же названием компании часто описывают <b>совершенно разные роли<\/b>.<\/p>\n<p>Где-то под LLM Engineer реально подразумевается человек, который работает с моделями как с объектом исследования и улучшения: оценка (evals), промптинг, fine-tuning, data curation, quality loops, иногда даже инференс и serving.<\/p>\n<p>А где-то под тем же названием ищут обычного сильного прикладного инженера, который должен собирать AI-функции в продукте: RAG, агенты, интеграции, пайплайны, наблюдаемость (observability), безопасность, продакшен-уровень.<\/p>\n<p>А иногда компания просто ищет единорога, который одновременно умеет:<\/p>\n<ul>\n<li>тренировать и дообучать модели<\/li>\n<li>строить RAG и агентные системы<\/li>\n<li>делать evals<\/li>\n<li>поднимать production-инфраструктуру<\/li>\n<li>выстраивать MLOps<\/li>\n<li>а в идеале еще и оптимизировать инференс<\/li>\n<\/ul>\n<p>Естественно, когда бэкенд- или фуллстэк-разработчик, который хочет перейти в прикладной ИИ (applied AI), читает такую вакансию, у него быстро появляется мысль: «я вообще не подхожу».<\/p>\n<p>И это часто ложное ощущение.<\/p>\n<h2>Где проходит граница<\/h2>\n<p>Проблема рынка в том, что названия ролей пока не устоялись. Но на практике полезно различать хотя бы два типа задач.<\/p>\n<h3>LLM Engineer<\/h3>\n<p>Это роль ближе к работе с самими моделями и качеством их поведения.<\/p>\n<p>Обычно сюда попадает:<\/p>\n<ul>\n<li>выбор и сравнение моделей<\/li>\n<li>построение evals (оценки)<\/li>\n<li>prompt engineering как системная дисциплина, а не просто подбор промптов<\/li>\n<li>эксперименты с quality loops<\/li>\n<li>работа с fine-tuning или post-training<\/li>\n<li>участие в проектировании AI-архитектуры на уровне поведения модели и ее качества<\/li>\n<\/ul>\n<p>Для такой роли действительно полезны:<\/p>\n<ul>\n<li>хороший кругозор в NLP и LLM<\/li>\n<li>понимание того, как устроены современные модели<\/li>\n<li>умение читать статьи, документацию и разбирать бенчмарки<\/li>\n<li>привычка много экспериментировать и валидировать гипотезы<\/li>\n<\/ul>\n<h3>AI Engineer \/ Applied AI Engineer<\/h3>\n<p>Это прикладная разработка: создание ценности для продукта с помощью уже существующих моделей и инструментов.<\/p>\n<p>Обычно сюда относится:<\/p>\n<ul>\n<li>AI-функции внутри продукта<\/li>\n<li>tool calling<\/li>\n<li>RAG<\/li>\n<li>агенты и их оркестрация<\/li>\n<li>интеграции с внешними системами<\/li>\n<li>оценка (eval) и наблюдаемость (observability) на уровне приложения<\/li>\n<li>надежный продакшен-код вокруг моделей<\/li>\n<\/ul>\n<p>Здесь важнее другое:<\/p>\n<ul>\n<li>умение строить сервисы<\/li>\n<li>понимать ограничения LLM и не ломать продукт об эти ограничения<\/li>\n<li>уметь отлаживать качество: проблема в данных, retrieval, prompt, tool use или модели<\/li>\n<li>уметь доводить систему до продакшена, а не просто собирать демо<\/li>\n<\/ul>\n<p>И вот здесь важный тезис: <b>во многих вакансиях под названием LLM Engineer на самом деле ищут именно AI Engineer<\/b>. То есть разработчика с сильной бэкенд- или фуллстэк-базой, который умеет применять LLM в реальных системах.<\/p>\n<h2>Как могут выглядеть вменяемые требования к AI Engineer<\/h2>\n<p>Например, так:<\/p>\n<ul>\n<li>уверенное владение Python или TypeScript<\/li>\n<li>умение писать чистый код, тесты и поддерживаемые сервисы<\/li>\n<li>базовое понимание LLM: токены, контекст, temperature, top-p, ограничения по длине контекста<\/li>\n<li>опыт промптинга моделей: шаблоны, few-shot, structured output, tool\/function calling<\/li>\n<li>опыт разработки RAG-систем и работы с векторными хранилищами<\/li>\n<li>опыт интеграции LLM в сервисы<\/li>\n<li>понимание Docker и контейнеризации<\/li>\n<li>навыки диагностики качества и производительности AI-сервисов<\/li>\n<li>базовое понимание безопасности и ограничений при работе с LLM<\/li>\n<\/ul>\n<p>Как видно, тут нет обязательного требования знать Transformer на уровне LLM-инженера\/исследователя, заниматься fine-tuning, строить MLOps-платформу или разбираться в CUDA.<\/p>\n<p>И это нормально.<\/p>\n<h2>Что с этим делать<\/h2>\n<p>У меня здесь два простых совета.<\/p>\n<h3>Рекрутерам и нанимающим менеджерам<\/h3>\n<p>Если вам нужен прикладной инженер, который будет встраивать ИИ в продукт, так и пишите.<\/p>\n<p>Не называйте вакансию LLM Engineer только потому, что это звучит модно. Чем точнее вы обозначите границы роли, тем лучше будет воронка:<\/p>\n<ul>\n<li>меньше нерелевантных откликов<\/li>\n<li>меньше самоотсечения хороших кандидатов<\/li>\n<li>выше шанс быстрее закрыть позицию<\/li>\n<\/ul>\n<p>Не стоит искать единорога там, где на самом деле нужен сильный инженер-разработчик с хорошим продуктовым и системным мышлением.<\/p>\n<h3>Разработчикам, которые хотят перейти в Applied AI<\/h3>\n<p>Не отбрасывайте вакансию только потому, что в ней в одну кучу свалены RAG, агенты, evals, дообучение, observability и MLOps.<\/p>\n<p>Очень часто это просто плохо написанное описание, а не реальный список того, чем вы будете заниматься каждый день.<\/p>\n<p>Поэтому:<\/p>\n<ul>\n<li>уточняйте на первом же созвоне, что реально входит в зону ответственности<\/li>\n<li>показывайте пет-проекты и рабочие кейсы<\/li>\n<li>рассказывайте не только про «я пробовал ChatGPT», а про реальные инженерные задачи<\/li>\n<li>не думайте, что без опыта в ML\/LLM вам закрыт путь в ИИ разработку<\/li>\n<\/ul>\n<p>Для входа в прикладной ИИ (applied AI) не обязательно быть исследователем. Во многих случаях достаточно хорошей инженерной базы и нормального понимания того, как LLM ведут себя в реальных системах.<\/p>\n<p>Рынок еще долго будет путаться в названиях. Но это не значит, что в него нельзя зайти.<\/p>\n",
            "summary": "В 2026 году вакансий, связанных с ИИ, большими языковыми моделями и агентами, стало заметно больше и в России, и за ее пределами",
            "date_published": "2026-04-10T10:27:43+03:00",
            "date_modified": "2026-04-22T11:58:12+03:00",
            "tags": [
                "AI",
                "LLM",
                "Карьера",
                "Найм"
            ],
            "_date_published_rfc2822": "Fri, 10 Apr 2026 10:27:43 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "4",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "2",
            "url": "https:\/\/agenticeng.ru\/all\/vnedrenie-ii-v-produktovyh-komandah\/",
            "title": "Внедрение ИИ в продуктовых командах",
            "content_html": "<p>За последние несколько месяцев мне довелось пообщаться с тремя компаниями по поводу роли руководителя кросс-функциональной команды или CTO в зрелом бизнесе. У каждой были свои ожидания от роли и свои цели на год. Но одна задача повторялась почти у всех: <b>внедрить ИИ в команды разработки и за счет этого повысить их эффективность<\/b>.<\/p>\n<p>Контекст обычно был примерно такой. Есть устоявшаяся команда, есть зрелый продукт, но, по мнению менеджмента, разработка идет слишком медленно. ИИ-инструменты и кодинговые агенты внутри команды либо почти не используются, либо используются точечно, каждым по-своему, без общего подхода. Иногда их уже пробовали, но результат оказался слабее ожиданий. А на рынке в это время появляются истории о том, как CEO или CPO за ночь собирают прототипы с помощью Codex или Claude Code.<\/p>\n<p>Выслушав такой запрос, я начинал задавать не вопросы про модели и инструменты, а совсем другие:<\/p>\n<ul>\n<li>как сейчас выглядит delivery-процесс от появления идеи до релиза<\/li>\n<li>как команда оформляет бизнес- и системные требования<\/li>\n<li>как работает с макетами и передает контекст между участниками<\/li>\n<li>как разработчики превращают требования сначала в архитектуру, а потом в код<\/li>\n<li>как команда контролирует качество на разных этапах<\/li>\n<\/ul>\n<p>На этом месте можно возразить: «А какое вообще отношение процессы разработки имеют к внедрению ИИ?» На мой взгляд — самое прямое. Чтобы объяснить почему, представим себе две команды.<\/p>\n<h2>Первая команда<\/h2>\n<p>У первой команды процессы более-менее выстроены. Люди умеют фиксировать мысли в текстовом и визуальном виде и передавать контекст друг другу. Типичная цепочка выглядит так:<\/p>\n<p>идея → бизнес-требования и макеты → системные требования → архитектура → задачи на разработку<\/p>\n<p>В такой команде разработчики не ждут, что аналитик, менеджер или кто-то еще полностью упакует контекст за них. До того как задача попадает в работу, команда уже думает про качество, риски, архитектуру и критерии приемки. В результате заранее появляются артефакты, которые сильно упрощают реализацию.<\/p>\n<p>Обычно такие команды неплохо умеют работать асинхронно. Люди пишут документы, оставляют после себя след в виде решений, описаний и ревью-комментариев. Это помогает не только людям, но и ИИ.<\/p>\n<h2>Вторая команда<\/h2>\n<p>Во второй команде тоже может быть формальный Scrumban, но по факту работа устроена иначе. Задачи сразу падают в таск-трекер. Требования, если и пишутся, то вперемешку: бизнес-логика, технические детали и допущения лежат в одном месте. Критерии приемки толком не продуманы. Архитектура рождается уже после того, как задачу взяли в работу. О рисках вспоминают позже. Фичи выкатываются быстро, а инциденты тушатся ситуативно.<\/p>\n<p>Снаружи может казаться, что команда движется быстро. Но внутри там обычно много недосказанности, устного контекста и зависимости от конкретных людей.<\/p>\n<h2>В какой команде ИИ взлетит быстрее<\/h2>\n<p>Теперь представим, что мы хотим внедрить ИИ в обе команды. Условный критерий успеха простой: команда должна делать больше тем же составом, без выгорания и без просадки по качеству.<\/p>\n<p>Допустим, разработчику выдали доступ к ChatGPT, Claude Code или другому ассистенту. Внутри такого инструмента — большая языковая модель. Она генерирует ответ, опираясь на тот контекст, который ей передали.<\/p>\n<p>И вот здесь возникает ключевой вопрос: <b>какая из двух команд быстрее получит реальную пользу от ИИ?<\/b><\/p>\n<p>Очевидно, первая.<\/p>\n<p>Почему? Потому что у нее уже есть зафиксированный контекст: требования, ограничения, архитектурные решения, стандарты разработки, критерии приемки. Разработчик может взять эти артефакты, явно обозначить границы задачи и начать работать с агентом почти сразу.<\/p>\n<p>Пример запроса может выглядеть так:<\/p>\n<blockquote>\n<p>Ты — опытный backend-разработчик. В приложенном документе описаны бизнес- и системные требования для фичи обработки банковских выписок. В RFC-123 зафиксирована текущая архитектура. Предложи вариант реализации нового метода API GET \/bank-statements\/. Также учти наши стандарты разработки: стиль кода, подход к REST API и требования к автотестам. Сначала предложи план реализации, затем список изменений по слоям системы и набор тест-кейсов.<\/p>\n<\/blockquote>\n<p>То есть разработчик из первой команды за несколько минут собрал хороший контекст и получил шанс на действительно полезный результат.<\/p>\n<p>Во второй команде тот же разработчик, скорее всего, останется один на один с агентом и начнет вручную восстанавливать недостающий контекст: что именно нужно сделать, какие ограничения есть у системы, какие договоренности приняты в команде, какие риски важны, как вообще здесь пишут код. Даже если в итоге что-то получится, путь будет долгим, а вероятность хорошего результата — заметно ниже.<\/p>\n<h2>Вывод<\/h2>\n<p>Из этого следует простой вывод: внедрение ИИ зависит не только от интереса к технологии, но и от зрелости производственных процессов.<\/p>\n<p><b>Context is king — и в общении с людьми, и в работе с ИИ.<\/b><\/p>\n<p>Если команда не привыкла фиксировать решения, оформлять требования и создавать артефакты, на которых потом строится работа, ей будет трудно быстро получить заметный эффект от ИИ. В такой ситуации лиды начинают выгорать: сверху ждут роста эффективности, снизу люди пробуют агентов, но результат не совпадает с ожиданиями.<\/p>\n<p>Поэтому, когда меня спрашивают про внедрение ИИ в продуктовой команде, мой ответ обычно один и тот же: <b>сначала выровняйте delivery-процесс, а потом уже системно внедряйте ИИ<\/b>.<\/p>\n<p>Современные модели и агенты действительно могут сильно ускорять работу. Но в хаотичных и плохо оформленных процессах они гораздо менее эффективны. ИИ хорошо усиливает уже существующую инженерную дисциплину. Если дисциплины нет, он редко становится волшебной таблеткой.<\/p>\n",
            "summary": "Почему внедрение ИИ в продуктовых командах часто не дает результата? Разбираемся, как delivery-процессы, требования, архитектура и рабочий контекст влияют на эффективность AI-инструментов и кодинговых агентов.",
            "date_published": "2026-04-08T18:40:09+03:00",
            "date_modified": "2026-04-08T18:40:06+03:00",
            "tags": [
                "delivery-процессы",
                "LLM",
                "ИИ",
                "управление разработкой"
            ],
            "_date_published_rfc2822": "Wed, 08 Apr 2026 18:40:09 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "2",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "1",
            "url": "https:\/\/agenticeng.ru\/all\/llm-and-foundation-models\/",
            "title": "Прикладной ИИ: LLM и Foundation модели",
            "content_html": "<p>В декабре 2025 года, еще работая в ПланФакте, я начал рассказывать командам о прикладном ИИ и о том, как его можно внедрять в продукты. Через несколько недель мое сотрудничество с компанией завершилось, и я решил полностью сосредоточиться на системах искусственного интеллекта.<\/p>\n<p>На новом месте быстро появилась та же задача: помогать разработчикам, пользователям GenAI-платформы и менеджменту лучше понимать большие языковые модели (LLM), их возможности и ограничения. В итоге это выросло в серию лекций, часть которых я могу опубликовать.<\/p>\n<p>Первая лекция — «LLM и foundation-модели». Это вводный материал для тех, кто хочет понять:<\/p>\n<ul>\n<li>что такое AI Engineering и чем он отличается от подхода «просто взять и использовать ChatGPT»<\/li>\n<li>что такое foundation-модели и как они работают<\/li>\n<li>как устроен Transformer без математики и лишней теории<\/li>\n<\/ul>\n<p>Лекция может быть полезна разработчикам без опыта в ML\/AI системах, QA, а также менеджерам, тимлидам и продактам, которым важно понимать основы, чтобы принимать взвешенные решения.<\/p>\n<p>Ниже — запись.<\/p>\n<div class=\"e2-text-video\">\n<video src=\"https:\/\/agenticeng.ru\/video\/LLM-i-Foundation-modeli.mp4#t=0.001\" width=\"1920\" height=\"1080\" controls alt=\"\" \/>\n\n<div class=\"e2-text-caption\">LLM и Foundation модели<\/div>\n<\/div>\n",
            "summary": "Запись лекции для разработчиков, QA и менеджеров: что такое AI Engineering, LLM, embeddings и как устроен Transformer без математики.",
            "date_published": "2026-04-06T23:20:41+03:00",
            "date_modified": "2026-04-06T23:20:22+03:00",
            "tags": [
                "LLM",
                "ИИ",
                "Лекция"
            ],
            "_date_published_rfc2822": "Mon, 06 Apr 2026 23:20:41 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "1",
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": []
            }
        }
    ],
    "_e2_version": 4199,
    "_e2_ua_string": "Aegea 11.5 (v4199)"
}