automations.reviews.catalog
Получить сервисы отзывов, ограничения и prepare_schema.
Параметров нет: передайте {}.
Точная JSON Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Руководство по работе с магазином
Подключение и настройка блока отзывов: фильтры, шаблоны, черновики агента, риски, статусы ответа и проблемы покупателя, методы подготовки и чтения результата.
Блок помогает не смешивать написание ответа с решением проблемы. Он отбирает отзывы по согласованным условиям, готовит материал для проверки и выделяет случаи, где нужен человек. Повторяющиеся жалобы могут стать задачами на качество, упаковку или описание товара.
«Подготовь черновики для новых отзывов по этим товарам. Жалобы на качество и безопасность вынеси отдельно. Не обещай компенсацию без согласования».
Набор review_cases: текст для проверки, замеченные риски, отдельные состояния ответа, проблемы и жалобы, ссылки на основания и рекомендуемый следующий шаг.
Нативный блок работает только с черновиками, публикация и отправка жалоб не включены. Любой ответ требует human review, в том числе положительный. Внешние сервисы, перечисленные в каталоге отзывов, не считаются подключёнными к X-MP.
| Слой | Назначение |
|---|---|
| Данные отзыва | ID, товар, оценка, текст, достоинства/недостатки и доступные признаки источника. |
| Правила магазина | Тон, ограничения, исключения, основания эскалации и ссылки на задачу памяти. |
| Подготовка | Проверка параметров и сборка конфигурации; без сохранения и без вызова модели. |
| Расчёт | Отбор и создание review_case в observe/shadow. |
| Проверка человеком | Проверка текста, фактов, рисков и следующего действия. |
| Память задачи | Ответственный, срок, решение и подтверждённый результат сохраняются отдельно от снимка расчёта. |
Один случай имеет три независимых направления: reply — работа над ответом, problem — проблема покупателя, complaint — подготовка или разбор жалобы. Готовый текст не означает, что проблема решена. Повторный запуск может снова показать незакрытый случай: агент продолжает прежнюю задачу, а не создаёт дубликат. Автоматический синхронизатор всех случаев с памятью в этом выпуске отсутствует.
| Данные | Как используются |
|---|---|
| ID отзыва и product ID | Связывают результат с конкретным сообщением и выбранным товаром. |
| Оценка | Фильтр rating_min–rating_max от 1 до 5. |
| Текст, pros, cons | Собираются в адаптированный текст; непустые части соединяются переводами строки. |
| Признаки фото/видео | Неизвестное has_media=null не трактуется как отсутствие вложений. |
| Хеш текста | Проверяет, что черновик относится к той версии сообщения, по которой был подготовлен. |
| Источник и ссылки на доказательства | Позволяют проверить происхождение. Ссылка сама по себе не доказывает истинность ответа. |
Риски отмечаются простыми словарями: безопасность, качество, подлинность, правовые вопросы, компенсация, несоответствие и дополнительные темы магазина. Это эвристики. Иронию, скрытую рекламу и сложный конфликт может понадобиться разобрать агенту и человеку.
| Поле | Смысл и ограничения |
|---|---|
| config_id | Имя подготовленной конфигурации. |
| service_id | native — реализованный блок; внешний сервис может вернуть service_not_integrated. |
| generation | template или agent-draft. |
| memory_binding | instructions_ref и task_ref, явно прочитанные агентом в памяти. Компилятор проверяет форму ссылки, а не содержимое памяти. |
| product_ids | 1–20 артикулов, строки цифр. |
| rating_min / rating_max | Оценки 1–5; нижняя граница не выше верхней. |
| excluded_terms | До 30 исключаемых выражений; пустой список нужно согласовать, а не принять за правило любого магазина. |
| escalation_terms | До 30 дополнительных выражений для передачи человеку. |
| max_items | 1–20 случаев за расчёт. |
| response_text | 2–1000 символов; согласованный текст шаблона. |
| model_ref | Имя источника агентского черновика. Не переключает модель и не подключает платный API. |
| drafts | 1–20 точных черновиков с ID отзыва, source_text_sha256, response_text и непустыми evidence_refs. |
template использует один заранее согласованный текст. Вызова языковой модели нет. При рискованном случае шаблон подавляется, чтобы нейтральная благодарность не подменила разбор жалобы.
agent-draft принимает уже подготовленные агентом тексты. Агент сначала читает точный отзыв и факты, использует доступную ему модель, затем передаёт черновик вместе с model_ref и основаниями. Метод prepare не вызывает эту модель за него.
source_text_sha256 считается по UTF-8 адаптированного текста: непустые text/question, pros, cons в этом порядке через символ новой строки. Если источник изменился или неполон, прежний agent draft не прикладывается. Наличие риска не превращает черновик в готовый ответ: человек всё равно проверяет его.
Проверьте факты о товаре, обещания возврата или компенсации, тон, персональные данные и соответствие правилам площадки. Ни одна оценка и ни одно совпадение словаря не разрешают автоматическую отправку.
{}{
"config_id": "guide-reviews-01",
"service_id": "native",
"generation": "template",
"memory_binding": {
"instructions_ref": "memory-revision://example/1",
"task_ref": "task-revision://example/1"
},
"product_ids": [
"123456"
],
"rating_min": 4,
"rating_max": 5,
"excluded_terms": [],
"escalation_terms": [
"аллергия"
],
"max_items": 10,
"response_text": "Спасибо за обратную связь."
}Это учебный запрос: ссылки и артикул вымышлены, текст и исключения не являются правилами вашего магазина. В реальной задаче замените их на согласованные значения. prepare возвращает несохранённый config.
{
"domain": "responder",
"idempotency_key": "guide-reviews-run-001"
}| Поле / признак | Интерпретация |
|---|---|
| action=review_case | Подготовлен случай для рассмотрения, не команда send_reply. |
| human_review_required=true | Проверка человеком обязательна. |
| reply / problem / complaint | Независимые состояния работы с ответом, проблемой и жалобой. |
| next_action | Предложенный следующий шаг; его выполнение не подразумевается. |
| evidence_refs | Основания и происхождение материала. |
| marketplace_write=false | Расчёт не публиковал ответ на WB. |
Жалоба требует конкретного фрагмента, основания действующих правил и доказательств. Модерация, удаление и исключение из рейтинга — разные результаты. Сервис не обещает удалить отзыв и не выдумывает номера правил.
| Ситуация | Что делать |
|---|---|
| service_not_integrated | Использовать native либо отдельно проектировать подтверждённую интеграцию; оплата внешнего сервиса её не создаёт. |
| Изменился текст / неверный hash | Перечитать отзыв и подготовить новую версию черновика. |
| Неполный источник | Проверить доступность текста и его частей; не дописывать от имени покупателя. |
| Неизвестное поле, auto_send=true или execute mode | Исправить настройку по prepare_schema; публикация не включается обходом компилятора. |
| В истории нет полного текста | Открыть jobs.get по полученному job_id. |
| Случай появился снова | Найти и продолжить существующую задачу в памяти. |
Параметры ниже относятся к MCP arguments. Идентичность и ключ не передаются в них. Для полного объекта config следуйте руководству домена.
automations.reviews.catalogПолучить сервисы отзывов, ограничения и prepare_schema.
Параметров нет: передайте {}.
{
"type": "object",
"properties": {},
"additionalProperties": false
}automations.reviews.prepareПроверить параметры и собрать несохранённый draft-only config; модель не вызывается.
| Параметр | Тип | Обязателен | Назначение и ограничения |
|---|---|---|---|
| config_id | строка | да | Идентификатор версии конфигурации. шаблон: "^[A-Za-z0-9][A-Za-z0-9_.-]{1,127}$" |
| service_id | строка | да | Провайдер блока отзывов; native реализован, внешние требуют интеграции. не менее символов: 1; не более символов: 64 |
| generation | строка | да | Шаблон либо подготовленный агентом черновик. варианты: ["template", "agent-draft"] |
| model_ref | строка | нет | Происхождение агентского черновика, не выбор/вызов модели. шаблон: "^[A-Za-z0-9][A-Za-z0-9_.:-]{1,127}$" |
| memory_binding | объект | да | Ссылки на явно прочитанные правила и задачу магазина. |
| memory_binding.instructions_ref | строка | да | Ссылка на версию правил памяти. шаблон: "^(?:memory|task|artifact|task-revision|memory-revision)://[A-Za-z0-9][A-Za-z0-9_./:@-]{1,255}$" |
| memory_binding.task_ref | строка | да | Ссылка на версию бизнес-задачи. шаблон: "^(?:memory|task|artifact|task-revision|memory-revision)://[A-Za-z0-9][A-Za-z0-9_./:@-]{1,255}$" |
| product_ids | массив | да | Список артикулов WB в пределах выбранного магазина. не менее элементов: 1; не более элементов: 20 |
| rating_min | целое | да | Нижняя граница оценки отзыва. минимум: 1; максимум: 5 |
| rating_max | целое | да | Верхняя граница оценки отзыва. минимум: 1; максимум: 5 |
| excluded_terms | массив | да | Согласованные исключаемые выражения. не менее элементов: 0; не более элементов: 30 |
| escalation_terms | массив | да | Дополнительные темы передачи человеку. не менее элементов: 0; не более элементов: 30 |
| response_text | строка | нет | Текст шаблона или конкретного черновика. не менее символов: 2; не более символов: 1000 |
| drafts | массив | нет | Массив точных черновиков по ID и хешу источника. не менее элементов: 1; не более элементов: 20 |
| drafts[].review_id | строка | да | ID конкретного отзыва из прочитанных данных. шаблон: "^[A-Za-z0-9][A-Za-z0-9_.:-]{1,127}$" |
| drafts[].source_text_sha256 | строка | да | SHA-256 UTF-8 адаптированного текста отзыва. шаблон: "^[a-f0-9]{64}$" |
| drafts[].response_text | строка | да | Текст шаблона или конкретного черновика. не менее символов: 2; не более символов: 1000 |
| drafts[].evidence_refs | массив | да | Непустые ссылки на основания и происхождение. не менее элементов: 1; не более элементов: 10 |
| max_items | целое | да | Максимальное число случаев за расчёт. минимум: 1; максимум: 20 |
{
"type": "object",
"additionalProperties": false,
"properties": {
"config_id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]{1,127}$"
},
"service_id": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"generation": {
"type": "string",
"enum": [
"template",
"agent-draft"
]
},
"model_ref": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{1,127}$"
},
"memory_binding": {
"type": "object",
"additionalProperties": false,
"properties": {
"instructions_ref": {
"type": "string",
"pattern": "^(?:memory|task|artifact|task-revision|memory-revision)://[A-Za-z0-9][A-Za-z0-9_./:@-]{1,255}$"
},
"task_ref": {
"type": "string",
"pattern": "^(?:memory|task|artifact|task-revision|memory-revision)://[A-Za-z0-9][A-Za-z0-9_./:@-]{1,255}$"
}
},
"required": [
"instructions_ref",
"task_ref"
]
},
"product_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"pattern": "^[0-9]{1,20}$"
},
"minItems": 1,
"maxItems": 20,
"uniqueItems": true
},
"rating_min": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"rating_max": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"excluded_terms": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"minItems": 0,
"maxItems": 30,
"uniqueItems": true
},
"escalation_terms": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"minItems": 0,
"maxItems": 30,
"uniqueItems": true
},
"response_text": {
"type": "string",
"minLength": 2,
"maxLength": 1000
},
"drafts": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"review_id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{1,127}$"
},
"source_text_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"response_text": {
"type": "string",
"minLength": 2,
"maxLength": 1000
},
"evidence_refs": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256,
"pattern": "^(?:memory|task|artifact|task-revision|memory-revision)://[A-Za-z0-9][A-Za-z0-9_./:@-]{1,255}$"
},
"minItems": 1,
"maxItems": 10,
"uniqueItems": true
}
},
"required": [
"review_id",
"source_text_sha256",
"response_text",
"evidence_refs"
]
},
"maxItems": 20,
"minItems": 1
},
"max_items": {
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"required": [
"config_id",
"service_id",
"generation",
"memory_binding",
"product_ids",
"rating_min",
"rating_max",
"excluded_terms",
"escalation_terms",
"max_items"
]
}automations.credentials.requirementsУзнать права X-MP и категории WB-ключей для домена без значений секретов.
| Параметр | Тип | Обязателен | Назначение и ограничения |
|---|---|---|---|
| domain | значение | да | Рабочий домен: цены, реклама, контент или ответы. варианты: ["advertising", "advertising-budget", "card-experiment", "catalog", "custom", "inventory-fbs", "pricing", "reputation", "supplies"] |
{
"type": "object",
"additionalProperties": false,
"required": [
"domain"
],
"properties": {
"domain": {
"enum": [
"advertising",
"advertising-budget",
"card-experiment",
"catalog",
"custom",
"inventory-fbs",
"pricing",
"reputation",
"supplies"
]
}
}
}automations.statusПрочитать состояние связанных рабочих доменов магазина.
Параметров нет: передайте {}.
{
"type": "object",
"additionalProperties": false
}automations.config.getПрочитать конфигурацию и её контрольную сумму перед обновлением.
| Параметр | Тип | Обязателен | Назначение и ограничения |
|---|---|---|---|
| domain | значение | да | Рабочий домен: цены, реклама, контент или ответы. варианты: ["advertising", "pricing", "catalog", "responder"] |
{
"type": "object",
"additionalProperties": false,
"required": [
"domain"
],
"properties": {
"domain": {
"enum": [
"advertising",
"pricing",
"catalog",
"responder"
]
}
}
}automations.config.applyПроверить и сохранить полный observe/shadow config; включение биддера запускает расчёты, а не WB execution.
| Параметр | Тип | Обязателен | Назначение и ограничения |
|---|---|---|---|
| domain | значение | да | Рабочий домен: цены, реклама, контент или ответы. варианты: ["advertising", "pricing", "catalog", "responder"] |
| config | объект | да | Полная конфигурация по руководству соответствующего домена, без секретов и caller scope. |
| idempotency_key | строка | да | Стабильный ключ одной логической операции; при повторе сохраняйте его. шаблон: "^[A-Za-z0-9][A-Za-z0-9_.:-]{7,127}$" |
{
"type": "object",
"additionalProperties": false,
"required": [
"domain",
"config",
"idempotency_key"
],
"properties": {
"domain": {
"enum": [
"advertising",
"pricing",
"catalog",
"responder"
]
},
"config": {
"type": "object",
"minProperties": 1
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{7,127}$"
}
}
}automations.shadow.runВыполнить один предварительный расчёт и сохранить отчёт без изменений WB.
| Параметр | Тип | Обязателен | Назначение и ограничения |
|---|---|---|---|
| domain | значение | да | Рабочий домен: цены, реклама, контент или ответы. варианты: ["advertising", "pricing", "catalog", "responder"] |
| idempotency_key | строка | да | Стабильный ключ одной логической операции; при повторе сохраняйте его. шаблон: "^[A-Za-z0-9][A-Za-z0-9_.:-]{7,127}$" |
{
"type": "object",
"additionalProperties": false,
"required": [
"domain",
"idempotency_key"
],
"properties": {
"domain": {
"enum": [
"advertising",
"pricing",
"catalog",
"responder"
]
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{7,127}$"
}
}
}automations.jobs.createПоставить один расчёт в очередь и получить job_id.
| Параметр | Тип | Обязателен | Назначение и ограничения |
|---|---|---|---|
| domain | значение | да | Рабочий домен: цены, реклама, контент или ответы. варианты: ["advertising", "pricing", "catalog", "responder"] |
| idempotency_key | строка | да | Стабильный ключ одной логической операции; при повторе сохраняйте его. шаблон: "^[A-Za-z0-9][A-Za-z0-9_.:-]{7,127}$" |
{
"type": "object",
"additionalProperties": false,
"required": [
"domain",
"idempotency_key"
],
"properties": {
"domain": {
"enum": [
"advertising",
"pricing",
"catalog",
"responder"
]
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{7,127}$"
}
}
}automations.jobs.getПрочитать состояние и полный результат задачи очереди, включая review_cases.
| Параметр | Тип | Обязателен | Назначение и ограничения |
|---|---|---|---|
| job_id | строка | да | Идентификатор задачи очереди из jobs.create/list. формат: "uuid" |
{
"type": "object",
"additionalProperties": false,
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"format": "uuid"
}
}
}automations.jobs.listПрочитать ограниченный список задач очереди магазина.
| Параметр | Тип | Обязателен | Назначение и ограничения |
|---|---|---|---|
| limit | целое | нет | Число строк/событий за страницу, а не полнота всего источника. минимум: 1; максимум: 100; по умолчанию: 20 |
{
"type": "object",
"additionalProperties": false,
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
}
}
}automations.runs.listПрочитать ограниченную историю запусков домена.
| Параметр | Тип | Обязателен | Назначение и ограничения |
|---|---|---|---|
| domain | значение | да | Рабочий домен: цены, реклама, контент или ответы. варианты: ["advertising", "pricing", "catalog", "responder"] |
| limit | целое | нет | Число строк/событий за страницу, а не полнота всего источника. минимум: 1; максимум: 100 |
{
"type": "object",
"additionalProperties": false,
"required": [
"domain"
],
"properties": {
"domain": {
"enum": [
"advertising",
"pricing",
"catalog",
"responder"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
}
}automations.emergency-stopУстановить аварийную остановку контроллеров X-MP; не обещает остановить кампании непосредственно в WB.
| Параметр | Тип | Обязателен | Назначение и ограничения |
|---|---|---|---|
| reason | строка | да | Причина остановки или изменения состояния. не менее символов: 1; не более символов: 500 |
{
"type": "object",
"additionalProperties": false,
"required": [
"reason"
],
"properties": {
"reason": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
}
}Сокращать ручную работу с отзывами и вопросами
Черновики. Публикация ответов и полный автоответчик пока не заявляются как готовая функция.
Этот раздел предназначен для настройки интеграции. Для обычной работы начните с шагов выше.