Т-Банк научил AI-агента писать iOS unit-тесты через AGENTS.md и SKILL.md
iOS-разработчик Т-Банка Артем Житко рассказал на Habr, как команда заставила LLM-агента писать unit-тесты по правилам проекта. Первые попытки с ChatLLM провалились: код не компилировался, модель придумывала несуществующие Mock-объекты, игнорировала архитектурные соглашения и брала не те тестовые утилиты. Вместо новых промптов инженеры собрали систему правил на базе файлов AGENTS.md и SKILL.md. Генерация тестов превратилась из разового запроса в воспроизводимый процесс. Вывод команды: качество правил сегодня важнее выбора самой умной модели.
AI-обработка оригинала Habr: Т-Банк; редакция Hamidun News
Команда iOS-разработки Т-Банка описала на Habr, как научила LLM-агента писать unit-тесты в стиле проекта: с реальными Mock-объектами, правильными утилитами и кодом, который собирается с первого раза. Автор материала, iOS-разработчик Артем Житко, рассказывает, что подбор промптов не помог. Помогла система правил на файлах AGENTS.md и SKILL.md.
Что сломалось в первой попытке
Тесты обычно пишут в конце задачи, когда логика готова и мотивации уже мало. Это очевидный кандидат на передачу агенту. Т-Банк попробовал поручить его ChatLLM и получил типичный набор дефектов:
- код не компилировался;
- модель придумывала Mock-объекты, которых в проекте нет;
- архитектурные соглашения команды игнорировались;
- использовались не те тестовые утилиты, которые принято применять в кодовой базе.
Все четыре пункта имеют общий корень. Модель не видела проект изнутри. Она знает, как выглядят тесты на Swift вообще, но не знает, как называются ваши хелперы, где лежат заглушки и какой слой зависимостей принято подменять. Поэтому она достраивает недостающее правдоподобной выдумкой. Для кода это худший вариант: выдумка выглядит убедительно, а ломается только на сборке.
Правила вместо промптов
Команда сделала вывод, что причина в отсутствии контекста, а не в слабости модели, и вынесла знания о проекте в файлы. AGENTS.md служит общей инструкцией для агента в репозитории: структура, соглашения, обязательные практики. SKILL.md описывает конкретное умение, здесь это написание тестов: порядок действий, какие утилиты брать, как называть кейсы, что считать готовым результатом.
Главное изменение связано с самим подходом. Промпт живёт в чьей-то голове или чате, и результат зависит от того, кто и как его написал. Файл правил лежит в репозитории, ревьюится, версионируется и работает одинаково для каждого разработчика. Генерация тестов из разового запроса превращается в воспроизводимый инженерный процесс, как пишет сам автор.
Ключевые факты из анонса
- Платформа: iOS, unit-тесты. - Исходная модель: ChatLLM, результат без контекста признан непригодным. - Инструменты: AGENTS.md и SKILL.md. - Тезис команды: хорошие правила важнее выбора самой умной модели.
Тезис про правила и модель лучше читать с оговоркой. Это вывод одной команды на одной кодовой базе, и пока без опубликованных цифр. Но он согласуется с тем, что многие замечают при работе с кодовыми агентами: рост качества часто дают описание окружения и проверка результата, а не смена модели на более дорогую.
Как применить у себя
Если хотите повторить подход, начните с анализа ошибок, а не с написания правил. Соберите 10–20 тестов, которые агент сгенерировал неудачно, и разметьте причины: выдуманный класс, неверная утилита, нарушенная архитектура. Каждая повторяющаяся причина превращается в конкретное правило.
В AGENTS.md кладите то, что верно для всего репозитория: структуру модулей, соглашения об именовании, запреты. В отдельный навык выносите узкую процедуру, например написание тестов, и приводите там один-два эталонных примера из реального кода. Явно перечислите существующие Mock-объекты и тестовые утилиты и запретите создавать новые без запроса. Это прямой ответ на главную болезнь, описанную командой.
И обязательно замыкайте цикл проверкой: пусть агент запускает сборку и тесты и исправляет ошибки сам. Правила снижают число выдумок, но компилятор остаётся самым надёжным рецензентом. Файлы правил стоит ревьюить как обычный код и обновлять вместе с архитектурой, иначе они быстро устареют и начнут вредить.
- 29 окт. 2026 г.Агенты учатся на невезении: уроки LLM переносят случайный сбой в решения
- 29 окт. 2026 г.Liquid AI выпустила LFM3: шесть мультимодальных моделей на 2B с контекстом 256K
- 28 окт. 2026 г.AdaPRA поднял Qwen 80B на 24,5 пункта в data science-лидербордах
- 28 окт. 2026 г.AOS-Bench показал: агенты с разницей 0,6 пункта доставляют 54% и 68% задач
Вопросы и ответы по материалу
Что известно по теме: что сломалось в первой попытке?
Тесты обычно пишут в конце задачи, когда логика готова и мотивации уже мало. Это очевидный кандидат на передачу агенту. Т-Банк попробовал поручить его ChatLLM и получил типичный набор дефектов: код не компилировался; модель придумывала Mock-объекты, которых в проекте нет; архитектурные соглашения команды игнорировались; использовались не те тестовые утилиты, которые принято применять в кодовой базе. Все четыре пункта имеют общий корень. Модель не видела проект изнутри. Она знает, как выглядят тесты на Swift вообще, но не знает, как называются ваши хелперы, где лежат заглушк
Что известно по теме: правила вместо промптов?
Команда сделала вывод, что причина в отсутствии контекста, а не в слабости модели, и вынесла знания о проекте в файлы. AGENTS.md служит общей инструкцией для агента в репозитории: структура, соглашения, обязательные практики. SKILL.md описывает конкретное умение, здесь это написание тестов: порядок действий, какие утилиты брать, как называть кейсы, что считать готовым результатом. Главное изменение связано с самим подходом. Промпт живёт в чьей-то голове или чате, и результат зависит от того, кто и как его написал. Файл правил лежит в репозитории, ревьюится, версионируется и
Что известно по теме: ключевые факты из анонса?
Платформа: iOS, unit-тесты. - Исходная модель: ChatLLM, результат без контекста признан непригодным. - Инструменты: AGENTS.md и SKILL.md. - Тезис команды: хорошие правила важнее выбора самой умной модели. Тезис про правила и модель лучше читать с оговоркой. Это вывод одной команды на одной кодовой базе, и пока без опубликованных цифр. Но он согласуется с тем, что многие замечают при работе с кодовыми агентами: рост качества часто дают описание окружения и проверка результата, а не смена модели на более дорогую.
Соберите рабочего ИИ-агента или сервис своими руками без ручного кода
В Академии Жемала Хамидуна (academy.hamidun.com) открыт бесплатный 72-часовой тест-драйв: интерактивные скетч-уроки по Claude Code и Cursor, живой Tech Radar и готовые шаблоны агентов.
Главное из мира ИИ — раз в неделю
7 ключевых событий недели, отобранных вручную. Без шума, репостов и пресс-релизов.
Готово! Проверьте почту — мы отправили подтверждение.