Инструменты сайта
Инструменты сайта — это реализация предлагаемого стандарта WebMCP в ChatGPT. С помощью WebMCP сайт может предлагать ИИ-агенту полезные действия непосредственно рядом с интерфейсом, которым уже пользуются люди. Вы и агент можете работать с одной и той же открытой страницей и авторизованным сеансом.
Во встроенном браузере настольного приложения ChatGPT сервис ChatGPT Work и Codex могут обнаруживать и использовать эти инструменты, когда они доступны.
WebMCP и MCP: различия
Model Context Protocol (MCP) подключает ИИ-приложение к локальному или удалённому серверу. Его инструменты могут работать независимо от открытой веб-страницы — например, искать данные в сервисе или управлять записями через API.
WebMCP позволяет сайту предоставлять свои возможности агенту в виде набора заранее определённых инструментов. Агент может обнаружить их при посещении сайта, поэтому пользователям не требуется устанавливать отдельный MCP-сервер или настраивать ещё одно подключение для использования этих возможностей.
Этот подход полезен, когда вам и агенту необходимо видеть одно и то же, например при редактировании холста или изучении панели мониторинга. Плагин с MCP-сервером может обеспечивать интеграцию, работающую независимо от открытой страницы. Сайт может поддерживать оба варианта.
Как это работает в браузере
Откройте сайт во встроенном браузере и попросите ChatGPT Work или Codex помочь с задачей. Если страница предлагает инструменты сайта, агент может обнаружить и использовать подходящие действия на просматриваемом вами сайте. Например, редактор документов может позволить агенту найти раздел или оставить комментарий для вашей проверки.
Выберите Инструменты сайта в адресной строке браузера, чтобы посмотреть, что предлагает сайт. Выберите Доступные инструменты сайта, чтобы изучить отдельные инструменты. Браузер проверяет каждый запрос до того, как сайт его выполнит, а агент может изучить страницу и увидеть, что изменилось. Если доступны сведения о недавних действиях, выберите Недавно использованные, чтобы открыть Источники и просмотреть эти вызовы.
В этом примере разверните раздел Доступные инструменты сайта, чтобы изучить инструменты, предоставляемые Margin.
Инструменты принадлежат предоставляющей их странице. Если закрыть страницу или перейти с неё на другую, её инструменты могут стать недоступны. Если подходящего инструмента нет, агент всё равно может воспользоваться обычными возможностями браузера.
Пример: изучение документации OpenAI
ChatGPT Learn и OpenAI Developers предлагают инструменты сайта для поиска и чтения документации. Выберите Открыть в ChatGPT в поле ввода, чтобы открыть Learn во встроенном браузере настольного приложения рядом с новым чатом, в котором этот запрос уже готов к отправке.
Запрос:
Find the documentation for building reusable skills, open the relevant page, and explain when I should turn a skill into a plugin.Агент может использовать эти инструменты для поиска, чтения и открытия нужной страницы:
| Инструмент | Назначение |
|---|---|
search_openai_docs |
Ищет информацию в документации OpenAI. |
lookup_page |
Читает страницу документации по пути или URL. |
lookup_context |
Читает текущий маршрут документации и выделенный текст. |
navigate_to_page |
Открывает подходящую страницу на текущем сайте документации. |
generate_custom_guide |
Запускает создание собственного руководства или учебного материала и возвращает его статус и ссылку. |
Docs Agent создаёт собственное руководство асинхронно. Получение ссылки на него не означает, что создание завершено.
Безопасность и пользовательский контроль
Предоставляемые сайтом определения инструментов и результаты являются недоверенным содержимым. Название инструмента или заявление о том, что он только читает данные, не доказывает, что он действительно делает именно это. Инструкции сайта не дают агенту разрешения передавать несвязанные с задачей сведения или выполнять конфиденциальные действия.
Во встроенном браузере каждый вызов инструмента перед выполнением проходит проверку безопасности. Обычные правила доступа к сайтам и подтверждения действий по-прежнему действуют, в том числе для действий со значительными последствиями, таких как отправка сообщений, совершение покупок, удаление данных или изменение разрешений. Браузер связывает каждый вызов с исходной страницей и регистрацией инструмента. Эти проверки снижают риск, но не делают сайт или его результаты заслуживающими доверия.
Вы можете отключить параметр Включить инструменты сайта в разделе Настройки > Браузер > Разрешения. Проверяйте сайт, запрошенное действие и результат, прежде чем передавать конфиденциальную информацию или полагаться на внесённое изменение.
Сообщайте об уязвимостях безопасности через программу вознаграждений за обнаружение ошибок безопасности OpenAI. Сведения о рисках для безопасности ИИ см. в программе вознаграждений за обнаружение ошибок в области безопасности ИИ. Следуйте требованиям каждой программы к области охвата и отправке отчётов.
Добавление WebMCP на ваш сайт
Вы можете попросить Codex добавить поддержку WebMCP в веб-приложение или Site, над которым вы работаете. Опишите, какие действия должен уметь выполнять агент, и попросите Codex повторно использовать существующую логику и разрешения приложения.
Начните с операции, которую ваше приложение уже поддерживает. Например:
- Панель мониторинга, позволяющая агенту задать диапазон дат и изучить данные, лежащие в основе диаграммы.
- Редактор документов, позволяющий агенту найти раздел, предложить правку или оставить комментарий для вашей проверки.
- Планировщик путешествий, позволяющий агенту сравнивать варианты и обновлять маршрут, пока вы изучаете карту.
Вы также можете написать код самостоятельно. В модуле JavaScript вашей страницы проверьте поддержку браузером и зарегистрируйте инструмент. Этот пример только для чтения возвращает заголовок текущей страницы:
if (typeof document.modelContext?.registerTool === "function") {
await document.modelContext.registerTool({
name: "get_page_title",
description: "Read the title of the current page.",
inputSchema: {
type: "object",
properties: {},
additionalProperties: false,
},
annotations: { readOnlyHint: true },
execute: async () => ({ title: document.title }),
});
}Совместимый агент может обнаружить get_page_title и получить текущий
заголовок страницы. Для инструмента, принимающего аргументы, опишите их во входной
схеме и используйте их в обработчике execute для вызова существующей логики
вашего приложения.
Ограничивайте входные данные, описывайте побочные эффекты и возвращайте достаточно информации для проверки результата. Используйте существующие в вашем приложении механизмы аутентификации, авторизации и проверки входных данных. Сохраните обычный интерфейс для пользователей и браузеров, не поддерживающих WebMCP.
Подробности об API и примеры см. в спецификации WebMCP и руководстве Chrome для разработчиков.