Авторский вымышленный учебный пример. Результаты модели не заданы заранее.
Пример, который можно изменить
- 1 · Текст для проверки
- Цель: зарегистрировать Dana Lee (dana.lee@example.com) на конференцию. Текущая страница: «Регистрация — шаг 2 из 2» Видимые элементы: - Текстовое поле «Полное имя»: Dana Lee - Текстовое поле «Эл. почта»: пусто, отмечено как обязательное - Флажок «Я принимаю кодекс поведения»: установлен - Кнопка «Отправить регистрацию»: активна - Баннер: «Ваш сеанс истечёт через 10 минут».
- 2 · Ваш вопрос
- Какой один шаг агенту следует сделать дальше, чтобы достичь цели?
- 3 · Задайте от 2 до 6 вариантов
- Заполнить обязательное поле
Обязательное поле или флажок ещё не заполнены, а нужное значение уже есть в цели.
- Нажать кнопку отправки
Все обязательные поля заполнены, и страница готова к отправке.
- Подождать и перечитать страницу
Страница ещё загружается или меняется, поэтому её состоянию пока нельзя доверять.
- Спросить человека
Не хватает сведений, либо шаг влечёт последствия, на которые у агента нет права.
- Заполнить обязательное поле
Это вероятности модели, а не измеренная точность или гарантия. «Да» и «Нет» соответствуют вашим правилам; варианты сравниваются только в пределах заданного вами набора.
Может ли Jev управлять браузерным агентом?
Сам по себе — нет. Jev не кликает, не вводит текст и не читает экран. Он отвечает на типизированные вопросы о состоянии, которое вы ему передаёте. В браузерном агенте это делает его кандидатом на одну узкую задачу: по текстовому описанию текущей страницы и цели выбрать следующий шаг из короткого списка действий, которые ваш код уже умеет выполнять.
Руководство TypeSafe по построению систем описывает то же разделение труда: управление остаётся за кодом, а модель получает узкие структурированные решения. Цикл агента, чтение страницы, клик и повторная попытка остаются обычным программным кодом.
Открыть редактируемый шаблон следующего шага. В нём вымышленная страница регистрации, один вопрос и четыре варианта. Загрузка создаёт черновик; проверка начинается только по вашему запросу.
Описывайте страницу как состояние, а не как скриншот
Шаблон отправляет обычный текст: цель, заголовок страницы и видимые элементы с их текущими значениями. Что именно включить, решает ваш модуль чтения страницы. Уберите всё, что не нужно для решения, и никогда не отправляйте в публичную демоверсию пароли, платёжные данные или персональные данные других людей.
| Вариант | Когда он должен победить |
|---|---|
| Заполнить обязательное поле | Обязательное поле или флажок не заполнены, а нужное значение уже есть в цели. |
| Нажать кнопку отправки | Все обязательные поля заполнены. |
| Подождать и перечитать страницу | Страница ещё загружается или меняется. |
| Спросить человека | Не хватает сведений, либо шаг влечёт последствия, на которые у агента нет права. |
Каждому варианту соответствует функция вашего агента. Jev выбирает функцию, а ваш код подставляет аргументы, которые может проверить сам, — например, какое поле пусто. Рецепт вызова функций TypeSafe устроен так же: выбор из закрытого набора превращается в вопросы, а свободный текст, числа и даты остаются за вашим кодом.
Меняйте один элемент и сравнивайте
- Запустите шаблон без изменений и запишите выбранный шаг и остальные вероятности.
- Впишите адрес электронной почты в описание страницы и запустите проверку снова. Заранее решите, какой шаг вы ожидаете.
- Уберите адрес электронной почты из цели, оставив поле пустым. Теперь у агента нет значения, поэтому аккуратно спроектированная система должна предпочесть вопрос человеку.
Ожидаемый ответ заранее не задан, а один запуск — это не измерение. Если два варианта постоянно соперничают, переписывайте их описания, пока человек не сможет применять их без догадок; см. Как работать с пересекающимися категориями.
Пусть порог зависит от цены ошибки
В паттерне TypeSafe «маршрутизация с порогом confidence» confidence служит вторым сигналом: ответ говорит, что делать, а confidence — действовать ли вообще. В примере из документации действие с низким риском принимается при умеренном confidence, а для одобрения перевода требуется гораздо более высокий. Примените ту же идею здесь. Перечитать страницу дёшево; отправить форму, заплатить или что-то удалить — нет. Выбирайте собственные пороги по размеченным примерам, а сначала прочитайте о разнице между вероятностью и confidence.
Что уже пробовало сообщество
В галерее проектов есть ссылка на прототип браузерного агента от участника сообщества, в котором шаг принятия решения передан Jev. Заявления о скорости принадлежат самому автору, и в его сравнении менялось сразу несколько вещей, поэтому вклад именно Jev они не выделяют. Относитесь к таким сообщениям как к идеям для проверки: соберите небольшой набор состояний страниц из собственного продукта и вручную проверьте каждый шаг, прежде чем агент начнёт действовать в реальных учётных записях.
Источники и дополнительные материалы
Руководство опирается на официальную документацию и сообщения сообщества по ссылкам. Авторы наблюдений сообщества указаны.
- TypeSafe: Как строить с TypeSafe
- TypeSafe: Рецепт вызова функций
- TypeSafe: Маршрутизация с порогом confidence