ai-agents-for-beginners

Создание агентов для использования компьютера (CUA)

Агенты для использования компьютера могут взаимодействовать с веб-сайтами так же, как человек: открывая браузер, исследуя страницу и предпринимая следующие лучшие действия на основе увиденного. В этом уроке вы создадите агента для автоматизации браузера, который ищет на Airbnb, извлекает структурированные данные о списках и определяет самый дешевый вариант проживания в Стокгольме.

Урок объединяет Browser-Use для навигации с помощью ИИ, Playwright и Chrome DevTools Protocol (CDP) для управления браузером, Azure OpenAI для визуального мышления и Pydantic для структурированного извлечения.

Введение

В этом уроке будут рассмотрены:

Цели обучения

После завершения этого урока вы будете уметь:

Пример кода

В уроке представлен один блокнот-учебник:

Требования

Установка

Установите пакеты, используемые в блокноте:

pip install browser_use playwright python-dotenv
playwright install chromium

Установите переменные окружения Azure OpenAI, используемые в блокноте:

AZURE_OPENAI_ENDPOINT=...
AZURE_OPENAI_API_KEY=...
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME=...
# Необязательно: по умолчанию используется последняя версия API при пропуске
AZURE_OPENAI_API_VERSION=...

Обзор архитектуры

В блокноте продемонстрирован гибридный рабочий процесс автоматизации браузера:

  1. Chrome запускается с включенным CDP, чтобы Playwright и Browser-Use могли использовать одну и ту же сессию браузера.
  2. Агент Browser-Use выполняет задачи по открытой навигации, такие как открытие Airbnb, закрытие всплывающих окон и поиск Стокгольма.
  3. Активная страница исследуется с помощью структурированной схемы Pydantic для извлечения названий списков, цен за ночь, рейтингов и URL-адресов.
  4. Логика Python сравнивает извлечённые списки и выделяет самый дешевый результат.

Такой подход сохраняет гибкость рассуждений на основе зрения, которыми хорош Browser-Use, при этом обеспечивая детерминированное управление браузером, когда это необходимо.

Основные выводы и лучшие практики

Когда использовать агента или актера

Сценарий Использовать агента Использовать актера
Динамические макеты Да, ИИ может адаптироваться к изменениям страницы Нет, хрупкие селекторы могут сломаться
Известная структура Нет, агент работает медленнее прямого управления Да, быстро и точно
Поиск элементов Да, естественный язык хорошо работает Нет, нужны точные селекторы
Контроль времени Нет, менее предсказуемо Да, полный контроль над ожиданиями и повторными попытками
Сложные рабочие процессы Да, справляется с неожиданными состояниями UI Нет, требует явных ветвлений

Лучшие практики Browser-Use

  1. Начинайте с агента для исследования и динамической навигации.
  2. Переключайтесь на прямое управление страницей, когда взаимодействие становится предсказуемым.
  3. Используйте структурированные модели вывода, чтобы извлечённые данные были валидными и типобезопасными.
  4. Стратегически добавляйте задержки после действий, вызывающих видимые изменения интерфейса.
  5. Делайте скриншоты во время итераций, чтобы упростить отладку сбоев.
  6. Ожидайте изменений на сайтах и разрабатывайте стратегии резервного копирования для всплывающих окон и сдвигов макета.
  7. Сочетайте паттерны агента и актера для получения одновременно гибкости и точности.

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

Агенты браузера работают на живых сайтах, поэтому им нужны более строгие границы, чем скриптам, которые только вызывают известное API. Перед переходом от демонстрации в блокноте к реальному рабочему процессу определите ограничения того, что агент может видеть, на что нажимать и что отправлять.

  1. Ограничьте среду просмотра. Запускайте агента в выделенном профиле или песочнице браузера и ограничьте его только необходимыми доменами.
  2. Разделяйте наблюдение и действия. Позвольте агенту сначала искать, читать и извлекать данные; требуйте явного шага подтверждения перед отправкой форм, сообщений, бронированиями, покупками, удалениями записей или изменениями настроек аккаунта.
  3. Не включайте секреты в подсказки и логи. Не размещайте пароли, платежные данные, сессионные куки или личные данные в контексте модели. Позвольте пользователю выполнять аутентификацию и скрывать чувствительные поля в логах.
  4. Обрабатывайте содержимое страницы как недоверенный ввод. Сайт может содержать инструкции, предназначенные для агента, а не для пользователя. Агент должен игнорировать текст страницы, который предлагает изменить цель, раскрыть данные, отключить защиту или перейти на нерелевантные сайты.
  5. Используйте детерминированные проверки на рискованных этапах. Проверяйте текущий URL, заголовок страницы, выбранный элемент, цену, получателя и краткое описание действия с помощью кода перед запросом подтверждения у пользователя.
  6. Устанавливайте бюджеты и условия остановки. Ограничивайте количество действий, попыток, вкладок и времени, которое агент может использовать. Останавливайтесь, когда состояние страницы неоднозначно, вместо того чтобы продолжать нажимать.
  7. Записывайте полезные доказательства, а не всё подряд. Сохраняйте краткие описания действий, отметки времени, URL, описания выбранных элементов и ссылки на скриншоты, чтобы можно было проанализировать ошибки без хранения лишнего чувствительного содержимого страниц.

В примере с Airbnb безопасный стандарт — искать списки и извлекать цены. Вход в систему, контакт с хозяином или завершение бронирования должны быть отдельными действиями с одобрением пользователя.

Примеры из реальной жизни

Пример из реальной жизни: Microsoft Project Opal

Агент, которого вы создаете в этом уроке — это небольшая локальная версия агента для использования компьютера (CUA) — программы, которая управляет браузером так, как это сделал бы человек. Microsoft внедряет эту же идею для предприятий с помощью Project Opal (Frontier), функции в Microsoft 365 Copilot.

С Project Opal вы описываете задачу, и агент выполняет её от вашего имени, используя использование компьютера на защищенном облачном ПК Windows 365, работая с браузерными приложениями, сайтами и данными вашей организации. Он работает асинхронно в фоновом режиме, и вы можете управлять процессом или взять управление в любой момент. Примеры заданий:

Opal — полезный пример того, как выглядит производственный, надежный агент для использования компьютера — и он дополняет концепции из предыдущих уроков:

Концепция из курса Как Project Opal её реализует
Человек в цикле (Урок 06) Opal приостанавливается для ввода учетных данных, чувствительных данных или неоднозначных инструкций и никогда не вводит пароли и не отправляет формы без явного подтверждения. Вы можете взять управление и вернуть управление во время выполнения задачи.
Надежные и безопасные агенты (Уроки 06 и 18) Работает в изолированном Windows 365 Cloud ПК, по умолчанию только в браузере (остальной доступ к компьютеру заблокирован, обеспечивается через Intune), использует вашу идентичность, чтобы получить доступ только к разрешенным ресурсам, и ведет журналы всех действий для аудита.
Планирование и метапознание (Уроки 07 и 09) Opal сначала создает план выполнения задачи, затем контролирует свои рассуждения на каждом шаге и приостанавливается при обнаружении подозрительной активности.
Повторно используемые возможности / инструменты (Урок 04) Навыки позволяют писать инструкции для повторяемых заданий (импортируемые из .md файла или написанные в Opal) и использовать их в разных разговорах.

Доступность: Project Opal сейчас доступен пользователям в рамках программы раннего доступа Frontier с подпиской Microsoft 365 Copilot, и ваш администратор должен завершить настройку. Поскольку это экспериментальная функция Frontier, возможности могут меняться со временем.

Дополнительные ресурсы

Предыдущий урок

Изучение Microsoft Agent Framework

Следующий урок

Развертывание масштабируемых агентов


Отказ от ответственности: Этот документ был переведен с использованием сервиса машинного перевода Co-op Translator. Несмотря на наши усилия по обеспечению точности, имейте в виду, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обратиться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования этого перевода.