Опубликовано: 18 мая 2026 г.
Описание инструмента WebMCP должно быть понятным, чтобы разработчикам или агентам не приходилось просматривать результаты и повторять попытку. Независимо от того, используете ли вы императивный или декларативный API, следуйте этим рекомендациям:
- Прежде чем приступать к разработке, создайте стратегию использования инструментария.
- Используйте понятный язык и семантический HTML.
- Разработайте свои схемы и обрабатывайте входные данные.
- Создавайте надежные инструменты.
- Тестирование и отладка.
Мы уже писали отдельно о создании инструментов, ориентированных на безопасность .
Разработайте стратегию использования инструментов.
Как и в случае с любым программным приложением, первым шагом должно стать планирование стратегии использования инструмента:
- Каждый инструмент должен выполнять одну единственную функцию . Например, один инструмент может направлять пользователя к определенному типу формы, а другой — сопоставлять поля ввода с информацией о пользователе. Следует избегать создания дублирующих инструментов, так как это может сбить с толку оператора, не понимая, какой из них использовать. Задайте себе вопрос: могу ли я выполнить несколько задач с помощью одной и той же функции?
- Управление регистрацией инструментов . Регистрируйте инструменты, когда они полезны на определенном этапе развития страницы, и отменяйте регистрацию, когда инструмент перестает быть полезным.
- Императивный API : Вы можете динамически управлять регистрацией с помощью
registerTool. - Декларативный API : Вы можете динамически управлять регистрацией, добавляя или удаляя атрибуты инструмента в форме, включая
toolnameиtooldescription.
- Императивный API : Вы можете динамически управлять регистрацией с помощью
- Уменьшите сложность: для большинства приложений статическая регистрация должна быть подходом по умолчанию.
- Доверьтесь агенту в выполнении задачи . Вместо того чтобы писать жесткие или негативные инструкции, исходите из того, что агент способен понять, что требуется для выполнения задачи, а не ожидайте от него точной последовательности действий.
Хотя максимальное количество инструментов не ограничено, каждый инструмент занимает часть контекстного окна и увеличивает время выполнения. Чем больше инструментов вы предоставляете и чем больше они перекрываются, тем сложнее агенту сделать правильный выбор. Экспериментируйте, чтобы определить, что подходит именно для вашего приложения.
Это помогает создавать отдельные инструменты, не дублирующие друг друга по назначению, и управлять доступностью этих инструментов.
Используйте понятный язык и семантический код.
Используйте ясный и точный язык для обозначения инструментов и описания их использования. Это поможет агентам найти то, что им нужно, понять, что они нашли, и использовать эту информацию так, как ожидает разработчик.
При написании названий инструментов различайте выполнение и инициирование, используя глаголы, точно описывающие происходящее. Например, create-event — это инструмент для немедленного создания события, а start-event-creation-process — это инструмент, который перенаправляет пользователя на форму для создания события.
Четкое описание должно объяснять, что делает инструмент и когда его использовать. Следует использовать позитивные формулировки и формулировки предпочтений, а не негативные, например, ограничения.
«Не используйте этот инструмент для прогноза погоды».
Ограничения должны быть неявно указаны в хорошо составленном описании.
«Этот инструмент позволяет создавать события в календаре, запланированные на определенную дату и время».
Вместо того чтобы указывать модели, что делать, этот язык описывает действия, которые может предпринять инструмент.
Минимизация когнитивных вычислений
Подобно тому, как следует минимизировать когнитивную нагрузку для людей, выполняющих сложные задачи, следует также минимизировать когнитивные вычисления для модели:
- Принимайте необработанный ввод пользователя . Избегайте запросов к агенту на выполнение математических операций или преобразование входных строк. Например, если пользователь говорит: «с 11:00 до 15:00», инструмент должен принять это как строку. Избегайте запросов к модели на вычисление минут между этими временными интервалами.
- Укажите конкретные типы для параметров , например, строка, число или перечисление.
- Объясните, почему вы сделали тот или иной выбор . Ваш выбор должен быть понятен сам собой. Объяснение «почему» помогает агентам принимать более взвешенные решения. Например, если у вас интернет-магазин, указывайте тип доставки на естественном языке, а не используйте неоднозначный идентификатор:
shipping="Express"вместоshipping_id=1.
Приоритет — надежность.
И агенты, и люди получают выгоду от инструментов, которые работают так, как ожидается:
- Установите корректный механизм обработки ошибок при превышении лимита запросов . Инструменты должны допускать разумное количество повторений, например, при сравнении цен. Если инструмент ограничен по количеству запросов, возвращайте информативное сообщение об ошибке или посоветуйте пользователю выполнить задачу вручную.
- Обновите состояние интерфейса после завершения функций . Агенты могут полагаться на интерфейс для планирования следующих шагов, в то время как выполнение функций может занять больше времени, чем загрузка интерфейса. Агент должен подтвердить завершение функции после обновления интерфейса или запросить повторное обновление.
- Строго проверяйте код, не слишком строго — схему . Ограничения и тестирование следует использовать для функций и кода с бинарной логикой. Хотя ограничения схемы могут быть полезны, они не гарантируют корректность. Добавьте в код функции описательные ошибки, чтобы модель могла самостоятельно исправить ошибки и повторить попытку с новыми, допустимыми параметрами.
Оценка, тестирование и отладка.
Создавайте оценочные тесты и предоставляйте свои инструменты для отладки. В отличие от детерминированных модульных тестов, оценочные тесты нельзя задавать жестко, поскольку выходные данные могут принимать непредвиденные формы.
- Определите проблему . Вы можете сформулировать свою проблему в виде контракта API, указав тип входных данных, формат выходных данных и любые дополнительные ограничения.
- Определите базовый и идеальный результат . Особенно при работе с текстовым вводом важно понимать, какие типы результатов могут дать вам ожидаемый результат.
- Определите, как будет оцениваться результат . Вероятно, вы определяете и измеряете субъективные, качественные результаты, основанные на качестве входных данных, их полезности и возможности выполнения следующей задачи. Существует ряд методов, которые можно использовать для оценки результата, включая проверку на основе кода для результатов, основанных на правилах (ограничения по количеству символов), и оценку LLM как судьи .
Избегайте добавления узконаправленных правил для исправления проблем с конкретной моделью. Например, если вы добавите поле выбора для обращений , модель может сделать неправильный выбор. Вместо добавления узконаправленных правил для исправления этой проблемы, абстрагируйте и адаптируйте свой инструмент. Лучше всего сделать это поле необязательным. Затем попросите агента спросить пользователя, какой вариант выбора имеет смысл, чтобы убедиться, что пользователь доволен результатом.
Принимайте участие и делитесь отзывами.
WebMCP находится в стадии активного обсуждения и может быть изменен в будущем. Если вы попробуете эти API и у вас появятся отзывы, мы будем рады их услышать.
- Ознакомьтесь с пояснениями к WebMCP , задавайте вопросы и участвуйте в обсуждении.
- Проверьте реализацию для Chrome в разделе «Статус Chrome» .
- Присоединяйтесь к программе раннего ознакомления , чтобы первыми увидеть новые API и получить доступ к нашей почтовой рассылке.
- Если у вас есть замечания по реализации в Chrome, создайте сообщение об ошибке в Chromium .