Практычныя прытамулкі: пазнайомце з WebMCP – браузерным «двойнікам» MCP, які робяць агентаў AI точнейшымі
Практычныя прыказкі: пазнайомце з WebMCP – браузерным «двойнікам» MCP, які робяць агентаў AI болей точнымі: контракты, перакананні та слоты для коду для команд, які розробляюць MCP.
Існавайце гэта як пераклад ідэй з статті «Meet WebMCP: MCP’s Browser Cousin That Makes AI Agents More Accurate» для працавальнікаў: чыткія этапы, арганізаваныя блакіты для коду і прыметкі з восстанавлення, якія застаюцца пасля перадачы. Адгледжэнне працюе найкраща, калі яго спрыяваць як мерыемую плошчу. Запісаўце адна ідеальная транскрыпцыю, адзін прыклад неудачы і прыметкі з вярнення да пачатковага стану прычаму расшырэння масштаба. Спрыяйце гэты этап як даговор між вхіднымі дадзеннямі і паўнастацэннымі выходнымі рэзультатамі. Даўце назвы артыфактам, задаце критэрыя успеху і адмовіцеся ад беззвучнага частковага завершэння.
Чаму агентам патрэбна больш, чым проста «перагляд» DOM
Ёнколі ўжо чаму агентам патрэбна не толькі «перагляд» DOM, перад змянайом коду неабходна апрацаваць параметры, вялікога праваўніка крока і крэтырыя завершэння. Аперацыямі неабходна магчымасць паўтарнага запуску крока з вядомай точкі контролю, без неабясненага ведання прыхованага стану. Запісваць трываласць выконання і кост токена або запиту праза функцыональныя рэзультаты. Відкрытасць костаў з самага пачатку запобегае неспакойным рахункам, калі траекторыя пераходзіць з дэмавайнага сераўсу ў спяльныя среды. Автентыфікацыя выканаўцца ў шлюзе, а паўторная автарызацыя — у роўні дадзеных. Толькі токен-носіцель не є межай арендаванага ресурсу.
Што на самай працэ WebMCP
Ёнколі хочаце з’ясаваць, чым насправды ёстся WebMCP, перш чым зменяць код, неабходна дэфініцыя вхідных даных, адміністратара крока і крэтэрыяў завершэння. Аперацыёныя працавнікі должны магчымае перзапускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Конфігурацыю трэба залічыць параду ад коду прыкладнення. Файлы сераўіса, хранальнікі секрэтных данных і флагі функцый належаць у аднам месца, якое працавнікі можуць пераглядаць, не чытаючы весь ланцуг задач. Автентыфікацыя выконваецца на шлюзе, а парадновыя правы прызначаюцца на роўні дадзенняў. Сам токэн-носіцель не ёстся межай адпаведнага тэнантства.
Рэгістрацыя WebMCP на нашай веб-сайтове, па кроках
Для рэгістрацыі WebMCP на нашай веб-сайтазе, па кроках, перад змянайом коду неабходна ўзначыць параметры, адпаведальнага за крок і критэрыя завершэння. Аператары должны магчымаць перзапуск кроку з вядомай точкі контролю без неабясненняя схованага стану. Неабходна адначасовая документацыя як успішнаг, так і варыянтаг падходу. Перапрыбуткі, людзкія перакрыцця і обробка некоректных паведамленняў є часткай продукту, а не наступным этапам дапрацоўкі. Автентыфікацыя выкананае ў шлюзе, а прабачэнне прав на выкарыстоўвання — у плоскасці дадзеных. Толькі токэн-носільцы не є межай арендаванага ресурсу. Для рэгістрацыі WebMCP на нашай веб-сайтазе, па кроках, перад змянайом коду неабходна ўзначыць параметры, адпаведальнага за крок і критэрыя завершэння. Аператары должны магчымаць перзапуск кроку з вядомай точкі контролю без неабясненняя схованага стану. Спрыйміце гэты этап як кантракт межа параметрамі і перакананымі выходнымі дадзеннямі. Дайце назвы элементам, узначыце перакрыцця успеху і не прабачайце тыхнавальнага частковага завершэння.
Рэальны прыклад: Адзінство статусу замовлення
Калі працуеце з Адзінством статусу замовлення, спачатку запісайце умавы: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае заліцьварыцца пад змяны коду пазнейша. Запісвайце час выканання і кост токена або запыту праз адныя з функцыйнальных рэзультатаў. Відразы ведамае каштоўнасць запобегае неспакою, калі працэс пераходзіць з дамовай версіі ў спяльныя среды. Запісвайце назву адзінства, хэш параметраў, час затрымкі і рэзультат кожнага вызову. Без такога лёгкага следу дэбагаванне агента займае гадзіны.
await document.modelContext.registerTool({
name: 'get_order_status',
description: 'Look up orders within a given timeframe. Returns order number, shipping status, and current location.',
inputSchema: {
type: 'object',
properties: {
timeframe: {
type: 'string',
enum: ['today', 'yesterday', 'last_7_days', 'last_30_days', 'last_6_months'],
description: 'Timeframe for the order lookup.'
}
},
required: ['timeframe']
},
annotations: {
readOnlyHint: true,
consequentialHint: false,
untrustedContentHint: false
},
execute: async ({ timeframe }) => {
const response = await fetch(`/api/orders/status?range=${timeframe}`, {
headers: { 'Accept': 'application/json' }
});
const data = await response.json();
return JSON.stringify(data);
}
});
await document.modelContext.registerTool({
name: 'checkout_cart',
description: 'Completes checkout for the currently logged-in user\'s cart.',
inputSchema: {
type: 'object',
properties: {
paymentMethod: { type: 'string', description: 'Payment method selected by the user' }
},
required: ['paymentMethod']
},
annotations: {
readOnlyHint: false,
consequentialHint: true,
untrustedContentHint: false
},
execute: async ({ paymentMethod }) => {
const response = await fetch('/api/checkout', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ payment_method: paymentMethod })
});
return await response.text();
}
});
const tools = await document.modelContext.getTools();
console.log(tools);
const [tool] = await document.modelContext.getTools();
const result = await document.modelContext.executeTool(tool, '{"timeframe": "last_7_days"}');
Гэта тое, што на самай працы выходзіць, калі AI вядомае адзінство
Калі працуеце над матэрыялам «Што на самай працоўнае выглядае, калі AI выкарыстоўвае цей інструмент», спачатку запісайце умовы дагавору: неабходныя даны, сігнал успеху і тое, што выканаецца у разы частковага невялікога браку. Такі чэрнетак памагае залічыцца з пазнейшымі змянамі ў кодзе. Зберагаюце настройкі праза код прыемліка. Файлы сераўіса, хранільнікі секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць аудыт без неабходнасці чытання всей структуры. Зявляйце логі з назвай інструмента, хэшам параметраў, часам адклікання і рэзультатам кожнага вызову. Без такога следу дэбагаванне агента займае гадзіны.
Безпека — частка, якую лёгка прыхіліць
Калі працуеце над аспектамі безпекі — тым, які лёгкая працэйваць, спачатку запісайте угоду: неабяжлівыя данні, сигнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список контроля дапамагае заставіць пазнейшыя змены коду быць чыстымі. Документавайце як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкіе перакрыцця і обробка некоректных паведамленняў ёсць частью продукту, а не пазнейшым дапрацоўкам. Зявляйце логі з назвай інструмента, хэшам аргументаў, часам затрымкі і рэзультатам кожнага вызову. Без такога следу дэбаггін агента губіць гады. Калі працуеце над аспектамі безпекі — тым, які лёгкая працэйваць, спачатку запісайте угоду: неабяжлівыя данні, сигнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список контроля дапамагае заставіць пазнейшыя змены коду быць чыстымі. Спрыятлівайце гэтаму этапу як угодзе між вхіднымі даннемі і перакананымі выходнымі рэзультатамі. Даўайце назвы элементам, задаюце правіла пераканання успеху і адмовляйцеся ад мовчазнага частковага завершэння.
Які ў настаўшчыне статус падтрымкі браузераў
«Някі гэты час падтрымка браузера?» — гэта запитанне найкраща розглядаць як параметр, які можна вымерыць. Перш чым расширваць масштабы, неабяжна зафіксаваць адны ідеальны прыклад работы, адну ситуацыю неудачы і прыметкі па поверненню да пярвоначальнага стану. Таксама трэба фіксаваць часы выканання задач, а таксу косты токеноў чы выкарыстоўвання запытав, палягаючы ўсё гэта рядом з функцыйнальнымі рынкамі. Візуальная даступнасць костаў з’являецца ў раннім перыодзе, чым утрымліваюцца неспакойныя рахункі, калі працэс пераходзіць з дамовай версіі ў спяльныя сераўысы.
Абмежэнні, якія трэба мець на увазе
«Абсалютна неабяркласць, якую трэба прымнечваць» работае наяўна, калі яе спрыяваць як мерыемую плошчу. Запісаўце адна ідеальная версія, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштабы. Зберагаўце настройкі праза код аплікацыі. Файлы сяродавішча, хранільнікі секрэтных дадзеных і пазначкі функцый должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць без неабярклаго чытання всіх дадзеных. Адкрывайце інструменты з вузкімі схемамі та чысткімі пазначкамі побачных эфектаў. Хостам неабходна знаты, якія вызовы мутуюць стан, перш чым яны автаматычна схваляюць іх.
Тады, дзе вам трэба пачаць?
«Дзе ж вам пачаць?» работае наяўней, калі яго спрыяваць як мерыемую паверхню. Зафіксавайце адны ідеальны прыклад, адзін прыклад неудачы і прыметку па адвярненню роботы, прычым расшырваючы сферу дзеяння. Дакументавайце як шлях успеху, так і шлях вярнення да нормальнага стану. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў є часткай продукту, а не наступным етапам дорабачання. Адкройце інструменты з вузкімі схемамі та чыткімі пазначэннямі побачных наследкаў. Хостам неабходна знаты, якія вызовы мутуюць стан, перш чым яны будуць автаматычна затверджваны. «Дзе ж вам пачаць?» работае наяўней, калі яго спрыяваць як мерыемую паверхню. Зафіксавайце адны ідеальны прыклад, адзін прыклад неудачы і прыметку па адвярненню роботы, прычым расшырваючы сферу дзеяння. Спрыявайце гэтам этапу як кантракту межа вхіднымі даннымі та перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаць критэрыя успеху та адмовіцеся ад мовчанкавага частковага завершэння.
Чек-ліст для эксплуатацыі
Калі працуеце з чэклістам для аператыўных задач, спачатку запісайце умовы контракту: неабходныя даны, сігнал успеху і тое, што выходзіць на частым неудачам. Такі чэкліст дапамагае заставаць пазнейшыя змены коду чыстымі.
Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, неудача павінна вказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач.
Запісвайце назву інструмента, хэш параметраў, час адклікання і рынак кожнага вызову. Без такога лёгкага следу дэбагаванне агента губіць гадзіны.
Зберагайце стан графа ў простаму і типаванаму формате. Вярнутыя структуры дакладна не показваюць, який вузел запісаў кожнае поле, і спакоююць роботу пасля перарываў.
Калі бюджет дазволяе, дадзіце тэст на першыя перакананні, які працуе з критычным шляхам у CI за дапамогою фікстураў, а не рэальных платных API.
Зберагаюце канфігурацыю пазначкай за межамі коду прыемліка. Файлы сяродавішча, базы секрэтных даных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць контроль без неабяжнага чытання всіх элементаў системы.
Перад паднесенням стака заморажавайце версіі, зафіксавайце критычны транскрыпт для ключовых частак і паверыце крокі абвяртання. У спакульнаваных сяродавішчах неабходны ліміты частоты запытоў, перакананні ў прыналежнасці і чыста вялікі адпаведальны за змěну секрэтных даных. Валіце простую надзейнасць працоўнікам, а не хітрыя експерыментальныя прыклады.
Прымітка для dc048ff87f70: не кладзіце ключы прадаўца ў репазітарый, задаце ліміт токена на кожную сесыю і зберагаўце транскрыпты праза ўстановкі eval, каб пазнейшыя змěны модэляў заставаліся пораўнанымі.
Пры захоўце пра зміцненне 0 найкраща яго спрацоўвае, калі ён расследжуецца як вимерная паверхня. Зберыце адна «золатая» транскрыпцыю, адзін прыклад неудачы і запіс пра вярненне да пачатковага стану перш чым расширваць сферу дзеяння. Зберагаюце настройкі праза код прыемлівання. Файлы сераўнавальных сэрваў, хранілішчы секретных дадзеных і флагі функцый должны знаходзіцца ў аднам месцы, куды аператары можаць аудытаваць іх без неабяжнага чытання всіх дадзеных.
Дакладнасць пра зміцненне 0/875: вимеравайце час выканання, класію адзінакоў і выкарыстоўванне токенаў для гэтага запісу, а пасля вырашайце, чы хацяца застаўіць змяну, стварыўшы фіксаваны набор пытанняў, а не на базе індывідуальных спазыраў.
Для запісу пра зміцненне 1, перш чым зменяць код, апрацаваце параметры вхідных дадзеных, абавесцяўцае ведачага этапу і крэтырыя завершэння. Аператары должны магчымае перзапускаць этап з вядомай точкі контролю, не падозрываючы прыхованы стан. Валіце маленькія, тэставальныя елементы над вялікімі скрыптамі. Калі этап не спрацоўвае, прычына неудачы должна вказываць на адну конкрэтную абавесцяўца, а не на заплутаны процэс.
Дзеянне паўжасткі 1/875: звярніце увагу на час выканання, клас памылакі і колькасць токенаў, якія былі выкарыстаны для гэтай змяны, а пасля, на аднойчынку з фіксаваным наборам пытанняў, а не на асобістых спазыраннях, выявіце, чы рэшацца застаўляць гэту змяну.
Працюючы над дзеяннем паўжасткі 2, спачатку запісайце шаблон контракта: неабходныя даны, сігнал успеху і тое, што выходзіць на падчасным невыпанні. Такі чарт дапамагае заставаць пасляэтапныя змены коду чыстымі. Запісвайце час выканання і колькасць токенаў або вартасць запытку па боку функцыйнаых рэзультаатаў. Відразлівасць вартасці з самага пачатку запобегае неспакойным рахункам, калі працэс пераходзіць з дэмаверсіі ў спяльныя среды.
Дзеянне паўжасткі 2/875: звярніце увагу на час выканання, клас памылакі і колькасць токенаў, якія былі выкарыстаны для гэтай змяны, а пасля, на аднойчынку з фіксаваным наборам пытанняў, а не на асобістых спазыраннях, выявіце, чы рэшацца застаўляць гэту змяну.
Пры спроўвачэнні захода з паўнейшага забезпечэння 3 ён работае наяўнейш чым, калі яго расследжваюць як вимерную паверхню. Зберыце адна ідеальная транскрыпцію, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Дакументаваць трэба як успішны, так і вярнучыся шляхы. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.
Дзялёўка спроўвачэння з паўнейшага забезпечэння 3/875: для гэтага запісу звярніце увагу на час выканання, класыя ошибакі і витрату токенав, а пасля, на базе фіксованага набора пытанняў, а не на адзінакавых прыкладах, выявіце, чы хацеце застаўіць змяну.
Для захода з паўнейшага забезпечэння 4 перад змянай коду неабходна визначыць вхідныя даны, адпаведальнага за крок і критэрыя завершэння. Аперацыёныя працавнікі должны магчымае перадзвіжваць крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Расследжвайце гэты этап як кантракт між вхіднымі данымі і перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, визначыце критэрыя успеху і адмовіцеся ад безсловеснага частковага завершэння.
Дзеянне паўжасткі 4/875: звярніце увагу на час выканання, клас памылкі і колькасць викорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынныя крэтыры, а не на індывідуальныя прыклады, вырашыце, чы робіць змяну.
Працюючы над запісам паўжасткі 5, спачатку запішыце контракт: неабходныя данні, сігнал успеху і тое, што выканаецца у разе частковай памылкі. Такі список дапамагае заставіць пазнейшыя змяны ў кодзе чыстымі. Зберагаюце канфігурацыю парадульна да коду прыемлівача. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куда аператары можу аудытаваць іх, не чытаючы весь код.
Дзеянне паўжасткі 5/875: звярніце увагу на час выканання, клас памылкі і колькасць викорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынныя крэтыры, а не на індывідуальныя прыклады, вырашыце, чы робіць змяну.
Пры захоўце працэсу ўзмocнення 6 наяўныя рэкамендацыі дадаюць найлепыя рэзультаты, калі іх спрыяваць як меркаваныя показнікі. Перш чым расширваць сферу дзеяння, неабходна зафіксаваць адны ідеальны прыклад роботы, адзін прыклад неудачы і змест кроку з вярненням да пачатковага стану. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына неудачы павінна быць асоціяваная з конкрэтным аспектам, а не з заплутаным ланцюгом задач.
Деталі захоўцы працэсу ўзмocнення 6/875: памерыце час выканання, класію адзінакоў і колькасць токенаў, якія былі выкарыстаны для ціх крокоў, а пасля — на базе фіксаванага набора пытанняў, а не толькі на адной прымітнай інформацыі, вырашыце, чым застаўці змены.
Для захоўцы працэсу ўзмocнення 7, перш чым зменіць код, неабходна чытка апісаць вхідныя даны, адпаведальную особу за кожны крок і критэрыя завершэння. Аперацыйныя працавнікі павінны магчымае перзапускаць крок з вядомай точкі контролю, не падозрэўаючы пра схованы стан системы. Неабходна фіксаваць час выканання і колькасць токенаў або запытак разам з рэзультатамі функцыйнасці. Відкрытая інформацыя пра витраты запобегае неспакойным сюрпрызам, калі працэс пераходзіць з дэмаверсійнага режыма ў спакульнае сераўерное сэрвіса.
Дзеянне паўжчання 7/875: звярніце увагу на час выканання, клас памылкі і колькасць викорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазырэннях, выявіце, чы робіць змены.
Працюючы над запісам паўжчання 8, спачатку запішыце контракт: неабходныя даны, сігнал успеху і тое, што выканаецца у разе частковай памылкі. Такі список контроля дапамагае заставіць пасляэтапныя змены коду адпаведнымі. Задокументавайце як шлях успеху, так і шлях вяснавання. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў є частью продукту, а не чымсь, што дадаецца пазней.
Дзеянне паўжчання 8/875: звярніце увагу на час выканання, клас памылкі і колькасць викорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазырэннях, выявіце, чы робіць змены.