Эфир 18.11 · Поток 318 ноября в 19:00 МСК — бесплатный практический эфир по ИИ-агентам · Живой Поток 3 стартует 23.11Эфир 18 ноября →Поток 3 (23.11)
РелизКод / SDK · В работуHabr AI→ оригинал

QA Яндекса за 15 000 ₽ в месяц отдала ИИ-агенту чек-листы и автотесты

Команда тестирования Главной страницы Яндекса вынесла ИИ-агента из IDE в CI. Смена статуса в Трекере запускает цепочку субагентов: они читают тикет и PR, пишут чек-лист или Playwright-автотест и возвращают результат в задачу. Вместо одного огромного промпта у них узкие шаги с JSON между ними, поэтому при сбое перезапускается только упавший. Бюджет на пятерых был 15 000 ₽ в месяц, и к четвёртому месяцу его выбрали целиком.

AI-обработка оригинала Habr AI; редакция Hamidun News
QA Яндекса за 15 000 ₽ в месяц отдала ИИ-агенту чек-листы и автотесты
Источник: Habr AI. Коллаж: Hamidun News.
Слушать статью
Паспорт материала и цифры
ПараметрДанные
ПервоисточникHabr AI ↗
Главный редактор
Ключевой факт #1Скилы (SKILL.md) и банк памяти лежат в репозитории рядом с кодом
Автотестчерновик, прогон в CI, правка локаторов, повторный прогон
Ключевой факт #3Мёрж и финальная проверка остаются за инженером, а не за агентом

У любой 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. Без доступа к реальной странице тесты проходят лишний цикл самолечения. Это недорогой способ подготовить базу для тестировщика, но не замена тестировщика.

Сюжет

Вопросы и ответы по материалу

Что известно по теме: от плагина в IDE к событию в Трекере?

Первая версия жила в Roo Code для VS Code. Инженер открывал редактор, выбирал режим, писал «составь чек-лист по задаче», и агент сам шёл в Трекер, читал PR и выдавал результат. Работало, но пользовались им только те, кто и так умеет автоматизировать. Остальным пришлось бы поднимать окружение и проверять доступы, то есть менять одну ручную работу на другую. Поэтому агента перенесли в события.

Что известно по теме: субагенты вместо одного большого промпта?

Первый вариант был монолитом: один агент читал задачу, разбирал PR, составлял и публиковал чек-лист. Он был медленным и дорогим, потому что весь контекст ехал в каждом запросе. Теперь процесс разбит на шаги: сбор контекста, анализ PR, генерация и публикация. Между ними передаётся валидируемый JSON. Выигрыш прикладной. Каждый шаг видит только нужный ему контекст, логи у каждого свои, а при падении перезапускается один джоб, не весь пайплайн. С автотестами трёх шагов не хватило.

Что известно по теме: скилы и банк памяти?

Знания агента лежат в двух местах, оба в репозитории. Скил — это инструкция по шагам, как для джуна: что делать, какие шаблоны брать, как проверять результат. Например, тест с моками кладём в integration, без моков в e2e, а проверки, которых нет в кейсе, не выдумываем. У команды отдельные скилы на сбор контекста, анализ PR, выгрузку кейсов из TMS, написание теста, ревью кода и починку падений. Чем уже скил, тем дешевле и стабильнее шаг.

ЖХ
Жемал Хамидун — CPO Alpina Digital, продакт-менеджер AlpinaGPT. Делает AI-продукты с 2019 года. Hamidun News — pet project, который вырос в production-агрегатор с 6000+ читателей.
✦ Практика · Hamidun Academy

Соберите рабочего ИИ-агента или сервис своими руками без ручного кода

В Академии Жемала Хамидуна (academy.hamidun.com) открыт бесплатный 72-часовой тест-драйв: интерактивные скетч-уроки по Claude Code и Cursor, живой Tech Radar и готовые шаблоны агентов.

Открыть 72ч бесплатный доступ →Интенсив по Вайб-кодингу
Что вы думаете?
Загружаем комментарии…