Dev48
ЯЗЫК
  • О нас
  • Услуги
  • Индустрии
  • Технологии
  • Статьи
  • Контакты
Забронировать звонок
    Главная/Статьи/Moy agent dlya otpuska ispytyvaet trudnosti naskolko servisy gotovy k rabote s i
Dev48
info@dev48.org+375 29 320-40-96WhatsApp@isky_by

© 2026 · All rights reserved.

Мой агент для отпуска испытывает трудности: насколько сервисы готовы к работе с ИИ?

Фото: Anastasiia Nelen (Unsplash) — https://unsplash.com/photos/a-person-sitting-on-a-beach-with-a-suitcase-and-a-laptop-Y7AwRJmfC0I?utm_source=dev48&utm_medium=referral

Источник: Postman Blog•3 ноября 2026 г. в 16:33

Мой агент для отпуска испытывает трудности: насколько сервисы готовы к работе с ИИ?

Скраперенные сайты, REST API и MCP-сервер — все они столкнулись с одним вопросом от моего агента по бронированию. Разница между ними заключалась в типах полей, а не в протоколах. Статья My vacation agent is struggling: how AI-ready are services? опубликована в блоге Postman Blog .

3 ноября 2026 г.

Мы с женой хотели провести несколько дней на французском побережье Атлантики в августе, без детей. Двое взрослых, собака, какое-нибудь место со спа, стоимостью до 1500 евро, с отъездом примерно 15-го числа. Ничего экзотического, за исключением того, что мы бронировали всё в первую неделю августа, потому что всегда делаем это в последний момент.

Сравнивать это должным образом на нескольких сайтах — утомительное занятие, и я не силен в этом. Каждый сайт указывает цены по-своему, фильтры никогда не совпадают, а к моменту открытия четвертой вкладки я уже забываю, что предлагала вторая. Поэтому вместо того, чтобы открывать шесть вкладок, я написал скилл и позволил ему заняться сравнением.

Это решение превратилось в случайный эксперимент. У первых двух провайдеров, к которым я направил агента, не было ни API, ни сервера Model Context Protocol (MCP), поэтому единственным путем был браузер. У третьего был MCP-сервер, к которому я мог подключиться напрямую. Тот же скилл, те же критерии, тот же подсчет баллов, но два совершенно разных опыта для агента. Один из них также дал мне другой ответ, и этот другой ответ оказался правильным.

Это личный опыт, а не бенчмарк. Я запустил его один раз, для одной кампании, с одной моделью, для собственного отпуска. Но он превратился в полезный урок о том, как сильно индустрии еще предстоит измениться, чтобы работать в мире, где покупки совершает программное обеспечение. Самое интересное здесь не то, что MCP работал быстрее. А то, что степень готовности провайдера к чтению с помощью ИИ меняет то, к каким выводам может прийти агент, причем готовность, как оказалось, имеет удивительно мало общего с тем, какой именно протокол предлагался.

Замечание по поводу названий: я назвал каждый протестированный сервис, потому что личный опыт, который нельзя воспроизвести, не стоит почти ничего. Все это не является вердиктом для этих компаний. Это один запуск, в рамках одной кампании, в один день, и сайт, который разочаровал моего агента в июле, вполне мог выпустить исправление с тех пор. Воспринимайте это как моментальный снимок того, с чем столкнулся агент, а не как обзора.

Замечание по поводу названий: я назвал каждый протестированный сервис, потому что личный опыт, который нельзя воспроизвести, не стоит почти ничего. Все это не является вердиктом для этих компаний. Это один запуск, в рамках одной кампании, в один день, и сайт, который разочаровал моего агента в июле, вполне мог выпустить исправление с тех пор. Воспринимайте это как моментальный снимок того, с чем столкнулся агент, а не как обзора.

Скилл перед поиском

Первое, что я создал, был не поиск. Это был переиспользуемый скилл агента под названием vacation-scout, благодаря которому критерии и система оценки сохранялись между сессиями, и я мог повторно запустить ту же кампанию позже. Скилл представляет собой папку с файлом SKILL.md, метаданными и инструкциями:

Его тело определяет четыре вещи: модель кампании, процедуру поиска для конкретного провайдера, спецификацию извлечения и формулу оценки. Эта спецификация извлечения значит больше, чем кажется на первый взгляд. Она перечисляет точные поля, которые нужно извлечь по каждому предложению, и включает одно жесткое правило: если поле отсутствует на странице, пометить его как «не указано» и ни в коем случае не угадывать.

Формула оценки намеренно скучна, что и делает ее честной константой для разных провайдеров:

Строка else score -= 5 в некотором роде отражает всю суть этой статьи. Отсутствие поля не является нейтральным фактором. Это небольшой незаметный налог на качество ответа, и я еще вернусь к этому.

Вот кампания, которую я сохранил:

Два провайдера, ноль машиночитаемых точек входа

Ни у одного из них не было публичного API, и ни у одного не было MCP-сервера. Поэтому агент управлял реальным браузером: читал дерево доступности (accessibility tree), кликал, делал скриншоты, читал снова.

Staycation не требовал учетной записи. Также выяснилось, что по умолчанию он продает 24-часовые и 48-часовые поездки по городу, а опция многодневного пребывания была спрятана за дополнительным выпадающим списком внутри виджета выбора дат. Первые два клика по этому выпадающему списку закрывали все диалоговое окно. Клики на основе координат попадали в нужные пиксели, но обработчик все равно не срабатывал так, как ожидал агент. Переключение на клики по ссылкам на элементы после повторного чтения дерева доступности помогло это исправить. На странице результатов вообще не было фильтра по домашним животным, поэтому для подтверждения политики в отношении животных приходилось открывать страницу с подробной информацией о каждом кандидате и читать текст. У четырех кандидатов из четырех вообще не было текста о политике в отношении домашних животных. Около 33 вызовов инструментов, 10 из них — полноразмерные скриншоты.

У Veepee фильтры были лучше, чем у предыдущего, включая реальный фасет «можно с домашними животными», что казалось победой, пока его объединение с фасетом здоровья не стало работать по принципу ИЛИ, а не И при подсчете результатов. Большинство прибрежных вариантов, дружелюбных к животным, представляли собой апартаменты с самообслуживанием и минимальным сроком проживания в семь ночей, причем этот минимум был не виден в сетке результатов. Он появлялся только после открытия отдельного объявления, поэтому агент тратил ходы на инвентарь, который никогда не смог бы удовлетворить четырехдневную поездку. Сужение выбора до отелей сократило набор ровно до одного объекта: настоящий талассо-отель, размещение с животными подтверждено, и на 39% выше бюджета на август. Около 32 вызовов инструментов, 19 из них — скриншоты.

Около 65 вызовов инструментов на двоих. Около 29 из них — скриншоты. Один ручной вход в систему.

Как выглядел рейтинг после скрапинга

У четырех из пяти не было доступной политики в отношении домашних животных. Я путешествую с собакой. Единственный критерий, который мог дисквалифицировать любое бронирование, был неизвестен для большинства вариантов из шорт-листа, и агент не сделал ничего плохого: информации просто не было на странице.

Почему счет идет по ходам, а не по информации

Я оценил нижний предел токенов только для контента на этапе браузера примерно в 60 000 входных токенов и 4 300 выходных токенов. При стоимости в 2 доллара за миллион входных токенов и 10 долларов за миллион выходных это составляет около 0,16 доллара. Что звучит как ничто.

Это действительно ничто, и в то же время это еще не итоговый счет. API сообщений не имеет состояния, поэтому каждый ход заново отправляет всю беседу целиком: каждый предыдущий скриншот, каждое предыдущее извлечение страницы, системный промпт, текст скилла и схему каждого загруженного инструмента. Для агента автоматизации браузера общего назначения этот фиксированный объем реально находится где-то в диапазоне от 15 000 до 30 000 токенов еще до того, как вы что-либо сделали.

Возьмем 20 000 в качестве рабочего числа:

При активном кэшировании промптов чтение из кэша тарифицируется примерно по 10% от базовой стоимости ввода с периодическим обновлением записи, что приближает эту цифру примерно к $0.65–$0.85. В любом случае повторение превосходит полезную информацию в четыре раза и более. Длинный цикл браузера стоит столько, сколько стоит, из-за количества сделанных кругов, а не из-за объема узнаваемого за один круг.

Одно предостережение относительно применения этой же арифметики к запуску MCP: вы не можете ее применить. Объем в 20 000 токенов — это набор инструментов браузера общего назначения плюс накопленные скриншоты. Сессия lastminute.com содержала восемь компактных схем инструментов и никаких изображений, поэтому объем данных на один ход у нее другой, гораздо меньший, который я не измерял. Меньшее количество ходов — это то, что я могу сосчитать. Более легкий ход — это то, о чем я могу только спорить. В любом случае, более узкая поверхность инструментов сокращает обе стороны этого умножения одновременно.

Третий провайдер опубликовал endpoint. Это предоставило агенту набор типизированных инструментов вместо области просмотра.

Проверьте контракт, прежде чем агент начнет его использовать

Сначала я не стал подключать эндпоинт к скиллу. Я открыл его в Postman как MCP-запрос и посмотрел, что именно он предоставляет, точно так же, как читал бы документ OpenAPI перед написанием клиента для него.

Создайте новый MCP-запрос, укажите URL сервера и перечислите инструменты:

Ответ показывает, с чем предстоит работать агенту, в том числе существуют ли интересующие вас поля в виде реальных типов данных:

Две минуты чтения дали мне то, что было нужно больше всего: select_hotel_options возвращает объект policies с логическим значением pets_allowed, что сильно отличается от текста о домашних животных.

Запуск нескольких тестовых вызовов вручную перед тем, как отпустить агента на свободу, — это обычная гигиена интеграции, и она полностью оправдала себя. Это также помогло выявить ошибку форматирования в фильтре цен, которая иначе проявилась бы прямо посреди работы. Если вы находитесь по другую сторону баррикад и публикуете сервер, те же проверки применимы из документации MCP-сервера перед релизом.

Тот же скилл, 15 вызовов инструментов

Затем я перезапустил точно такую же кампанию. Пять прибрежных городов, те же даты с 15 по 19 августа, та же функция оценки.

По отдельности, для каждого провайдера:

У каждого провайдера количество шагов сократилось примерно с 33 до 15. Это чуть больше половины, а не четырехкратное сокращение, о котором говорят общие итоги сеансов. В строке со скриншотами разрыв колоссальный: около 15 на каждого браузерного провайдера против нуля.

Каждый браузерный провайдер потратил около пяти-семи минут на клики, чтение и ожидание. Загрузка данных через MCP заняла около 65 секунд. Я не засекал время по секундомеру, так что воспринимайте это скорее как примерное соотношение, а не точные измерения.

Что касается аутентификации, то честно сравнивать то, где именно происходит вход, а не его наличие. MCP-коннектор действительно потребовал авторизации, и я прошел этот процесс, как и любой другой. Но я сделал это один раз, перед запуском, и больше к нему не возвращался. Veepee же дергал меня посреди поиска, и агент сидел без дела в ожидании человека. В этом и заключается главная разница: вы платите за настройку один раз, а за интерактивное взаимодействие — каждый раз, когда агент запускается.

Стоит прямо сказать и о другом: 15 вызовов lastminute.com охватили пять прибрежных городов, что шире, чем получили оба браузерных провайдера за свои ~33 вызова. Так что строка по каждому провайдеру несколько преуменьшает разрыв. Я предпочитаю указать на это сам, чем молча замалчивать.

Чего я никак не ожидал: результат изменился

Я рассчитывал на более дешевый и быстрый вариант. Я получил другой результат, и это именно тот вывод, о котором я продолжаю думать.

Вызов подробной информации по объектам недвижимости, занявшим первые места в браузерной фазе, полностью переписал верхушку рейтинга:

  • Лидер браузерной фазы с оценкой 95 и «неуказанным» статусом домашних животных вернул значение pets_allowed: false. По той же формуле это превращает минус 5 в минус 20 и снижает оценку до 80. Моя главная рекомендация не подходила владельцам собак, и парсинг никогда бы этого не обнаружил, потому что на странице об этом не было ни слова.
  • Третий номер браузерной фазы, у которого статус тоже был «неуказан», вернул pets_allowed: true. Чистое улучшение предположения в факт.

Структурированный поиск вернул поля, которые классический проход по сайту не смог прочитать, и именно по тому единственному критерию, который определял бронирование.

Быть дешевле и быстрее было бы неплохой сношкой. А вот быть правым насчет собаки — это то, что реально изменило место нашего ночлега.

Чем этот тест не является

Сразу расставим все точки над i, потому что я бы хотел, чтобы другие поступали так же:

  • Это одна кампания, запущенная один раз. Никаких повторных тестов, доверительных интервалов и контроля.
  • Показатели токенов и стоимости являются оценками, основанными на количестве вызовов инструментов и типичных размерах одного вызова, а не на точных измерениях. Перед тем как ссылаться на любые из этих цифр, получите реальные данные из собственной панели управления.
  • Эти три бизнеса не эквивалентны по своим масштабам и ассортименту. Клуб распродаж и глобальный агрегатор предлагают разные номера, поэтому часть разницы в результатах обусловлена каталогом, а не протоколом.
  • Я никогда не запускал кампанию против обычного REST API, который занимает нишу большинства сервисов. Все туристические API, которые я рассматривал, сначала требовали партнерского соглашения, так что это сравнение все еще отсутствует.
  • Два браузерных провайдера и один MCP-провайдер — это небольшая выборка. Таблица по провайдерам — честное отражение ситуации, общие итоги сессий — нет, а один MCP-сервер — вовсе не доказательство того, что все MCP-серверы ведут себя одинаково.
  • Инструменты для управления браузером находятся в статусе исследовательского превью и вели себя соответствующим образом, включая разрыв связи посреди сессии.

Ни одно из этих оговорок не меняет того, что действительно имело значение для меня. Четыре из пяти предложений с непознаваемой политикой в отношении домашних животных — это не артефакт измерений. Это то, что веб-страница была вынуждена сказать по этому вопросу.

Главное — опыт агента, а не протокол

Заманчиво сделать вывод: «запустите MCP-сервер». Это не совсем так и позволяет многим командам снять с себя ответственность.

На самом деле между двумя фазами изменилось то, сколько работы пришлось проделать агенту для получения факта и насколько уверенным он мог быть в результате. Булево значение лучше абзаца. Типизированная цена с полем типа питания лучше цифры на карточке, которая может относиться к человеку, комнате или всему пребыванию. Фильтр, применяемый сервером, лучше фильтра, который агент должен перепроверять. MCP — это один из хороших способов обеспечить это, и теперь, когда протокол стал безсостоятельным, он развертывается как обычный HTTP-сервис, что сводит на нет большинство операционных отговорок.

Это далеко не единственный способ, и я бы преувеличил результаты одного дня экспериментов, если бы утверждал обратное. REST API с точным документом и честно типизированными полями дает агенту ровно то же самое. То же самое делает и опубликованный SDK. То же самое делает инструмент командной строки с предсказуемым выводом и реальными кодами возврата. Моему агенту нужно было значение, с которым он мог работать. Поступает ли оно через MCP, через HTTP или из бинарного файла, волнует гораздо меньше, чем то, приходит ли оно в виде типа данных или в виде предложения, которое кто-то должен интерпретировать. Я подозреваю, что lastminute.com читает это логическое значение из собственной базы данных, а не выдумывает его на уровне протокола.

Так что Staycation и Veepee проиграли не из-за отсутствия MCP. Они проиграли потому, что у них не было машиночитаемого пути к их инвентарю ни в каком виде, поэтому единственный читатель, для которого они когда-либо проектировали, — это человек с мышкой.

Это сводится к двум вопросам, которые стоит разделять. Может ли агент вообще найти и получить доступ к вашим данным, и, как только он их получил, может ли он понять, с чем имеет дело? Первый — это проблема обнаружения, и ее решает практически все машиночитаемое: спецификация, коллекция, SDK, инструмент командной строки, сервер. Второй — проблема моделирования, и никакой протокол за вас ее не решит. Вы можете выпустить отлично спроектированный API и все равно отвечать на вопрос «принимает ли этот отель собак» абзацем прозаического текста.

Часть трафика, обращающегося к вашему API прямо сейчас, — это программное обеспечение, работающее от чьего-то имени, и оно не может догадаться о вашем замысле по верстке страницы или услужливо составленному предложению.

Оцените собственный API

Если вы хотите узнать, насколько ваши API понятны для ИИ-агента, прежде чем кто-то другой укажет вам на это, Postman опубликовал специальный инструмент оценки: рейтинг API, готовых к работе с ИИ (AI-Ready APIs score). Он оценивает, насколько хорошо такие агенты, как Claude, ChatGPT и Cursor, могут находить, читать и использовать опубликованные вами спецификации, документацию, коллекции, SDK и MCP-серверы, а также включает публичную таблицу лидеров.

Обратите внимание на то, чего он не делает. Он не спрашивает, развернули ли вы MCP-сервер. Он проверяет, может ли агент найти вас, прочитать информацию о вас и выполнить действие без участия человека. И это как раз то, чего всегда хотел мой агент, когда подбирал нам отель.

Пройдите эту оценку для своей организации и воспринимайте низкие баллы как список задач, а не как школьную оценку. Отсутствие типов, недокументированные перечисления и поля, которые присутствуют в ответе, но отсутствуют в спецификации, — это именно то, что превращается в «не указано» в результатах работы чужого агента. Если строка «Понимание агентом» (Agent Understanding) оказалась самой слабой, исправление обычно обходится дешево: файлы AGENTS.md и llms.txt, публичная коллекция Postman и структурированные данные на страницах документации.

В итоге я получил лучший отель, ради чего всё и затевалось. Четыре ночи на побережье Финистера, талассо-терапия прямо на месте, в пределах бюджета и с письменным подтверждением того, что собаке здесь рады, а не на основе смутных догадок.

Кроме того, у меня появилось гораздо более четкое понимание того, какие провайдеры задумались о том, кто — или что — будет их читать.

Ресурсы

  • Рейтинг API Postman, готовых к работе с ИИ
  • Создание MCP-серверов с помощью API Network от Postman
  • Что такое MCP-сервер? — Блог Postman
  • Протокол MCP становится бессостаточным, и Postman к этому готов
  • Спецификация протокола Model Context Protocol
  • Обзор навыков агентов, документация платформы Claude
  • Кэширование промптов в Claude
  • Цены на Claude
  • Инициатива OpenAPI
← Все статьи

О чём эта статья

Ещё в разделе «Разработка ПО»

Все →
Enkrypt AI от Anaconda включена в список типичных поставщиков средств тестирования безопасности ИИ в двух отчетах Gartner® Hype Cycle™
Anaconda

Enkrypt AI от Anaconda включена в список типичных поставщиков средств тестирования безопасности ИИ в двух отчетах Gartner® Hype Cycle™

OutSystems получает сертификат соответствия TX-RAMP
OutSystems

OutSystems получает сертификат соответствия TX-RAMP

Акции Shopify упали на 7% после того, как выручка и объем продаж за третий квартал не оправдали ожиданий
Пресса
Shopify

Акции Shopify упали на 7% после того, как выручка и объем продаж за третий квартал не оправдали ожиданий

Apple ограничивает доступ к приложениям для знакомств и ИAI-компаньонам для пользователей младше 18 летПресса
Apple

Apple ограничивает доступ к приложениям для знакомств и ИAI-компаньонам для пользователей младше 18 лет

SIS против LMS для школ: основные различия и совместная работа
Powerschool

SIS против LMS для школ: основные различия и совместная работа

Политика TikTok в отношении искусственного интеллекта: что нужно маркировать (органика + реклама)
Hootsuite

Политика TikTok в отношении искусственного интеллекта: что нужно маркировать (органика + реклама)

Ещё от Postman

Ваш первый тест производительности в Postman: Краткое руководство
Postman

Ваш первый тест производительности в Postman: Краткое руководство

Управление контекстом MCP с помощью Postman Fabric Gateway
Postman

Управление контекстом MCP с помощью Postman Fabric Gateway

Postman и Baseten: создавайте производительных агентов и запускайте их с меньшими затратами
Postman

Postman и Baseten: создавайте производительных агентов и запускайте их с меньшими затратами

Имитация зависимостей для локальной разработки
Postman

Имитация зависимостей для локальной разработки

Умеет ли Postman делать нагрузочное тестирование? Да, и вот как это работает
Postman

Умеет ли Postman делать нагрузочное тестирование? Да, и вот как это работает

Добавление нового сервиса с помощью Context Graph и Claude Code
Postman

Добавление нового сервиса с помощью Context Graph и Claude Code