Опубликовано: 9 июня 2026 г.
Вы можете использовать протокол Web Model Context Protocol ( WebMCP ) для создания и предоставления структурированных инструментов агентам ИИ, работающим в браузере, включая агентов, использующих расширения. Агент использует большую языковую модель (LLM), правила, память и инструменты для выполнения действий от имени пользователя.
Поскольку LLM-ы рассматривают весь текст, инструкции и пользовательские данные как единую последовательность токенов, они уязвимы для косвенного внедрения подсказок — включения вредоносных инструкций злоумышленником. Наша команда подготовила этот документ по безопасности инструментов, чтобы помочь вам защитить ваш веб-сайт и ваших пользователей от злоумышленников.
Хотя некоторые модели имеют уровни, которые предотвращают внедрение подсказок, гарантировать безопасность внутри большой языковой модели (LLM) невозможно. Модели по своей природе являются вероятностными. Важно помнить, что были зафиксированы повторяющиеся атаки с внедрением подсказок против агентных систем, использующих современные LLM, и распространенность таких атак в интернете растет.
Для решения этих проблем мы подготовили предварительные рекомендации по безопасности для тех, кто разрабатывает инструменты с использованием WebMCP.
Используйте подсказки для аннотаций
При создании инструментов следует добавить несколько подсказок:
- Используйте
untrustedContentHintтам, где это уместно . Если инструмент возвращает пользовательский контент (UGC) или данные из внешних источников, рассмотрите возможность добавленияuntrustedContentHintк инструменту. Это поле явно помечает полезную нагрузку как ненадежную, чтобы помочь защитить целостность вашего сайта и дать агенту сигнал о том, что эти данные требуют более тщательной проверки. - Используйте параметр
readOnlyHintдля инструментов, состояние которых не меняется. Это позволит агенту принимать более обоснованные решения о том, когда запрашивать подтверждение у пользователя.
Осторожно разложите инструменты.
API-интерфейс webMCP document.modelContext.registerTool предоставляет доступ к функциональности инструмента только агентам. По умолчанию другие веб-сайты или iframe-элементы, расположенные в других источниках, не могут отслеживать ваши инструменты или взаимодействовать с ними.
С помощью опции exposedTo в registerTool вы можете предоставить доступ к своему инструменту ряду конкретных, защищенных источников. Это позволит вашему инструменту быть доступным для этих источников при встраивании на ваш сайт, а также когда ваш сайт будет встроен в этот источник.
// https://partner.org
document.modelContext.registerTool({
name: 'my_shared_tool',
description: 'Shared across origins',
// ...
}, {
exposedTo: ['https://trusted.com', 'https://example.com']
});
Предоставляйте доступ к своим инструментам только тем источникам, которым вы доверяете. Это особенно важно, когда инструменты управляют пользовательскими данными или иным образом влияют на пользователя.
- Инструменты, доступные только для чтения, такие как
getFavoriteProducts, могут раскрывать информацию о пользователе. Следует предоставлять доступ к таким инструментам только тем веб-сайтам, с которыми вы бы в противном случае напрямую делились этими данными. - Инструменты с правами на чтение и запись выполняют действия от имени пользователя. Доступ к этим инструментам следует предоставлять только тем источникам, которым вы доверяете при выполнении действий от имени пользователя. Например, вы можете захотеть предоставить доступ
postCommentтолько дляtrustedExample.com, но не дляevilExample.com.
Установите бюджеты персонажей
Чтобы избежать проблем с ограничениями, накладываемыми агентами, пишите краткие описания инструментов и результатов их работы. Для достижения лучших результатов рекомендуем следующие ограничения по количеству символов:
- 500 символов на описание инструмента
- 150 символов на описание параметра
- 30 символов на каждое название инструмента и имя параметра.
- Ограничение в 1,5 тыс. символов на вывод данных отдельным инструментом.
Вполне вероятно, что у разных агентов есть некоторые различия, и вам, возможно, потребуется скорректировать бюджеты персонажей с учетом отзывов пользователей.
Следующие шаги
Мы продолжаем исследования и работу над созданием безопасной инфраструктуры для агентской сети. Например, ведется обсуждение управления согласием между сторонами, и в проекте спецификации предусмотрена requestUserInteraction() для асинхронного запроса пользовательского ввода при выполнении инструмента.
Как вы планируете интегрировать WebMCP в своё приложение? Есть ли у вас другие опасения, связанные с безопасностью или чем-либо ещё? Если вы зарегистрируетесь для участия в пробной версии WebMCP Origin, мы хотим узнать о вашем опыте:
- Поделитесь своим мнением о состоянии API, оставив комментарий к существующей проблеме или открыв новую в разделе WebMCP на GitHub .
- Если у вас есть замечания по реализации в Chrome, создайте сообщение об ошибке в Chromium .
- Присоединяйтесь к программе раннего ознакомления , чтобы первыми увидеть новые API и получить доступ к нашей почтовой рассылке.
- Проверьте реализацию для Chrome в разделе «Статус Chrome» .
Если вы разрабатываете агент, рекомендуем ознакомиться с разделом «Вопросы безопасности агента для WebMCP» .