Prosus AI: Murphy — агент тестирования с динамическими персонами из данных пользователей
Команда Prosus AI опубликовала описание Murphy — open-source агента оценки, который тестирует продукты так, как это делают реальные пользователи: кликает по интерфейсу, заполняет формы и обнаруживает сбои, которые стандартные тест-сьюты никогда не предусмотрят. Авторы — Kevin Ngo, Isha Agrawal и Ambra Mihu — описывают не сам агент, а новый конвейер для генерации персон: не вручную составленных, а напрямую выведенных из данных пользовательских сессий.
Проблема статических персон
Когда персоны определяются вручную, в них закодированы допущения о том, по каким осям пользователи различаются. Исследователь думает, что ключевые переменные — техническая грамотность, терпение и намерение. Но что если реальная точка отказа продукта состоит в том, что значительная часть пользователей никогда не возвращается назад, двигается линейно, пропускает шаги верификации и отправляет то, что есть перед ними? Или что другая группа читает всё внимательно, а потом две минуты колеблется перед любым действием?
Это не универсальные UX-паттерны. Они специфичны для конкретного дизайна продукта, онбординга, пользовательской базы. Статические персоны могут их приближённо описать. Обнаружить — нет.
Идея: пусть данные определяют оси
Ключевое в концепции динамических персон — то, что поведенческие измерения должны возникать из данных сессий, а не навязываться им.
Если дать LLM сжатую временну́ю шкалу реальной пользовательской сессии и попросить описать наблюдаемое — без схемы, своими словами, — он замечает детали. «Этот пользователь постоянно возвращается назад перед тем, как зафиксировать выбор». «Кликнул три раза в ярости во время загрузки, потом ушёл». «Последовательно открыл пять функций, ни в одну не погрузившись».
Выполните это для многих сессий, кластеризуйте наблюдения семантически — и паттерны проявятся. Не те, которые вы ожидали, а те, которые действительно присутствуют в данных. Они становятся поведенческими измерениями. Оцените каждую сессию по этим измерениям, кластеризуйте векторы оценок — и попросите LLM назвать каждый кластер.
Результат — набор персон, укоренённых в реальных пользователях продукта. Запустите тот же конвейер на другом продукте — получите другие оси, другие названия, другие операционные инструкции, потому что разные пользователи ведут себя по-разному.
Как это работает
Конвейер выполняется в трёх фазах.
Фаза 1 — Обнаружение: поиск осей
Сессии извлекаются из PostHog и сжимаются в структурированные plain-text временны́е шкалы. Каждая охватывает, что делал пользователь (навигация, взаимодействия, загрузки, feedback), как он это делал (время пребывания, частота возвратов, время до первого действия) и контекстуальные сигналы — rage-клики и данные об устройстве. PII удаляется на этом этапе: содержимое сообщений, email-адреса и чувствительные свойства никогда не попадают к LLM.
Каждая временна́я шкала отправляется LLM с намеренно открытым промптом: описать поведенческие характеристики этого пользователя. Без фиксированной схемы. Без предложенных осей. Модель описывает то, что видит.
Это создаёт большой набор свободных поведенческих наблюдений. Они встраиваются и кластеризуются, чтобы найти, какие поведения совстречаются и какие семантически связаны. Кластеры возвращаются LLM для синтеза в именованные поведенческие измерения — каждое с названием, описанием и якорями для того, как выглядят низкие и высокие оценки.
На реальном прогоне по сессиям Toqan — корпоративной аgentic-платформы Prosus с пользователями от технических разработчиков до нетехнических бизнес-партнёров — этот подход выявил семь поведенческих измерений, которые не были бы сформулированы при ручном подходе.
Фаза 2 — Оценивание: размещение пользователей на осях
Имея на руках схему характеристик, новая партия сессий оценивается по ней. Каждая сессия получает один вызов LLM: вот временна́я шкала, вот семь измерений, оцените каждое от 1 до 5 с кратким обоснованием. Результат — вектор оценок на сессию, точка в семимерном пространстве характеристик.
Эта фаза быстрая и дешёвая. Дорогостоящее открытое обнаружение выполняется один раз. Оценивание структурировано и ограничено.
Фаза 3 — Кластеризация: персоны
K-Means по матрице оценок группирует сессии в кластеры. Каждый центроид кластера — характерный профиль оценок, представляющий тип пользователя. LLM получает все центроиды и называет каждый: архетипное имя, описание и измерения, по которым этот кластер наиболее отклоняется от остальных.
Но именно здесь результат становится операционно пригодным, а не просто описательным. Каждая персона также содержит:
- Инструкции по исполнению — конкретные поведенческие указания для browser-агента, выполняющего тест.
- Вопросы для судьи — что отдельный AI-судья должен выяснять при оценке тестового прогона под этой персоной.
- Критерии успеха — что считается прохождением, а что провалом, откалиброванное под характеристики данной персоны.
Это не маркетинговые персоны. Это спецификации роли для агентов.
Что получилось на реальном прогоне
На платформе Toqan из восьми возникших персон две из них — «Нетерпеливый минималист» и «Методичный перфекционист» — оказались на противоположных концах шкалы по большинству измерений. Они не были спроектированы для контраста — они просто таковы, что показали данные. В этом и ценность: оси, которые важны, не всегда те, к которым вы бы потянулись в первую очередь.
Что это делает возможным
Тесты, которые задают правильные вопросы
Когда Murphy тестирует интерфейс под персоной «Нетерпеливый минималист», судья спрашивает не «Выполнена ли операция успешно?», а «Как продукт справился с ранним уходом пользователя — нет ли брошенного состояния, молчаливых отказов, потоков, которые ломаются, когда пользователь исчезает на полпути?». Это вопрос, который важен для этого кластера пользователей.
Разная персона — разные критерии оценки. Один и тот же сайт, то же взаимодействие, но оцениваемое по-разному, потому что разные пользователи переживают его по-разному.
Никакой настройки для новых продуктов
Продукт, впервые интегрирующий Murphy, не должен решать, какие персоны релевантны. Запустите конвейер на нескольких месяцах данных PostHog — и персоны появятся сами. Это особенно ценно для портфеля Prosus, где продукты охватывают очень разные пользовательские базы и домены.
Персоны, которые остаются актуальными
Поведение пользователей меняется по мере эволюции продукта. Новые функции привлекают новые типы пользователей. Изменения в онбординге меняют паттерны первого контакта. Динамические персоны можно регенерировать по расписанию — еженедельный прогон на свежих данных сессий удерживает тест-сьют откалиброванным под тех, кто ваши пользователи сейчас, а не тех, кем они были при запуске.
Как измерялась точность имитации
Когда Murphy завершает тестовый прогон, он генерирует детальную историю действий: каждый клик, навигацию, заполнение формы, ошибку и момент колебания — с временными метками. Эта история преобразуется в поведенческую временну́ю шкалу, намеренно зеркалящую формат, используемый для представления реальных пользовательских сессий.
Тот же LLM-скорер, что извлекал поведенческие оценки из реальных сессий, применяется к временно́й шкале Murphy. Он оценивает каждое измерение по той же схеме характеристик, которая была обнаружена из данных. В итоге имеются два набора оценок в одном пространстве: оценки Murphy для данного тестового прогона и оценки центроида персоны — средние значения по всем реальным пользовательским сессиям этого кластера. Разница между ними по каждому измерению показывает, где Murphy отклонился в представлении данной характеристики.
В отчёт об оценке входят две метрики.
- Trait similarity — оценка от 0 до 1, вычисленная из покоординатных дельт между оценками Murphy и центроидом персоны.
- Embedding similarity — косинусное сходство между векторным представлением временно́й шкалы Murphy и центроидным представлением персоны — средним по всем реальным сессиям кластера.
Что показывают числа
На трёх уровнях сложности задач Murphy демонстрирует сильную точность воспроизведения персон для ориентированных на задачи, методичных архетипов. «Сфокусированный исполнитель», «Перфекционист рабочего процесса» и «Точный тестировщик» стабильно набирают 85–92% совпадения по LLM-характеристикам во всех условиях. По мере роста сложности задач LLM-совпадение Murphy снижается — с преимущественно HIGH-распределения на простых задачах до преимущественно MEDIUM-профиля на сложных.
Murphy — open source. Репозиторий доступен по адресу: github.com/ProsusAI/Murphy.