Практычныя прытамулкі: Чаму агенты AI любяць ствараць веб-браузеры?
Практычныя прыказкі: Чаму агенты AI любяць ствараць веб-браузеры? — пасловы, перакантрольванні та месцы для вставкі коду для команд, якія выкарыстоўваюць гэты патэрн.
Наступныя прыміткі паказваюць практычны шлях для розуміння тэмы «Чаму AI-агенты любяць ствараць веб-браузеры?». Акцэнт ставіцца на контракты, перакрычанняя і месця для коду, а не на мотывацыйныя аспекты. Калі працуеце на стадіўцы агледку, спачатку запісайте контракт: неабходныя даны, сігнал успеху і тое, што выканаецца у разе частковага невыпалення. Такі список дапамагае заліцварыць пазнейшыя змены ў кодзе. Документавайце як «шчаслівы» шлях, так і шлях вяснавання. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў є частью продукту, а не пазнейшым дапрацоўкам.
Што на самай працэ ствараюць AI-агенты, калі ствараюць браузер?
Этап «Што такое агенты AI» працюе найкраща, калі яго розглядаць як вимерную плошчу. Запісаўце адна ідеальная транскрыпцыя, адзін прыклад неудачы і прыметку па адкату перш чым расширваць масштаб. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выходзіць, прычына неудачы павінна вказваць на адную адпаведальнасць, а не на заплутаны ланцюг задач. Рэзервавайце стан графа ў простаму і типізаванаму формате. Вкладныя структуры маскуюць, який вузол запісаў канкрэтны поле, і спакоююць працу пасля перарываў.
Адкрытый веб не ёсць API
Этап «Адкрытыя веб» працюе наўсёрэйш адкулькі ён спрыяе яго вимеры. Зафіксавце адны ідеальны прыклад, адну справу з бягам і прыметку па вярнэнню да пачатковага стану пры расшырэнні масштаба. Спрыяйце цему этапу як даговору межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Даўце назвы артыфактам, задаце критэрыя успеху і не прымайце часткова завершаныя рэзультаты без паведамлення. Храніце стан графа ў простым і типаванам формате. Вкладзеныя блокі маскуюць інфармацыю пра тое, канферы які вузел запісаў канкрэтны поле, і спакшваюць продажчыку роботу пасля перарываў.
open(url)
click(selector)
fill(selector, text)
wait_for(selector)
extract(selector)
go_back()
screenshot()
Чаму дзейнікі з довгым часом выканання зменяюць архітектуру
Этап «Прычыны змены дзеянняў, якія выконваюцца дыягональна», работае наўздоўж калі яго спрыятарабатваць як мерыемую паверхню. Зафіксавайце адны ідеальны транскрыпт, адзін прыклад неудачы і прыметку па адвярненню змены перш чым расширваць масштаб. Запісвайце час выконання і кост токенаў або запытаў па боку функцыйнальных рэзультатаў. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмаверсіі ў спяльныя среды. Храніце стан графа ў простам і типаваным формате. Вкладзеныя блокі маскуюць інфармацыю пра тое, який вузел запісаў канкрэтны поле, і спакшваюць продажчыку працаваць пасля перарываў. Этап «Прычыны змены дзеянняў, якія выконваюцца дыягональна», работае наўздоўж калі яго спрыятарабатваць як мерыемую паверхню. Зафіксавайце адны ідеальны транскрыпт, адзін прыклад неудачы і прыметку па адвярненню змены перш чым расширваць масштаб. Дакументавайце як шлях успеху, так і шлях вяснавання разам. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.
"Find the current exchange rate."
"Look up this company's homepage."
"Find the opening hours of this restaurant."
Калі штучныя інтэлектуальныя агенты заменяюць пошук па кроках на скрыпт на Python?
Для таго, калі АІ-агенты выканаюць свае задачы, пярэд змінайом код неабходна ўзначыць вхідныя даны, адпаведальнага за крок і критэрыя завершэння. Аператары должны магчымае перзапускать крок з вядомай точкі контролю, не прабуючы спадарацца прыватны стан. Лепш выбіраць маленькія, тэставаныя елементы заместо величзючых скрыптов. Калі крок не выканаўся, прычына неудачы павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Раздзеляйце стварэнне кліента ад цыклу перадачы паведамленняў, каб было можна змяніць прадаўцоў без перапісвання машыны стану размовы.
async function getNewProducts(query) {
const browser = await playwright.chromium.connectOverCDP(
`wss://${AUTH}@brd.superproxy.io:9222`,
);
const page = await browser.newPage();
await page.goto("https://example.com/products");
await page.fill("input[name=q]", query);
await page.click("button[type=submit]");
await page.waitForSelector(".results");
return extractResults(page);
}
Чаму АІ-агенты зберагаюць стан у браузеры, а не ў вікні контэкста?
Для стадіі «Чаму AI-агенты», перш чым зменяць код, неабходна дэфініцыя вхідных дадзеных, адпаведнага адпаведальнага за крок і крэтарыяў завершэння. Аперацыйныя працавнікі должны магчымае запускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Спрыяйце цій стадіі як кантракту межаў вхідных дадзеных і паверыганых выходных рэзультатаў. Даўце назвы артыфактам, задаць крэтарыяў успеху і адмовіцеся ад тыхнага частковага завершэння без паведамлення. Забезпечыце людзкія апраўданні для тых крокаў, якія выкарыстоўваюць грошы або зменяюць данні для працы. Працэс складання коду не ўзроўнаважваецца з павнасцю задачі з точкі зору бізнесу.
Якія ўгрозы безпецы выклікае наданне AI-агенту прыглядача?
У стадії «Якія безпека?» неабходна ўвазець інпутаў, адпаведальнага за крок і крэтарыяў завершэння пры зміне коду. Аперацыйныя працавнікі павінны магчымаць перзапуск кроку з вядомай точкі контролю без адгадванняя схованага стану. Запісваць час выконання і косць токенаў або запытаў разам з функцыйнаімі рэзультатамі. Відразлівае паказанне косцоў запобегае неспадзяваным рачункам, калі пацек пераходзіць з дэмавай среды ў спадзеланыя среды. Пры выконанні дзеянь, якія коштаюць грошы або зменяюць данні ў працэсе, неабходна людзкая апраўда. Прыўязкі ў часе компілявання не ўзначаюць павноты роботы продукту. У стадії «Якіяя безпека?» неабходна ўвазець інпутаў, адпаведальнага за крок і крэтарыяў завершэння пры зміне коду. Аперацыйныя працавнікі павінны магчымаць перзапуск кроку з вядомай точкі контролю без адгадванняя схованага стану. Дакументаваць як «шчаслівы» пацек, так і пацек вяснавання. Перапрыбуткі, людзкія контрольныя пункты і обработка некоректных запытаў є часткай продукту, а не пасляднім дапрацоўкам.
Чаму неапрацоўваны HTML — гэта паслаблена інпут-даннына для AI-агентаў?
Калі працуеце над этапам «Чаму неапрацоўваны HTML?», спачатку запісайте умовы викорыстання: неабходныя інпут-даннына, сігнал успеху та тое, што выходзіць на падчасныя неудачы. Такі чэк-ліст дапамагае заставаць пазнейшыя змены коду чыстымі. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшоў, неудача должна вказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Стварайте контрольныя пункты пасля дорогіх крокаў. Програма не должна зноў платіць за той самы вызов LLM, калі аператар праканае пазнейшы вузел.
Title: Search results
Links:
[1] Home
[2] Next page
Forms:
search: input[name=q]
Buttons:
submit: button[type=submit]
Main content:
...
- navigation
- link "Home"
- link "Search"
- main
- heading "Results"
- list
- listitem "Item 1"
- listitem "Item 2"
Калі AI-агенту следуе абмежыцца толькі HTTP?
Калі працюеце над этапам «Калі трэба викорыстоўваць AI», спачатку запісайце кантракт: неабходныя даны, сігнал успеху і тое, што выходзіць у разе частковай нявыполненасці. Такі список контроля дапамагае залічыць зямнымі пазнейшыя змены ў кодзе. Спрэцьвачайце гэты этап як кантракт межаў між вхіднымі данымі і перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаць тэсты на успех і не падзеўляйцеся частковым завершэнням без паведамлення. Стварайце контрольныя точкі пасля дорогіх крокаў. Програма для продакцыі не должна занова ставіць плату за той самы вызов LLM, калі аператар праканае пазнейшы вузел.
GET /api/products?page=2
human interface
↓
browser automation
↓
discovered workflow
↓
direct HTTP/API calls ← only if the site still allows it
Чы робяць даны для навчання AI схільным да браузераў?
Калі працуеце над стадзіяй «Чы гэтыя трэнінгавыя даны маюць уперакладанне?», спачатку запісайце умовы вярбавання: неабяжлівыя даннэ, сігнал успеху і тое, што выходзіць пад часты няудачны результат. Такі список дапамагае заліцвачыць пазнейшыя змены ў кодзе. Запісвайце час выканання і кост токеноў або запытаў праза функцыйнае рэзультат. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі працэс пераходзіць з дэмавай версіі ў спяльныя среды. Ствараце контрольную точку пасля дорогіх крокаў. Функцыя вярнення не павінна зноў нарахоўваць косты той самай вызову LLM, калі аператар прабуюць зноў выконаць пазнейшы элемент. Калі працуеце над стадзіяй «Чы гэтыя трэнінгавыя даны маюць уперакладанне?», спачатку запісайце умовы вярбавання: неабяжлівыя даннэ, сігнал успеху і тое, што выходзіць пад часты няудачны результат. Такі список дапамагае заліцвачыць пазнейшыя змены ў кодзе. Дакументавайце як успішны, так і патэнцыйны шляхы роботы. Прабуры, людзкія контрольныя пункты і обработка некоректных запытаў ёсць часткай продукту, а не пазнейшым дапрацоўкам.
Агенты AI не ствараюць прыгрузачы — яны ствараюць адаптэры з найвышэйшым практычным рынкам вяртання.
Агенты AI працююць найэфектывней, калі іх спрыяваць як меркаваную структуру. Запісаўце адна ідеальная транскрыпцыя, адзін прыклад неудачы і прыметкі па адвярненню роботы пры расшырэнні масштаба. Валіце вялікія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выходзіць, прычына неудачы павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Рэзультаты роботы графа павінны быць простымі та з адазначанням типа. Вярнутыя структуры маскуюць інфармацыю пра тое, який вузел запісаў кожны поле, і спакшуюць продовжэння роботы пасля перарываў.
The task requires the web.
↓
The web exposes a browser-shaped interface.
↓
The agent needs a way to operate that interface.
↓
Repeated operations make ad-hoc reasoning expensive.
↓
The agent writes reusable tools.
↓
Those tools accumulate state, retries, and abstractions.
↓
The tools start looking like a browser.
↓
Known workflows get compiled into deterministic code.
↓
The page changes so the agent re-explores.
↓
If an API exists, use it to get the data.
If not, and the site allows it, fall back to regular HTTP.
If not, stay on the browser.
Чэк-ліст для эксплуатацыі
Для стадіі чэк-ліста для эксплуатацыі неабходна з’явіць вхідныя даны, адпаведальнага за крок і крэтырыя завершэння роботы пры зміне коду. Аператары павінны магчымаць перзапуск крока з вядомай точкі контролю без неабясненняя схованага стану.
Зберагаюце канфігурацыю пазначкі ўнаточы ад коду прыемліка. Файлы сяродавішча, храненні секрэтных дадзей і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць аудыт без неабяжнага чытання всіх элементаў системы.
Неабяжна трэба атрымваць падтвердзенне чалавека для тых элементаў, якія витрачаюць грошы або зменяюць данні ў працэсе вырабоцтва. Прыўязкі, створаныя ў час компіляцыі, не є падтверджэнням полныя адпаведнасці продукту выклікам бізнесу.
Напісце кароткі путаводзік: як зменяць клучы, як спрачыслаць чергу, як анулюваць пярэдніе змены.
Дакументаваць трэба як шляхы правільнай роботы, так і шляхі вярнення да стану пярэдней роботы. Практыкі перапрыбутку, людзкія контрольныя пункты і обработка некоректных дадзей є часткай самага продукту, а не чымсь, што дадаецца пазней.
Неабяжна трэба атрымваць падтвердзенне чалавека для тых элементаў, якія витрачаюць грошы або зменяюць данні ў працэсе вырабоцтва. Прыўязкі, створаныя ў час компіляцыі, не є падтверджэнням полныя адпаведнасці продукту выклікам бізнесу.
Перш чым запускать стак, заморозьце версіі, зафіксавайце ідеальны транскрыпт для критычнага шляху і паказвайце спосабы атрыбутавання. У спільных сэрвісах неабходны ліміты частоты запытоў, пераканання ў правільнасці арендавання ресурсоў і чыста вялічына адпаведальнага адносу за ротацыю секрэтных дадзенняў. Лепш выбіраць простую надзею на надзейнасць, чым хітрыя експерыментальныя дэманстрацыі.
Прымечанне для 674251d48780: не кладзіце ключы прадаўцаў у репазітарый, задаце ліміт токена на кожную сесію і зберагачыце транскрыпты празаўсюды з фіксатрамі ацэнкі, каб пазнейшыя замены модэляў заставаліся порównаннімы.
Прымечанне па забезпечэнні надзейнасці 0 стадыі работае лепш, калі яго спрыяваць як мерыемую плошчу. Зафіксавайце адны ідеальны транскрыпт, адзін кейс абыякавасці і прымечанне па атрыбутаванні перш чым расширваць масштаб. Канфігурацыю трэба зберагачыць празаўсюды ад коду прыемлівача. Файлы сэрвісаў, хранільнікі секрэтных дадзенняў і флагі функций должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць аудыт без неабходнасці чытання всей структуры.
Дзеянне паўжчання 0/680: звярніце увагу на час выканання, клас памылакі і колькасць выкорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазыраннях, выявіце, чы рэшацца застаўляць змяну.
Для першага этапу запісу паўжчання 2 адзначыце вхідныя даны, адпаведальнага за крок і критэрыя завершэння пры перамены коду. Аперацыйныя працавнікі должны магчымае перадзваніць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Валіце маленькія, тэставальныя елементы працэў над велікімі скрыптамі. Калі крок не выйшоў, прычына неудачы должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцужок задач.
Дзеянне паўжчання 1/680: звярніце увагу на час выканання, клас памылакі і колькасць выкорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазыраннях, выявіце, чы рэшацца застаўляць змяну.
Калі працуеце над 2-м ўрадземліваннем, спачатку запісайце умовы кантракту: неабяжлівыя даны, сігнал успеху і тое, што выходзіць пад частым неудачам. Такі список дапамагае заліцварыць пазнейшыя змены ў кодзе. Запісвайце час выканання і вартасьць токена або запытку пад функцыйнальнымі рэзултатамі. Відразы вартасці з самага пачатку запобегае неспакою, калі процес пераходзіць з дэмаверсіі ў спяльныя среды.
Дзеянні ўрадземлівання 2/680: замерьце час выканання, класію каштоўкаў і витраты токена для гэтага пункту, а потым выявіце, чы хацеце застаўці змену на адной фіксаванай сэтке пытанняў, а не на адной лічбе.
2-й ўрадземліванні лепей працюе, калі яго спрыямаць як меравальную плошчу. Запісайце адну ідеальную транскрыпцыю, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштаб. Дакументавайце як успішны, так і вярнэнчы паты. Перапрыбуткі, людзкія контролі і обработка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.
Дзеянне паўжасткі 3/680: звярніце увагу на час выканання, класы паказчыкаў і колькасць токенаў, якія былі выкарыстаны для гэтага зазначэння, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на індывідуальных прыкладах, выявіце, чы рэшацься застаўляць змяну.
Для 4-го этапа паўжасткі неабходна перад змянай коду чытко апісаць вхідныя даны, адпаведальнага за выкананне крока і критэрыяы завершэння. Аперацыйныя працавнікі павінны магчымае перадзванаць гэты крок з вядомай точкі контролю, не прабуючы спадарацца пра схованы стан. Штодзе гэты этап трэба спрыяць як кантракт межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Назвіце всі неабходныя элементы, апісаць критэрыяы успеху і не прабывайце прыймаць часткова завершаныя рэзультаты без падтверджэння.
Дзеянне паўжасткі 4/680: звярніце увагу на час выканання, класы паказчыкаў і колькасць токенаў, якія былі выкарыстаны для гэтага зазначэння, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на індывідуальных прыкладах, выявіце, чы рэшацься застаўляць змяну.
Калі працуеце над 5-м падземам прыемкі забезпечэння безпекі, спачатку запісайце умовы кантракту: неабяжлівыя даны, сігнал успеху і тое, што выходзіць на частым неудачам. Такі список контроля дапамагае залічыць пазнейшыя змены ў кодзе чыстымі. Зберагаюце настройкі пазначыльна ад коду прыемлена. Файлы сераўіса, хранальнікі секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць аудыт без неабяжлівага чытання всей структуры.
Дзялёўка забезпечэння безпекі 5/680: вымерайце час выканання, класію памылак і колькасць викорыстоўваных токенав для гэтай прыемкі, а пасля выберайце, чы робіць змену на адной пазначанай базе пытанняў, а не на адной лячбе.
5-й падзем прыемкі забезпечэння безпекі работае лепей, калі яго спрыяваць як вымеральную паверхню. Запісайце адны ідеальны прыклад работы, адну справу неудачы і прыемку для вярнення да пачатковага стану, прычым расшырюючы сферу дзеяння. Валіце маленькія, тэставаныя елементы замест большых скрыптав. Калі якісь крок не выйшае, неудача должна адносіцца да адной адпаведальнасці, а не да заплутанага ланцоўка дзеяння.
Дзеянне паўжасткі 6/680: звярніце увагу на час выканання, класы памылак і колькасць токенаў, выкорыстаных для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набора пытанняў, а не на індывідуальных прыкладах, выявіце, чы рэшацца застаўляць змяну.
Для 7-го этапа паўжасткі неабходна перад змянай коду чытко визначыць вхідныя даны, адпаведальнага за выкананне крока і критэрыяы завершэння. Аперацыйныя працавнікі должны магчымае перадзваначыць гэты крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Запісвайце час выканання, а таксу токенаў чы запытак праза функцыйнае рэзультат. Відкрытая інформацыя пра витраты запобегае неспакою, калі процес пераходзіць з дэмаверсіі ў спяльныя среды.
Дзеянне паўжасткі 7/680: звярніце увагу на час выканання, класы памылак і колькасць токенаў, выкорыстаных для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набора пытанняў, а не на індывідуальных прыкладах, выявіце, чы рэшацца застаўляць змяну.
Калі працуеце над 8-м стадзіям заўважэння па забезпечэнню безпекі, спачатку запісайце угоду: неабяжныя вхідныя даны, сигнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список пераконтроўкаў дапамагае заліцвачыць пазнейшыя змены ў кодзе. Документавайце як шлях успеху, так і шлях вяснавання. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў є часткай продукту, а не пазнейшым дапрацоўкам.
Дзеянні па забезпечэнню безпекі 8/680: вымерайце час выканання, класію памылак і выкарыстанае колькасць токенав, а потым выявіце, чы хацеце застаўіць змену на адной фіксаванай сэтке пытанняў, а не на адной лячбе.
8-я стадзія заўважэння па забезпечэнню безпекі працуе лепей, калі яе спрыямаць як вимерную паверхню. Зафіксуйце адна ідеальная транскрыпцыя, адзін прыклад невыпання і заўважэння па анулюванні роботы, прычаму расшырюйце масштаб. Спрыяйце гэтай стадзіі як угоды межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаце перакананні успеху і адмовіцеся ад тыхоўскага частковага завершэння.
Дзеянні паўжасткі 9/680: звярніце увагу на час выканання, клас памылак і колькасць викорыстоўваных токенав для гэтага зьязку, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на індывідуальных прыкладах, выявіце, чы хацяце застаўіць гэтыя змены.