ОБЗОР 2026 · БРАУЗЕРНЫЕ АГЕНТЫ

Jev Ultrafast: обзор браузерного агента Browser Use и TypeSafe

Браузерный агент, который не смотрит на скриншоты: он читает таблицу элементов, выбирает операцию и цель одним запросом и кликает по проверенному узлу. Разбираем, что даёт такая схема, откуда берутся 7 секунд на поиск авиабилетов и где заканчиваются её возможности.

Браузерные агентыOpen Source2026
Разработчики Browser Use × TypeSafeЛицензия MITОбновлено 01.11.2026

Коротко: Jev Ultrafast — открытый браузерный агент от Browser Use и TypeSafe. Вместо цикла «скриншот → модель → координаты» он строит индексированную таблицу элементов страницы и за один запрос к модели выбирает операцию и цель: CLICK [7], TYPE_TEXT [3], SELECT. Текст печатает маленькая модель, только когда операция — ввод. Заявленный результат — поиск рейса Цюрих → Лондон на Google Flights за 7,073 с при скорости записи 1×. Репозиторий browser-use/jev-ultrafast — 23 999 звёзд и 1 836 форков на 01.11.2026, лицензия MIT.

Как мы это проверяли
Живьём агента не запускали: обзор собран по README, docs/performance.md с протоколом замеров, measurement JSON (flights-measurement.json, full-speed-measurement.json), странице browser-use.com/ultrafast и данным GitHub API. Все секунды — из замеров авторов на их машине и их аккаунтах; мы их не воспроизводили. Числа сняты 01.11.2026.
23 999
Звёзд на GitHub
GitHub API, 01.11.2026
7,073 с
Google Flights
docs/performance.md
17
Запросов к Jev
там же, тот же прогон
MIT, Python
Лицензия и язык
GitHub API

01Что именно сделали Browser Use и TypeSafe

Классический браузерный агент ходит по кругу: снимает скриншот, отправляет его большой модели, получает координаты клика, кликает, снимает новый скриншот. Каждый шаг — дорогой вызов зрения и десятки тысяч токенов на изображение. Jev ломает этот цикл иначе: он не смотрит на картинку, а вытаскивает одним вызовом браузера таблицу видимых контролов — номер, тип, подпись, текущее значение.

Дальше начинается главное. Вместо свободного текста модель отвечает структурой: операция из закрытого набора и индекс элемента из той же таблицы. Набор ограничен: CLICK, TYPE_TEXT, SELECT, SCROLL_UP, SCROLL_DOWN, WAIT, DONE, BLOCKED. Если операция не требует текста, текстовая модель не вызывается вовсе — за клик платят один запрос, а не два.

Третья деталь — валидация цели. Выбранный узел перепроверяется перед вводом: документ и форма не изменились, элемент не перекрыт оверлеем, геометрия актуальна. Вывод модели никогда не превращается в селектор, координаты или JavaScript — он превращается в индекс, который резолвится в конкретный DOM-узел. Это резко сужает класс ошибок «модель придумала, куда кликнуть».

Один цикл принятия решения
1Снимок страницыОдин вызов браузера: видимые контролы, их имена, значения, текст2Таблица элементов[1] button Change ticket type · [2] combobox Where from? …3Один запрос: операция + цельCLICK [7] или TYPE_TEXT [3]; несовместимые цели не предлагаются4Проверка и исполнениеСвежесть DOM, геометрия, перекрытия; текст — от маленькой моделиДве головы модели, один сетевой раунд

02Архитектура: пять файлов, которые можно прочитать

Одна из сильных сторон проекта — размер. Авторы специально держат цикл компактным: agent.py — сам цикл и передача текстовой модели, snapshot.js — атомарный снимок DOM и индексация контролов, browser.py — подключение, геометрия, исполнение, model.py — динамические головы операции и цели, questions.py — инструкции модели. Такой код можно прочитать за вечер, что для агентной инфраструктуры редкость.

Слои системы
Инспектор и CLIlocalhost:8766: вероятности операций и целей, «Choose next» для пошагового режимаUIЦикл агента (agent.py)наблюдение → запрос → проверка → исполнение; повтор до DONE или BLOCKEDлогикаМодель решений (model.py)динамические головы операции и цели, отдельная текстовая модель для вводамодельСнимок и исполнениеsnapshot.js и browser.py: индексы контролов, свежесть, hit-testingбраузер

Отдельный слой — Browser Harness, которым Jev подключается к Chrome по протоколу отладки. Он ставится зависимостью и умеет сам диагностировать подключение командой uv run browser-harness --doctor. Для проверки нужен Chrome с разрешённой удалённой отладкой: агент работает в вашем профиле, а не в призрачной виртуальной машине.

ОперацияЧто делаетКомментарий
CLICKклик по индексированному узлуперед вводом — проверка перекрытия и геометрии
TYPE_TEXTввод текста в полетекст генерирует маленькая LLM, не модель решений
SELECTвыбор опции нативного спискацель несёт наблюдаемый индекс опции
SCROLL_UP / SCROLL_DOWNпрокрутка страницыбез координат и без скриншотов
WAITпауза на короткий интервалиспользуется, когда состояние ещё не готово
DONE / BLOCKEDзавершение или отказDONE не считается доказательством успеха
Пространство действий: что агенту разрешено
Список закрыт: агент не может выдать произвольный JavaScript, координаты или селектор.

Закрытый набор — это ещё и объяснимость. Инспектор показывает вероятности по операциям и целям до исполнения, поэтому ошибку видно на шаг раньше, чем она случилась: «почему он выбрал поле прибытия вместо поля отправления» превращается в конкретную строку таблицы, а не в рассуждение о том, что модель «неправильно поняла скриншот».

03Замеры: 7,073 секунды и что за ними стоит

Протокол в docs/performance.md описан аккуратно: шесть чередующихся прогонов одной задачи в одном профиле Chrome, одинаковые условия — цель на естественном языке, независимый проверяющий результат, вьюпорт 1120×780, версия TypeSafe jev-1.13.0, модель inception/mercury-2.5 без рассуждений, лимиты действий и запросов. Начальная навигация исключена из замера, каждая попытка создаёт и закрывает свою вкладку, все шесть попыток включены в результат.

Сравнение рантаймов: три пары прогоновСекунды, задача Google Flights, снято 01.11.2026
0с3,1с6,2с9,4с12,5сПара 1Пара 2Пара 311,29,09,4Исходный рантаймОптимизированный
Данные из docs/performance.md. Три пары — слишком мало для сильного статистического вывода: сам автор указывает sign-test p = 0,25.

Медиана упала с 9,450 до 7,092 секунды, то есть на 25,0%. Но интереснее, за счёт чего: медиана числа запросов к TypeSafe снизилась с 22 до 17, а число вызовов протокола браузера — с 1 092 до 101. Второе число объясняет всё: старый цикл перечитывал дерево доступности и резолвил сотни узлов на каждое изменение DOM, включая анимации. Новый снимок читает видимые HTML/ARIA-контролы одним вызовом.

МетрикаИсходныйОптимизированныйРазница
Медиана времени9,450 с7,092 с−25,0%
Запросов к TypeSafe (медиана)2217−5
Вызовов протокола браузера1 092101−991
Валидация результата3/33/3обе руки
Что изменилось между рантаймами
Обе руки используют Mercury, чтобы сравнение не смешивало смену вспомогательной модели с правками кода.

В записи конкретного быстрого прогона: 17 запросов к Jev, 10 взаимодействий плюс один явный WAIT, две вспомогательные вызовы (Цюрих за 581 мс, Лондон за 346 мс), медианная задержка Jev 178 мс. Поиск выполнился на 5,217 с, финальное подтверждённое завершение — на 7,073 с; разрыв ушёл на загрузку результатов Google и решение о готовности.

Время на разных задачахСекунды, замеры авторов, 01.11.2026
0с4с8сGoogle Flights (полный прогон)7,1сWikipedia: открыть статью2,8сЛокальный фикстур: отель1,9с
Две нижние задачи — отдельные smoke-проверки, а не сопоставимый замер скорости; в локальном кейсе проверялись фильтры и свойства полей.
Осторожно с чтением этих секунд
Это не бенчмарк класса «агент против агента», а контролируемое сравнение двух версий одного рантайма на одной задаче. Google, сеть и кеши оставались живыми, три пары прогонов статистически слабы. Любые «Jev в 3 раза быстрее конкурента» — уже не цитата авторов, а домысел.

04Установка и цена владения

Локальный запуск описан в README: клонирование, uv sync, копия .env.example, два ключа — TYPESAFE_API_KEY для решений и TEXT_MODEL_API_KEY для текстовой модели. В примере конфигурации текстовая модель — ключ OpenRouter с моделью inception/mercury-2.5 без рассуждений; Gemini, GLM и DeepSeek тоже подключаются через OpenAI-совместимый хелпер, если выставить модель, эндпоинт и режим рассуждений.

Пять команд до инспектора
1
Клонировать и поставить зависимости
uv ставит и Browser Harness
terminalcopy
git clone https://github.com/browser-use/jev-ultrafast.git
cd jev-ultrafast && uv sync
2
Прописать ключи
TYPESAFE_API_KEY и TEXT_MODEL_API_KEY в .env
terminalcopy
cp .env.example .env
3
Проверить подключение к Chrome
Нужна разрешённая удалённая отладка
terminalcopy
uv run browser-harness --doctor
4
Запустить инспектор
Открывается на localhost:8766
terminalcopy
uv run jev
5
Свой сценарий из кода
Тот же Agent, другая цель и URL
terminalcopy
uv run --env-file .env python examples/run.py \
  --url https://en.wikipedia.org/wiki/Main_Page \
  --goal 'Find and open the article about Godel incompleteness theorems.'

Цены Jev мы не публикуем: TypeSafe считает запросы по своему прайсу, Browser Use предлагает хостинговый вариант BU Ultrafast на всех планах облака (модель bu-ultrafast), а текстовая модель тарифицируется отдельно вашим провайдером — сверяйте на официальных страницах. Единственная опубликованная цифра — стоимость двух текстовых вызовов в записанном прогоне: $0,00006272 по счёту OpenRouter. Это плата только за текстового помощника, без решений TypeSafe и без браузера.

Гибридный путь
Если не хочется держать Chrome и ключи локально, тот же агент доступен как hosted-модель в Browser Use Cloud — параметр model: bu-ultrafast. Тогда вы платите за облако, но теряете доступ к инспектору и к пошаговому разбору решений.

05Место среди браузерных агентов

Класс браузерных агентов за два года стал плотным. Browser Use — самый крупный проект с 119 712 звёздами, Stagehand и Skyvern идут в той же лиге, Moli приносит headless-браузер на Rust, а Jev занимает нишу «быстро и дёшево на повторяющихся сценариях». Разница между ними не в звёздах, а в том, чем агент платит за решение: скриншотами, DOM-снимками или заранее описанными действиями.

Звёзды браузерных агентов и браузерной инфраструктурыGitHub API, снято 01.11.2026
0★62 500★125 000★browser-use/browser-use119 712★browserbase/stagehand25 892★browser-use/jev-ultrafast23 999★Skyvern-AI/skyvern23 324★lexmount/moli21 931★browser-use/web-ui16 636★
Звёзды — это интерес сообщества, а не скорость и не точность. Jev в рейтинге выше Skyvern при заметно более узкой задаче.
ПодходЧто видит модельСильная сторонаСлабое место
Скриншоты + координатыизображение страницыпереносимость на любые сайтыдорого по токенам, хрупко к вёрстке
DOM-снимок + индексы (Jev)таблица видимых контроловбыстро и дёшево, проверяемая цельтолько HTML/ARIA-контролы, без canvas
Скрипты действий (Stagehand-стиль)описанные шагипредсказуемость на повторных сценарияхтребует ручной подготовки под сайт
Три подхода к браузерной автоматизации
Категории — обобщение публичных описаний проектов, а не результаты собственных замеров Qantcore.

06Ограничения: где агент ломается

Авторы не прячут слабые места, и это стоит прочитать до внедрения. Снимок поддерживает обычные HTML и ARIA-контролы, но не реализует полный алгоритм доступных имён и не проходит в shadow roots и фреймы. Canvas, загрузка файлов, новые вкладки, вложенная прокрутка и произвольные клавиатурные виджеты не поддерживаются вовсе. Валидная операция при этом всё равно может быть неверной, а DONE никогда не считается доказательством успеха — результат проверяет отдельный код.

  • Нет скриншотов в цикле — значит, нет и «понимания» интерфейсов, которые не описаны в DOM (canvas-редакторы, карты, видеоплееры).
  • Текстовый хелпер генерирует только значения полей; его ответ обязан парситься как небольшой JSON до ввода.
  • Работа идёт в вашем профиле Chrome: авторизации, куки и история — реальные, поэтому тестовый аккаунт обязателен.
  • Публичные замеры — один сценарий на шесть прогонов; переносить их на свой сайт без своего замера нельзя.
  • Хостинговая версия снимает инфраструктуру, но убирает прозрачность: решения видит только облако.

Частые вопросы

Что такое Jev Ultrafast и чем он отличается от Browser Use?
Jev Ultrafast — отдельный открытый браузерный агент, сделанный Browser Use вместе с TypeSafe. Он не снимает скриншоты в цикле, а читает индексированную таблицу элементов и выбирает операцию с целью одним запросом; текст печатает отдельная маленькая модель. Browser Use — более широкий проект-платформа, Jev — узкий и быстрый рантайм для веб-задач.
Правда ли, что он ищет авиабилеты за 7 секунд?
Это замер авторов на Google Flights: 7,073 с от первого предсказания после наблюдения главной страницы до принятого DONE, при скорости записи 1×. Начальная навигация, настройка браузера и внешняя проверка результата в это время не входят. На вашем сайте и вашей сети цифра будет другой.
Сколько это стоит?
Код открыт под MIT. Платятся решения TypeSafe по их тарифу, текстовая модель — по тарифу вашего провайдера, и при хостинговом варианте — облако Browser Use. Опубликованная в замере цифра $0,00006272 относится только к двум текстовым вызовам через OpenRouter, а не ко всей задаче.
Можно ли запустить Jev локально без облака?
Да: клонирование репозитория, uv sync, два ключа в .env и запуск uv run jev. Нужен Chrome с разрешённой удалённой отладкой — подключение проверяется командой uv run browser-harness --doctor. Инспектор на localhost:8766 показывает вероятности операций и целей до исполнения.
Подойдёт ли Jev для тестирования моего сайта?
Для повторяющихся HTML/ARIA-сценариев — да, при условии собственного замера и проверки результата отдельным кодом. Для canvas-интерфейсов, загрузки файлов, новых вкладок и shadow DOM — нет: эти случаи в текущем снимке не поддержаны.

Источники и официальные ссылки

Вердикт Qantcore
8,1/ 10
Jev Ultrafast делает одну вещь и делает её честно: убирает скриншоты из цикла и заменяет их индексированным снимком DOM, где каждая цель проверяема. Отсюда 7,073 секунды на авиабилетах и падение вызовов протокола с 1 092 до 101 — не магия, а меньше работы на шаг. Ставим 8,1 из 10: за архитектуру, объяснимость решений и открытые замеры, минус — за узкий охват контролов и слабую статистику публичного сравнения.
Сравнить браузерных агентов
В каталоге Qantcore — обзоры браузерных и кодинг-агентов по одной методике: возможности, цена, ограничения.