Чему вы научитесь
- Определять риски AI-приложения и составлять план проверок по его ответам, источникам, инструментам и действиям
- Писать типизированный HTTP-клиент на HTTPX и Pydantic, различать ошибки транспорта, HTTP и контракта ответа
- Изолировать состояние сценариев через фикстуры pytest и обеспечивать независимость повторных запусков
- Параметризовать проверки с устойчивыми идентификаторами случаев и сохранять данные для воспроизведения ошибок
- Создавать эталонные наборы случаев с входными данными, исходным состоянием и проверяемыми ожиданиями
- Подбирать позитивные, негативные и пограничные случаи для разных категорий ошибок AI-приложения
- Проверять эквивалентные перефразировки и метаморфные свойства без требования дословного совпадения ответов
- Версионировать наборы данных и разметку, разделять выборки для разработки, регрессий и независимой проверки
- Проверять JSON-схему, обязательные поля и ограничения структурированного ответа модели
- Разбивать ответы на отдельные утверждения и сверять их с подтверждающими фрагментами исходных документов
- Проверять корректность цитат, идентификаторов и редакций документов, обнаруживать ссылки на устаревшие источники
- Проверять обоснованный отказ от ответа, когда в доступных источниках недостаточно сведений
- Разделять детерминированные проверки и смысловое оценивание с участием человека или LLM-судьи
- Проверять схемы и аргументы инструментов, выявлять недопустимые вызовы и ошибки их выполнения
- Анализировать последовательность действий агента по трассировке, учитывая допустимые альтернативные пути решения
- Сопоставлять ответ агента с фактическим состоянием заявки и подтверждать успешность или неуспешность действия
- Проверять полномочия пользователя, обязательное подтверждение изменений и защиту от повторной записи
- Воспроизводить прямые попытки подмены инструкций и проверять, что они не приводят к запрещённым действиям
- Проверять внедрение инструкций через документы и результаты инструментов без передачи им полномочий агента
- Выявлять нарушения разграничения доступа, утечки данных и раскрытие чувствительных сведений в ответах и журналах
- Рассчитывать показатели качества по категориям рисков с учётом успешных, ошибочных и неопределённых результатов
- Измерять повторяемость проверок и отличать колебания результатов от подтверждённого изменения поведения
- Калибровать LLM-судью на человеческой разметке, выявлять ложные одобрения, ложные отказы и ошибки оценщика
- Связывать запросы, ответы и вызовы инструментов по трассировкам с учётом версий модели, промпта и конфигурации
- Проверять таймауты, ошибки модели и инструментов, повторы и неполные наблюдения без ложных положительных результатов
- Считать токены, стоимость и задержки по сохранённым данным, различая реальные измерения и смоделированные значения
- Сравнивать исходную и изменённую конфигурации на одном наборе случаев и находить регрессии по каждому случаю
- Проверять чувствительность тестов с помощью контролируемых дефектов ответов, промптов и инструментов
- Разделять обязательные локальные проверки и необязательные обращения к внешней модели при запуске в CI
- Настраивать критерии блокировки и дополнительной проверки выпуска, готовить отчёт с доказательствами, ограничениями и решением BLOCK, REVIEW или RELEASE
О курсе

🧭 Отправная точка
Пользователь спрашивает Service Desk AI, сколько рабочих мест входит в тариф Pro. Сервис возвращает 200 OK, ответ соответствует JSON-схеме и содержит ссылку на документацию. В актуальной редакции документа указано 25 мест, а ассистент отвечает, что их 20. Ссылка ведёт на старую редакцию и подтверждает устаревшее значение.
Другой пример — работа с заявками. Агент сообщает, что отказал пользователю в изменении чужой заявки. Чтобы проверить отказ, нужно посмотреть, вызывался ли инструмент записи и сохранилось ли исходное состояние заявки. Одного текста ответа для этого недостаточно.
На курсе вы создадите собственную систему автоматизированного тестирования учебного приложения Service Desk AI. Она будет проверять факты и ссылки на документы, работу инструментов, права доступа, безопасность и изменения поведения между версиями. Вы научитесь собирать доказательства ошибок и принимать обоснованное решение о выпуске.
🎯 Цель курса — научиться проверять AI-приложения на Python: строить воспроизводимые сценарии, оценивать ответы и действия агента, выявлять регрессии и объяснять, на каких данных основаны результаты тестирования.
Курс рассчитан на тех, кто уже работает с Python, pytest и HTTP API. В программе 11 разделов и 42 урока. Вы исследуете готовый Service Desk AI и постепенно разовьёте отдельный проект проверок. Разрабатывать самого агента или обучать языковую модель не потребуется.
⚙️ Что вы будете делать
-
🧩 Создавать основу автотестов. Напишете типизированный HTTP-клиент на HTTPX и Pydantic, добавите фикстуры pytest, параметризацию и изоляцию сеансов. Проверите структуру ответов и различия между ошибкой транспорта, HTTP-статусом и нарушением контракта. Научитесь сохранять сведения, по которым можно повторить неудачный сценарий.
-
📚 Проверять факты, источники и смысл ответов. Подготовите версионируемые наборы случаев с ожидаемыми свойствами. Будете сверять отдельные утверждения с документами нужной редакции, проверять цитаты и обоснованный отказ от ответа. Добавите проверки перефразированных вопросов и разберёте, как оценивать смысл по размеченным человеком примерам, не пропуская ошибочные числа или неподтверждённые утверждения.
-
🔐 Тестировать инструменты и безопасность агента. Исследуете последовательность вызовов, разрешения на чтение и запись, подтверждение изменений и защиту от повторного действия. Проверите попытки передать посторонние инструкции через запросы, документы и ответы инструментов. Сопоставите текст ответа, трассировку и фактическое состояние заявки, чтобы обнаруживать запрещённые изменения и утечки данных.
-
🔁 Сравнивать версии и принимать решение о выпуске. Построите запуск оценок на закреплённых наборах, научитесь учитывать повторяемость, ошибки оценщика, задержки и стоимость. Сравните исходную и изменённую конфигурации по каждому случаю, подключите проверки к CI и реализуете решения
BLOCK,REVIEWиRELEASEна основании измеренных результатов.
🔥 Чем отличается курс
Вся практика ведётся на готовом Service Desk AI с HTTP API, документами нескольких редакций, учебными заявками и трассировками. Проверки вы пишете отдельно от приложения. Это позволяет исследовать его поведение через запросы, ответы, сведения об инструментах и состояние ресурсов, а затем воспроизводить найденные нарушения.
Для проверки ответа используются разные критерии. Утверждение должно подтверждаться подходящим источником, а цитата — относиться к нужной редакции документа. Если необходимых сведений нет, система должна обоснованно отказаться от ответа. Вы разберёте эти ситуации отдельно, чтобы верная формулировка не скрывала ошибочную ссылку, а наличие ссылки — неподтверждённый факт.
Отдельный блок посвящён смысловому оцениванию. Вы сопоставите решения оценщика с человеческой разметкой, посчитаете ложные одобрения, ложные отказы и случаи без определённого результата. Разберётесь, как ошибка или отсутствие ответа оценщика влияет на итоговую метрику и почему важно учитывать все проверенные случаи.
При проверке действий агента вы будете сверять его слова с реальными последствиями. Например, для запрещённой записи важно подтвердить неизменность заявки, а для разрешённой — точное изменение и отсутствие повторного применения. Отдельные задания проверяют попытки изменить полномочия через недоверенный текст и передачу данных за пределы доступной области.
Обязательные задания выполняются локально на синтетических данных и воспроизводимых сценариях модели. Для них не нужны платные LLM и внешние API-ключи. В курсе есть также работа с сохранёнными наблюдениями другой версии модели: такие данные позволяют испытать систему оценивания, но не подтверждают качество нового живого вызова. Сравнение с внешними моделями доступно отдельно, по желанию, с ограничениями затрат.
В отчётах вы будете различать PASS, FAIL и UNDETERMINED. Отсутствующие наблюдения сохраняются в результатах и учитываются при решении о выпуске. Вы также сравните стоимость и задержки по зарегистрированным данным и проверите, что критическое нарушение может заблокировать выпуск независимо от общего процента успешных случаев.
📚 Дополнительные бесплатные материалы
- 📄 Как тестировать LLM-приложения: pytest, evals и проверка ответов
- 📄 Как обнаружить регрессию качества после смены LLM-модели
- 📄 LLM оценивает ответы: как проверить, не награждает ли она ошибки
- 📄 RAG без LLM: как проверить качество поиска отдельно от генерации
- 📄 Prompt Injection через инструменты AI-агента: как возникает атака
🎯 Итоговый проект
К концу курса у вас будет собственный Python-проект для тестирования Service Desk AI: HTTP-клиент, наборы проверочных данных, оценщики фактов и цитат, тесты полномочий и действий, сравнение прогонов и проверки в CI.
В финале вы получите изменённую конфигурацию release-review-v1 без готового перечня ошибок. Сначала зафиксируете критерии приёмки и исходные данные, затем выполните сравнение с baseline-v1 на одинаковых наборах. Исследуете подтверждённые регрессии, проверите источники, трассировки и состояние заявок после действий агента. Отдельно учтёте неполные наблюдения, стоимость и задержки.
Итогом станет воспроизводимый пакет приёмки: план проверки, реестр обнаруженных изменений, тесты и краткое техническое заключение. В нём вы обоснуете решение BLOCK, REVIEW или RELEASE, укажете ограничения проверки и условия, при которых решение нужно пересмотреть. Результаты сохраните в собственном репозитории.
🧪 Поддержка
🤝 Вопросы по материалам курса можно задавать в комментариях Stepik. Разбирая сложную ситуацию, приложите название урока, свои действия и полученный результат — так проще понять причину ошибки и предложить следующий шаг.
✅ Практические работы проверяет преподаватель. Вы получаете обратную связь по выполненному заданию: что соответствует требованиям, что стоит исправить и на что обратить внимание при повторной проверке.
🚀 О XNova
XNova — практические курсы и учебные проекты для разработчиков, тестировщиков и инженеров. Мы разбираем технологии на работающих примерах: с кодом, наблюдаемым результатом и объяснением инженерных решений.
🔗 xnova.dev — другие курсы и материалы XNova.
📬 Контакты и сообщество
Продолжить знакомство с XNova, следить за новыми материалами или задать организационный вопрос можно здесь:
- 📣 Telegram-канал: @xnova_dev — анонсы курсов, статьи и новости проекта.
- 💬 Написать XNova: @xnova_contact — контакт для вопросов о курсах и проекте.
- ✉️ Почта: contact@xnova.dev — если удобнее написать письмом.
- 💻 GitHub: xnova-tech — открытые учебные проекты и примеры.
🔒 Доступ к разделам
⚠️ Важно! Модули курса открываются постепенно. Чтобы перейти к следующему модулю, необходимо набрать определённое количество баллов в текущем. Это вынужденная мера. Выполнять все задания не требуется, достаточно выполнить основную часть.
Для кого этот курс
Начальные требования
📚 Что нужно знать
- Python и pytest: уверенно писать и запускать тесты, работать с фикстурами и проверками результатов.
- HTTP и JSON: понимать запросы к API и структуру ответов.
- Git и терминал: работать с репозиторием и запускать Python-проекты.
- Основы LLM: понимать назначение промпта и вызова инструмента.
Разрабатывать собственного агента или обучать языковую модель для прохождения курса не нужно.
🧰 Что понадобится
- Python 3.12, uv 0.13.0 и Git. Проверенное окружение использует CPython 3.12.2.
- Компьютер для запуска локального учебного приложения и тестов pytest. Docker не требуется.
Обязательные задания выполняются без платных запросов к моделям и API-ключей. Сравнения с реальными моделями доступны отдельно, по желанию; при их использовании возможны расходы.
Как проходит обучение
🧪 Каждый тест отвечает на конкретный риск AI-приложения. После объяснения и вопросов вы добавляете проверки в Python-проект и видите результат на готовом Service Desk AI.
- 📚 Готовите эталоны: фиксируете ожидаемые факты, цитаты и ответы для сравнения.
- 🔐 Проверяете действия: исследуете вызовы инструментов, права доступа и побочные эффекты.
- ✅ Ловите регрессии: запускаете набор проверок в CI и оформляете вывод для решения о выпуске.
Программа курса
В курс входят
- 43 урока
- 1час 21минута видео
- 40 тестов
- 39 интерактивных задач
Наши преподаватели
Сертификат
Что вы получаете
- Собственный Python-проект автоматизированного тестирования готового приложения Service Desk AI с воспроизводимыми проверками через HTTP API
- Типизированный клиент HTTPX/Pydantic, фикстуры pytest, параметризованные сценарии и сохранённые результаты неуспешных проверок
- Версионируемые эталонные наборы случаев для проверки ответов, источников и регрессий между конфигурациями
- Проверки структуры ответов, подтверждения фактов, актуальности цитат, обоснованного отказа и смыслового соответствия
- Автоматизированные проверки контрактов инструментов, последовательности вызовов, полномочий и фактических изменений заявок
- Набор негативных сценариев для prompt injection, разграничения доступа, защиты данных и запрещённых действий агента
- Расчёты метрик качества и повторяемости, результаты калибровки LLM-судьи на размеченных примерах
- Проверки трассировок, ошибок выполнения, времени ответа, расхода токенов и стоимости по сохранённым наблюдениям
- Скрипты сравнения исходной и изменённой конфигураций, регрессионный набор и правила проверок в CI
- Итоговый пакет приёмки изменённого Service Desk AI: результаты прогонов, подтверждённые регрессии, оценка рисков и обоснованное решение о выпуске