Създаване на агенти за компютърна употреба (CUA)
Агентите за компютърна употреба могат да взаимодействат с уебсайтове по същия начин, по който го прави човек: като отворят браузър, инспектират страницата и предприемат следващото най-добро действие въз основа на това, което виждат. В този урок ще създадете агент за автоматизация на браузър, който търси в Airbnb, извлича структурирани данни за обявите и идентифицира най-евтиното настаняване в Стокхолм.
Урокът комбинира Browser-Use за навигация, управлявана от изкуствен интелект, Playwright и Chrome DevTools Protocol (CDP) за контрол на браузър, Azure OpenAI за разсъждаване с възможности за зрение и Pydantic за структурирано извличане.
Въведение
Този урок ще обхване:
- Разбиране кога агентите за компютърна употреба са по-подходящи от автоматизация само с API
- Комбиниране на Browser-Use с Playwright и CDP за надеждно управление на жизнения цикъл на браузъра
- Използване на Azure OpenAI с възможности за зрение и структурирано извличане с Pydantic за получаване на данни за обяви от динамични уеб страници
- Решаване кога да се използва работен процес с приоритет на агента, актьора или хибриден браузър автоматизация
Цели за учене
След завършване на този урок ще знаете как да:
- Конфигурирате Browser-Use с Azure OpenAI и Playwright
- Създадете работен процес за автоматизация на браузър, който навигира реален уебсайт и обработва динамични потребителски интерфейс елементи
- Извличате типизирани резултати от видимо съдържание на страницата и ги използвате за бизнес логика
- Избирате между модели агент и актьор според това колко предсказуема е задачата в браузъра
Примерен код
Този урок включва един тетраден урок:
- 15-browser-user.ipynb: Стартира сесия на Chrome чрез CDP, търси обяви в Airbnb за Стокхолм, извлича цени с Browser-Use vision и връща най-евтиния вариант като структурирани данни.
Предварителни изисквания
- Python 3.12+
- Конфигурирано Azure OpenAI разполагане в средата ви
- Локално инсталиран Chrome или Chromium
- Инсталирани зависимости на Playwright
- Основни познания по асинхронен Python
Настройка
Инсталирайте пакетите, използвани в тетрадката:
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=...
Преглед на архитектурата
Тетрадката демонстрира хибриден работен процес за автоматизация на браузър:
- Chrome стартира с активиран CDP, така че и Playwright, и Browser-Use да могат да споделят една и съща браузърна сесия.
- Агентът Browser-Use поема задачи с отворена навигация като отваряне на Airbnb, затваряне на изскачащи прозорци и търсене на Стокхолм.
- Активната страница се инспектира с структурирана Pydantic схема, за да се извлекат заглавия на обяви, цени за нощ, оценки и URL адреси.
- Логиката на Python сравнява извлечените обяви и подчертава най-евтиния резултат.
Този подход запазва гъвкавото, базирано на зрение разсъждение, в което Browser-Use е добър, като същевременно ви дава детерминистичен контрол върху браузъра, когато имате нужда.
Основни изводи и най-добри практики
Кога да използвате агент спрямо актьор
| Сценарий |
Използване на агент |
Използване на актьор |
| Динамични оформления |
Да, AI може да се адаптира към промени в страницата |
Не, крехките селектори могат да се счупят |
| Позната структура |
Не, агентът е по-бавен от директния контрол |
Да, бърз и прецизен |
| Намиране на елементи |
Да, естественият език работи добре |
Не, изискват се точни селектори |
| Контрол на времето |
Не, по-малко предсказуем |
Да, пълен контрол над изчаквания и повторения |
| Сложни работни процеси |
Да, обработва неочаквани състояния на UI |
Не, изисква явни разклонения |
Най-добри практики за Browser-Use
- Започнете с агент за проучване и динамична навигация.
- Превключете към директен контрол на страницата, когато взаимодействието стане предсказуемо.
- Използвайте структурирани модели за изход, за да гарантирате, че извлечените данни са валидирани и типово безопасни.
- Добавяйте забавяния стратегически след действия, които задействат видими промени в интерфейса.
- Правете екранни снимки по време на итерации, за да улесните отстраняването на грешки при неуспехи.
- Очаквайте уебсайтовете да се променят и разработвайте резервни стратегии за изскачащи прозорци и смени в оформлението.
- Смесвайте модели агент и актьор, за да получите както гъвкавост, така и прецизност.
Защитни мерки за браузърни агенти
Браузърните агенти работят на живи уебсайтове, затова им трябват по-строги ограничения в сравнение със скрипт, който просто извиква известен API. Преди да преминете от демонстрация в тетрадка към реален работен процес, дефинирайте контролите за това какво агентът може да вижда, клика и подава.
- Ограничете браузърната среда. Стартирайте агента в отделен браузър профил или пясъчник и го ограничете до домейните, необходими за задачата.
- Отделете наблюдението от действието. Нека агентът първо търси, чете и извлича данни; изисквайте изрично одобрение, преди да подава формуляри, изпраща съобщения, резервира пътуване, прави покупки, изтрива записи или променя настройки на акаунта.
- Не включвайте тайни в подканите и записите. Не поставяйте пароли, платежни данни, бисквитки на сесии или сурови лични данни в контекста на модела. Нека потребителят поеме автентикацията и изчисти чувствителните полета от логовете.
- Отнасяйте се към съдържанието на страницата като ненадежден вход. Уебсайтът може да съдържа инструкции, предназначени за агента, а не за потребителя. Агентът трябва да игнорира текст на страницата, който му казва да промени целта си, да разкрие данни, да деактивира защитни механизми или да посети несвързани сайтове.
- Използвайте детерминистични проверки при рискови стъпки. Потвърждавайте текущия URL, заглавието на страницата, избрания елемент, цената, получателя и обобщението на действието с код преди да изисквате одобрение от потребителя за финалната стъпка.
- Поставете бюджети и условия за спиране. Ограничете броя на действия, опити, раздели и минути, които агентът може да използва. Спирайте, когато състоянието на страницата е двусмислено, вместо да продължавате да кликвате.
- Записвайте полезни доказателства, а не всичко. Съхранявайте обобщения на действия, времеви марки, URL адреси, описания на избрани елементи и препратки към екранни снимки, така че неуспехите да могат да бъдат преглеждани без да се съхранява излишно чувствително съдържание на страницата.
В примера с Airbnb безопасният стандарт е да се търсят обяви и да се извличат цени. Влизането в акаунт, контакт с домакин или завършване на резервация трябва да са отделни действия, одобрени от потребителя.
Приложения в реалния свят
- Резервации на пътувания и наблюдение на цени
- Сравнение на цени и проверка на наличности в електронната търговия
- Структурирано извличане от динамични уебсайтове
- Тестване и верификация на UI с възможности за гледане
- Наблюдение и алармиране на уебсайтове
- Интелигентно попълване на формуляри през многостъпкови процеси
Пример от реалния свят: Microsoft Project Opal
Агентът, който създавате в този урок, е малка, локална версия на агент за компютърна употреба (CUA) — програма, която управлява браузър като човек. Microsoft носи тази идея в предприятието с Project Opal (Frontier), възможност в Microsoft 365 Copilot.
С Project Opal описвате задача и агентът работи от ваше име, използвайки компютърна употреба на защитен Windows 365 Cloud PC, оперирайки през уеб-базирани приложения, сайтове и данни на вашата организация. Той работи асинхронно на заден план, а вие можете да насочвате работата или да поемате контрол по всяко време. Примери за задачи включват:
- Управление на заявки за членство в групи за сигурност
- Събиране и валидиране на доказателства за проверки по съответствие
- Триаж на ИТ инциденти (актуализиране на статус на тикети, задаване на отговорници, затваряне на дубликати)
- Компилиране на данни в Excel за финансови отчети
Opal е полезен пример за това как изглежда продуктов, надежден агент за компютърна употреба — и затвърждава концепции от предишни уроци:
| Концепция в този курс |
Как Project Opal я прилага |
| Човек в цикъла (Урок 06) |
Opal спира за входни данни за влизане, чувствителна информация или неясни инструкции и никога не въвежда пароли или не подава формуляри без изрично потвърждение. Можете да поемете контрол и да се върнете към агента по време на задача. |
| Надеждни и сигурни агенти (Уроци 06 и 18) |
Работи в изолиран Windows 365 Cloud PC, по подразбиране браузър-базиран (достъп до друг компютър блокиран чрез Intune), използва вашата идентичност, за да има достъп само до упълномощена информация и записва всяко действие за одит. |
| Планиране и метакогниция (Уроци 07 и 09) |
Opal първо генерира план за задачата, след това наблюдава собственото си разсъждение при всяка стъпка и спира при откриване на подозрителна активност. |
| Преносими възможности / инструменти (Урок 04) |
Уменията позволяват да пишете инструкции за повтарящи се задачи (импортирани от .md файл или създадени с Opal) и да ги използвате в различни разговори. |
Налично: Project Opal в момента е достъпен за потребители в програмата за ранен достъп Frontier с абонамент Microsoft 365 Copilot и вашият администратор трябва да завърши настройка. Тъй като е експериментална функция, възможностите могат да се променят с времето.
Проверка на знанията
Тествайте разбирането си преди да преминете към следващия урок.
1. Кога агент базиран на браузър е по-подходящ от работен процес само с API?
Отговор
Използвайте браузърен агент, когато задачата зависи от това какво е видимо в уеб UI, сайтът не предоставя необходимия API или страницата се променя достатъчно често, че фиксираната логика на API или селектори ще е крехка. Ако съществува стабилен API за същата задача, предпочитайте API, защото обикновено е по-бърз, по-лесен за тестване и по-сигурен.
2. В хибриден работен процес кои части трябва да се поемат от агента и кои от директен код на Playwright?
Отговор
Нека агентът се занимава с отворена навигация и динамични състояния на UI, като намиране на правилната страница или затваряне на неочаквани изскачащи прозорци. Превключете към директен контрол с Playwright, когато структурата на страницата е известна и действието изисква прецизност, повторения, изчаквания или детерминистично валидиране.
3. В примера с Airbnb се намира обява, която потребителят може да иска да резервира. Какво трябва да се случи преди работният процес да влезе в акаунт, да контактува с домакин или да завърши резервация?
Отговор
Работният процес трябва да спре и да поиска изрично одобрение от потребителя. Преди това трябва да покаже ясна обобщена информация за избраната обява, текущия URL, цена, дати и планирано действие. Търсенето и извличането на цени могат да бъдат автономни; достъпът до акаунта, съобщенията, покупките и резервациите трябва да се одобряват от потребителя.
4. Уеб страница казва на агента да игнорира първоначалните си инструкции, да посети друг сайт и да разкрие запазени данни за достъп. Как трябва агентът да третира този текст?
Отговор
Трябва да го третира като ненадеждно съдържание на страницата, а не като инструкция от разработчик или потребител. Агентът трябва да остане в позволения домейн и обхват на задачата, да отказва да разкрива тайни и да избягва да следва текст, който променя целта, деактивира защитни механизми или го праща на несвързани сайтове.
5. Какви доказателства е полезно да се съхраняват, когато работи браузърен агент, и какво трябва да се избягва?
Отговор
Съхранявайте обобщения на действия, времеви марки, URL адреси, описания на избрани елементи, резултати от валидации и препратки към екранни снимки, за да могат изпълненията да бъдат преглеждани. Избягвайте съхранението на пароли, платежни данни, бисквитки на сесии, сурови лични данни или пълно съдържание на страницата, освен ако няма конкретна причина за съхранение и поверителност.
Допълнителни ресурси
Предишен урок
Изследване на Microsoft Agent Framework
Следващ урок
Разгръщане на мащабируеми агенти
Отказ от отговорност:
Този документ е преведен с помощта на AI преводачески услуга Co-op Translator. Въпреки че се стремим към точност, моля имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, произтичащи от използването на този превод.