Браузерная автоматизация давно упирается в одно и то же ограничение: инструменты вроде Playwright и Chrome DevTools Protocol (CDP) работают исключительно с DOM-деревом страницы. Всё, что операционная система рендерит поверх браузера — диалог печати после вызова window.print(), запрос прав доступа macOS, окно выбора сертификата в Windows, контекстное меню по правой кнопке мыши — для этих инструментов попросту не существует. Агент видит скриншот, модель понимает, что нужно сделать, но выполнить действие нечем.

AWS решает эту проблему через OS Level Actions в сервисе AgentCore Browser. Новый набор действий передаётся через уже существующий API InvokeBrowser и работает на уровне операционной системы, а не браузерного слоя. Каждый вызов содержит ровно одно действие и возвращает статус SUCCESS или FAILED. Сессия идентифицируется через заголовок x-amzn-browser-session-id, что позволяет привязывать OS-команды к конкретному браузерному сеансу.

ДействиеОбязательные поляНеобязательные поляПримечание
mouseClickx, y, button, clickCountПо умолчанию: текущая позиция, LEFT, один клик. clickCount: 1–10
mouseMovex, yПеремещает курсор к координатам
mouseDragendX, endYstartX, startY, buttonПеретаскивание. button по умолчанию LEFT
mouseScrollx, y, deltaX, deltaYdeltaY отрицательный = прокрутка вниз. Диапазон: −1000 до 1000
keyTypetextНабор строки. Максимум 10 000 символов
keyPresskeypressesНажатие клавиши N раз. presses: 1–100, по умолчанию 1
keyShortcutkeysМассив клавиш. До пяти клавиш, например ["ctrl", "a"]
screenshotformatСнимок всего рабочего стола. Возвращает PNG в base64

Всего поддерживается восемь действий, разбитых на три группы. Управление мышью включает mouseClick, mouseMove, mouseDrag и mouseScroll. Координаты для mouseClick необязательны — если их не указать, клик происходит в текущей позиции курсора. Прокрутка принимает значения deltaY от −1000 до 1000, где отрицательные значения соответствуют прокрутке вниз. Клавиатурный ввод разделён на три действия: keyType для набора строк длиной до 10 000 символов, keyPress для повторного нажатия одной клавиши (до 100 раз) и keyShortcut для одновременного нажатия до пяти клавиш — например, ["ctrl", "a"] для выделения всего текста. Восьмое действие — screenshot — единственное, которое возвращает данные: полный снимок рабочего стола в виде PNG в кодировке base64, включая всё, что находится за пределами окна браузера.

Скриншот захватывает весь рабочий стол целиком, включая нативные диалоги ОС, и возвращает PNG в кодировке base64.

Центральный паттерн работы — цикл «действие → скриншот → реакция». Агент выполняет действие, запрашивает скриншот, отправляет его в мультимодальную модель, получает инструкцию и переходит к следующему шагу. Такой подход позволяет реагировать на динамический интерфейс: нативные диалоги могут появляться в середине рабочего процесса, и агент их увидит через скриншот и сможет с ними взаимодействовать.

Для начала работы требуются два клиента AWS SDK: bedrock-agentcore-control для управления ресурсами браузера и bedrock-agentcore для отправки действий во время сессии. Роль IAM должна иметь разрешения bedrock-agentcore:InvokeBrowser, StartBrowserSession и StopBrowserSession. Функция доступна без дополнительной настройки для новых и существующих конфигураций AgentCore Browser в регионе us-west-2.

Контекст важен: проблема нативных диалогов — давняя боль в enterprise-автоматизации. Корпоративные веб-приложения нередко вызывают системные окна при работе с файлами, сертификатами или принтерами, и именно в таких сценариях роботизированные процессы ломаются в продакшне, хотя в тестовой среде всё работало. OS Level Actions закрывают этот gap, не требуя переписывать логику агента — достаточно добавить обработку скриншота и соответствующие вызовы API в существующий цикл автоматизации.