WebMCP простым языком
@ai_longreadsGoogle и Microsoft редко в чём-то соглашаются. Но теперь они строят одно и то же — чтобы дать агентам нормальный доступ к вебу. И это может стать крупнейшим изменением в интернете за последние годы.
Это AI-перевод статьи, сделанный каналом Про AI: Лучшие Статьи и Исследования.
WebMCP простым языком
WebMCP Clearly Explained Автор: Akshay Оригинальный текст:
Google и Microsoft редко в чём-то соглашаются. Но теперь они строят одно и то же, чтобы исправить доступ к вебу для агентов, — и это может стать крупнейшим изменением в интернете за последние годы.
Попросите агента купить что-нибудь за вас и посмотрите, что он на самом деле делает.
Он делает скриншот страницы. Ищет что-то похожее на кнопку. Нажимает, ждёт, делает ещё один скриншот. Он читает ваш экран так же, как это делали бы вы — только медленнее, и вы платите токенами за каждый его взгляд.
Для демо этого достаточно. Но всё ломается, как только сайт обновляет дизайн.
И вот что делает ситуацию ещё более странной. Сайт и так прекрасно знает, что он умеет. У него есть поиск, корзина, оформление заказа, бронирование. Ничего из этого не записано там, где программа могла бы это прочитать. Всё зарыто в макете, созданном для людей.
Так что проблема не в том, что агенты плохо читают страницы. Проблема в том, что страницы никогда не были написаны для кого-то, кроме людей.
Посмотрите на этот пример:
WebMCP — это браузерный API от команд Chrome и Edge, который позволяет сайту записать свои действия. Поиск, добавление в корзину, бронирование слота — каждое действие получает имя, описание, написанное для модели, и список входных параметров, которые оно принимает.
WebMCP — это один из шести способов, которыми агент может взаимодействовать с приложением. Выстройте все шесть рядом, пройдитесь по каждому по очереди — и станет ясно, почему именно этот вариант выигрывает.
Давайте разберёмся!
Шесть способов взаимодействия агента с приложением
Выстроим их от самого удалённого до ближайшего к интерфейсу.
1. Вызвать API напрямую. Ваш скрипт обращается к бэкенду компании напрямую с API-ключом. Точно и быстро. Но вам пришлось самостоятельно найти эндпоинты, управлять ключом, а сайт вообще не участвует.
2. Подключиться к бэкенд-MCP-серверу. Компания создаёт сервер, который описывает свои действия как именованные инструменты, и ваш агент подключается к нему. Лучше, потому что инструменты определил тот, кто понимает продукт. Пользовательский интерфейс по-прежнему полностью обходится стороной.
3. Позволить агенту использовать компьютер. Ваш агент видит живую страницу как изображение и кликает по ней. Настраивать ничего не нужно. Но это медленно, каждый взгляд стоит денег, и изменение вёрстки его сбивает.
4. Направить на страницу инструмент автоматизации браузера. Ваш агент читает код страницы, а не её картинку. Надёжнее, чем пиксели. Но инструменты всё равно универсальные, поэтому агенту приходится угадывать смысл безымянных div'ов и кнопок.
5. WebMCP. Страница сама объявляет свои действия — с именами, описаниями и типизированными входными данными. Ваш агент просто вызывает их.
6. Использовать встроенного ассистента сайта. Компания встраивает свой чат-бот. Она выбирает модель, платит за токены, а ваш агент остаётся снаружи. По сути, это не даёт вам привести своего агента для взаимодействия с сайтом.
Что это показывает, если выстроить их рядом
Когда все шесть вариантов стоят рядом, паттерн легко увидеть. Между ними варьируются три вещи.
Чей агент выполняет работу. Что пользователю нужно настроить, прежде чем что-то заработает. И что агент фактически получает, когда приходит на сайт.
Каждый из вариантов жертвует хотя бы одним из трёх.
- API и бэкенд-MCP-сервер дают чистые типизированные действия, но вы настраиваете их сами, а сайт исчезает из картины.
- Computer use не требует настройки, но подсовывает агенту пиксели и просит разобраться самому.
- Автоматизация браузера даёт структуру, но одну и ту же универсальную структуру для каждого сайта в интернете.
- Встроенный ассистент точный и бесплатный, но это не ваш агент — и ничего, что он узнал о вас, никуда дальше не передаётся.
WebMCP — единственный, который сохраняет все три. Ваш собственный агент, нулевая настройка и реальные именованные действия вместо угадывания.
Почему декларирование лучше угадывания
Изменение легко описать, но эффект от него огромный. Вместо того чтобы агент выяснял, что делает кнопка, сайт сам говорит, что она делает.
Из этого вытекает несколько следствий.
- Угадывание прекращается. Агент получает список действий с типизированными входными данными. Нет этапа интерпретации, на котором неправильный клик тихо делает не то, что нужно.
- Авторизация достаётся бесплатно. Действие выполняется внутри вашей вкладки браузера, в вашей сессии. Агенту не нужно хранить API-ключ, нет отдельного логина, нет токена, который нужно передавать. Вы уже авторизованы — значит, доступ уже есть.
- Доступные действия меняются вместе со страницей. Это та часть, которую люди упускают. Агент неавторизованного посетителя видит горстку действий только для чтения — вроде поиска и просмотра товаров. После авторизации сайт добавляет остальные: историю заказов, корзину, оформление. На стороне агента ничего особенного не происходит. Он просто заново читает список.
- Ваш интерфейс остаётся. Действие выполняется на видимой странице, поэтому пользователь наблюдает за происходящим, а ваш продукт не сводится к API, который вызывает чей-то чужой чат.
- Любая модель может это использовать. Входные данные описываются с помощью JSON Schema — того же формата, который Claude, GPT и Gemini уже используют для вызова инструментов. Вы описываете свои действия один раз.
Как это выглядит в коде
Инструмент — это обычный JavaScript-объект, передаваемый браузеру. Код идёт в клиентском скрипте вашей страницы — том самом JavaScript, который уже выполняется при загрузке сайта. Вы регистрируете каждый инструмент один раз при загрузке страницы, и с этого момента любой агент, посещающий её, может его увидеть и вызвать.
document.modelContext.registerTool({
name: "add_to_cart",
description: "Add a product to the shopping cart",
inputSchema: {
type: "object",
properties: {
productId: { type: "string" },
quantity: { type: "number" }
},
required: ["productId"]
},
async execute({ productId, quantity }) {
await addToCart(productId, quantity);
return `Added ${quantity} to the cart`;
}
});Четыре части, и только одна из них — новая работа.
Имя — это то, что вызывает агент. Описание написано обычным английским языком, потому что языковая модель читает его, чтобы решить, подходит ли это действие. Схема указывает, какие входные данные допустимы, поэтому некорректные аргументы никогда не дойдут до вашего кода.
Последняя часть — функция, которая выполняется. Обратите внимание: она просто вызывает addToCart — ту же функцию, которая уже стоит за вашей кнопкой. Вы не создаёте вторую версию продукта для агентов. Вы указываете на ту, что уже есть.
Если то, что вы хотите открыть, — уже форма, вам вообще не нужно писать JavaScript. Вы добавляете два атрибута к разметке формы, которая уже есть в вашем HTML.
<form toolname="search_flights"
tooldescription="Search available flights between two cities">
<input name="from">
<input name="to">
<button type="submit">Search</button>
</form>Два атрибута. Браузер читает форму, определяет, что она принимает параметры from и to, и сам строит схему.
В этом вся идея. Веб тридцать лет описывал себя для людей через вёрстку — и не имел эквивалента для программ. WebMCP — это одна из попыток создать такое недостающее описание, написанное тем сайтом, который и так знает ответ.
Что это значит для вас
Большую часть истории веба единственным посетителем, для которого стоило проектировать, был человек. Это начинает меняться, и сайт, который скажет агенту, что он умеет, получит более чистые и надёжные результаты, чем сайт, заставляющий агента угадывать по пикселям.
Пока ещё рано. Одно семейство браузеров это реализовало, стандарт не финальный, и сегодня только собственный агент браузера вызывает эти инструменты. Но стоимость попробовать близка к нулю. Если у вас есть сайт, проще всего начать с формы, которая уже существует. Добавьте два атрибута, откройте в браузере, поддерживающем пробную версию, и посмотрите, как агент её использует.
Читайте официальную документацию →
На это всё.
Спасибо за прочтение!
Подпишитесь на канал и каждый день читайте лучшие материалы про AI переведенные на русский!
Нашли интересную статью для перевода? Пришлите нашему боту: @ailongreadsbot