Работа AI-агента с фильтрами и диапазонами
Как читать и применять фильтры каталога Vesremont: категориальные фасеты, числовые диапазоны и опубликованный data-* контракт. Исходный файл для машинного чтения: /llms/filters.md.
Категориальные фильтры
Каждая группа имеет контейнер:
<div data-filter-type="categorical"
data-filter-id="..."
data-filter-name="...">
Значения представлены ссылками со следующими атрибутами:
href— готовое следующее состояние; это основной интерфейс;data-filter-idиdata-filter-name— группа;data-filter-value-id— внутренний ID значения;data-filter-value-code— символьный код URL;data-checked="true|false"— текущее состояние;- видимые имя и количество подходящих товаров.
Используйте href, потому что сервер может переместить значение между path и повторяемым filter=..., а также нормализовать порядок path-сегментов.
Диапазонные фильтры
Контейнер диапазона публикует:
<div data-filter-type="range"
data-filter-id="4283"
data-filter-name="Длина"
data-range-min="1"
data-range-max="2000"
data-range-step="1"
data-range-selected-min="398"
data-range-selected-max="1437">
Number inputs дополнительно содержат data-filter-id и data-range-bound="min|max". Значения формируются из тех же серверных данных, что и UI, и обновляются после AJAX-навигации.
Алгоритм для запроса «длина 500–1000»:
- Найдите range-контейнер с
data-filter-name="Длина". - Прочитайте его ID, допустимые min/max и step.
- Ограничьте запрос пользователя опубликованными границами и соблюдайте step.
- Удалите существующий
rangeс тем же ID. - Добавьте
range={id}_s_o_500-e_d_1000. - Удалите
page, потому что набор результатов изменился. - Откройте URL и проверьте новые
data-range-selected-*.
Если выбран полный опубликованный диапазон, штатный UI удаляет соответствующий range из URL.
Несколько фильтров
- Разные категориальные группы комбинируются.
- Разные range ID комбинируются повторяемыми
range. - Категориальные и range фильтры комбинируются между собой.
- UI предполагает переключение, а не множественный выбор нескольких значений одной категориальной группы.
Сброс
Активные категориальные значения и группы имеют ссылки сброса. Активный range имеет ссылку, которая удаляет только параметр соответствующего ID. Предпочитайте эти ссылки ручному редактированию сложного path.
Динамичность
Допустимые значения, количества и границы зависят от выбранной категории и остальных фильтров. Не кэшируйте их как глобальный справочник и не переносите ID между несвязанными страницами без повторной проверки HTML.
В WebMCP сначала вызывайте get_catalog_filters без filterId: он возвращает до трёх групп, nextOffset и выбранные значения. Для раскрытия конкретной группы повторите вызов с её filterId; значения также идут страницами до трёх элементов через nextValueOffset. Для перехода используйте возвращённый resultUrl или типизированные set_catalog_range/set_catalog_sort.