QA Яндекса за 15 000 ₽ в месяц отдала ИИ-агенту чек-листы и автотесты
Команда тестирования Главной страницы Яндекса вынесла ИИ-агента из IDE в CI. Смена статуса в Трекере запускает цепочку субагентов: они читают тикет и PR, пишут чек-лист или Playwright-автотест и возвращают результат в задачу. Вместо одного огромного промпта у них узкие шаги с JSON между ними, поэтому при сбое перезапускается только упавший. Бюджет на пятерых был 15 000 ₽ в месяц, и к четвёртому месяцу его выбрали целиком.
AI-обработка оригинала Habr AI; редакция Hamidun News
У любой QA-команды есть рутина, которую никто не любит: открыть тикет, разобраться, что изменилось в PR, набросать чек-лист, написать кейсы, автоматизировать, а потом чинить тесты, упавшие на CI. Команда тестирования Главной страницы Яндекса решила отдать значительную часть этой работы агенту и рассказала на Habr, как он устроен, сколько стоит и где команда набила шишки.
От плагина в IDE к событию в Трекере
Первая версия жила в Roo Code для VS Code. Инженер открывал редактор, выбирал режим, писал «составь чек-лист по задаче», и агент сам шёл в Трекер, читал PR и выдавал результат. Работало, но пользовались им только те, кто и так умеет автоматизировать. Остальным пришлось бы поднимать окружение и проверять доступы, то есть менять одну ручную работу на другую.
Поэтому агента перенесли в события. Когда задача переходит в статус «Можно тестировать», Трекер шлёт HTTP POST в CI, тот поднимает контейнер с агентом, и тестировщик открывает тикет уже с готовым чек-листом. Есть и второй триггер: кодовое слово в комментарии, удобное для повторной генерации после обновления PR. С автотестами схема похожая, но агент сначала просит подтверждение инженера и только потом собирает PR. Это защита от спама.
Субагенты вместо одного большого промпта
Первый вариант был монолитом: один агент читал задачу, разбирал PR, составлял и публиковал чек-лист. Он был медленным и дорогим, потому что весь контекст ехал в каждом запросе. Теперь процесс разбит на шаги: сбор контекста, анализ PR, генерация и публикация. Между ними передаётся валидируемый JSON.
Выигрыш прикладной. Каждый шаг видит только нужный ему контекст, логи у каждого свои, а при падении перезапускается один джоб, не весь пайплайн.
С автотестами трёх шагов не хватило. Из соображений безопасности агенту запретили ходить в живой браузер, поэтому локаторы в первом черновике получались неточными. Решение: прогнать тест в CI (это уже не LLM), дать агенту отчёт, пусть сам поправит локаторы, и прогнать ещё раз. Получилось шесть шагов, два из которых обычные запуски без модели.
Отдельная мелочь, которая многих раздражала: PR создаёт робот, а не инженер. Чтобы человек мог сразу дотюнить локаторы, логин автора протаскивают через всю цепочку, и в конце робот добавляет его в соавторы и владельцы ветки.
Скилы и банк памяти
Знания агента лежат в двух местах, оба в репозитории. Скил — это инструкция по шагам, как для джуна: что делать, какие шаблоны брать, как проверять результат. Например, тест с моками кладём в integration, без моков в e2e, а проверки, которых нет в кейсе, не выдумываем. У команды отдельные скилы на сбор контекста, анализ PR, выгрузку кейсов из TMS, написание теста, ревью кода и починку падений. Чем уже скил, тем дешевле и стабильнее шаг.
Банк памяти отвечает на вопрос «как у нас принято»: набор Markdown-файлов со стеком, фикстурами, антипаттернами и типовыми падениями. Правило простое: записываем только то, что пригодится в следующих задачах, без деталей одного тикета и без дублей. Банк тоже стоит токенов, так что короткий актуальный гайд лучше двухсот страниц устаревших документов.
Сколько это стоило
На команду из пяти человек выделили 15 000 ₽ в месяц. Расходы по месяцам: 11 600, 9 300, 14 600 и 15 000 ₽. К четвёртому месяцу лимит выбрали полностью. Из-за этого стоимость каждого шага команда считает отдельно: логирует входные и выходные токены и смотрит, куда уходят деньги. Окончание раздела с выводами в исходном тексте обрывается, поэтому подробности про объём запросов остаются за кадром.
Что забрать себе
Схема не привязана к Яндексу и модели. Для повторения нужен CI с внешним триггером, робот-аккаунт и агентский рантайм. Роль Трекера может сыграть Jira Automation или Linear Webhooks, роль тасклета GitHub Actions или GitLab CI, а оркестрацией займётся Claude Code, OpenAI Agents SDK или LangGraph.
Пять правил из статьи: фиксировать ревизию кода, хранить инструкции рядом с кодом, делить работу на шаги с JSON, считать токены по шагам и жёстко ограничивать доступы агента.
Ограничения тоже честные. Агент даёт черновик, а не готовое решение. Сложные сценарии, пограничные случаи и бизнес-логику проверяет человек, он же решает, мёржить ли PR. Без доступа к реальной странице тесты проходят лишний цикл самолечения. Это недорогой способ подготовить базу для тестировщика, но не замена тестировщика.
- 12 нояб. 2026 г.Дженсен Хуанг ушёл с поста CEO Nvidia: компания потеряла $1,4 трлн за две недели
- 12 нояб. 2026 г.Профсоюз Окленда добился переобучения вместо увольнений из-за ИИ: за забастовку 94,1%
- 12 нояб. 2026 г.Восемь стран и OpenAI с Anthropic обещают «рубильник» для ИИ-моделей, но без сроков и штрафов
- 12 нояб. 2026 г.OpenAI и ModRetro выпустили консоль за $200 для игр, написанных в Codex
Вопросы и ответы по материалу
Что известно по теме: от плагина в IDE к событию в Трекере?
Первая версия жила в Roo Code для VS Code. Инженер открывал редактор, выбирал режим, писал «составь чек-лист по задаче», и агент сам шёл в Трекер, читал PR и выдавал результат. Работало, но пользовались им только те, кто и так умеет автоматизировать. Остальным пришлось бы поднимать окружение и проверять доступы, то есть менять одну ручную работу на другую. Поэтому агента перенесли в события.
Что известно по теме: субагенты вместо одного большого промпта?
Первый вариант был монолитом: один агент читал задачу, разбирал PR, составлял и публиковал чек-лист. Он был медленным и дорогим, потому что весь контекст ехал в каждом запросе. Теперь процесс разбит на шаги: сбор контекста, анализ PR, генерация и публикация. Между ними передаётся валидируемый JSON. Выигрыш прикладной. Каждый шаг видит только нужный ему контекст, логи у каждого свои, а при падении перезапускается один джоб, не весь пайплайн. С автотестами трёх шагов не хватило.
Что известно по теме: скилы и банк памяти?
Знания агента лежат в двух местах, оба в репозитории. Скил — это инструкция по шагам, как для джуна: что делать, какие шаблоны брать, как проверять результат. Например, тест с моками кладём в integration, без моков в e2e, а проверки, которых нет в кейсе, не выдумываем. У команды отдельные скилы на сбор контекста, анализ PR, выгрузку кейсов из TMS, написание теста, ревью кода и починку падений. Чем уже скил, тем дешевле и стабильнее шаг.
Соберите рабочего ИИ-агента или сервис своими руками без ручного кода
В Академии Жемала Хамидуна (academy.hamidun.com) открыт бесплатный 72-часовой тест-драйв: интерактивные скетч-уроки по Claude Code и Cursor, живой Tech Radar и готовые шаблоны агентов.
Главное из мира ИИ — раз в неделю
7 ключевых событий недели, отобранных вручную. Без шума, репостов и пресс-релизов.
Готово! Проверьте почту — мы отправили подтверждение.