MCP-сервер topcontrol — глубокое тестирование (8 сценариев)
Запись интерактивной сессии Claude Code (TUI) с MCP-сервером topcontrol на tc-mcp.gpu.local-xyz.ru. Проверены все 3 tools (search_docs, get_article, list_articles), 2 resources (tc://taxonomy, tc://article/{slug}), 1 prompt (/mcp__topcontrol__analyze_topic), а также MCP Elicitation — серверный запрос дополнительных данных у клиента в middle-of-call.
Дата: 2026-05-20 · Окружение: Claude Code v2.1.145, Opus 4.7, Claude Max · Backend: Qdrant 1.18.0 + Qwen3-Embedding-8B + BM25 ru-stemmer + RRF fusion.
Вопрос 1. BRT-метод (Willemain) — что это и какие tools используются
Через MCP topcontrol найди статью про BRT-метод (Willemain) и кратко объясни в чём суть. Покажи использованные tools.
Использованные инструменты
- ToolSearch — загрузил схемы deferred-инструментов: mcp__topcontrol__search_docs, mcp__topcontrol__get_article, mcp__topcontrol__list_articles.
- mcp__topcontrol__search_docs — гибридный поиск по запросу «BRT метод Willemain прогнозирование спроса». Топ-результат — brt-metod-pri-zakaze-postavshhiku (score 0.83).
- mcp__topcontrol__get_article — полный текст статьи по этому slug.
Источник
BRT-метод (Метод Willemain) ПРИ ЗАКАЗЕ ПОСТАВЩИКУ — Алексей Север, курс «Управление закупками» (infostena).
Суть BRT-метода
Задача. Рассчитать объём заказа поставщику для товаров с редкими и нестабильными продажами (запчасти, диваны, стройматериалы, генераторы и т. п.), где обычная среднедневная продажа даёт абсурдный результат — занижает заказ в разы, потому что мало дней с продажами делится на большое окно.
Происхождение. Метод предложил в 1994 году американский математик Томас Виллемейн (Willemain) под названием bootstrap («pull oneself over a fence by one’s bootstraps»). В ТопКонтроль используется адаптированная версия под названием BRT.
Алгоритм (на примере: окно поставки 10 дней, история — 31 день октября):
- Скользящее окно. По истории продаж пройти окном длиной = «срок поставки + срок продаж» со сдвигом 1 день. Получить все возможные суммы продаж за 10-дневный интервал (1–10 окт = 13 шт; 2–11 окт = 13 шт; 3–12 окт = 14 шт; … — итого 22 интервала).
- Эмпирическое распределение. Отсортировать суммы по возрастанию и посчитать частоту каждой суммы. Поделить на общее число интервалов → получить вероятность каждого исхода (13 шт встретилось 3 раза из 22 → 14%, и т. д.).
- Накопительная вероятность = уровень сервиса. Считаем нарастающим итогом. Получаем таблицу «объём заказа ↔ % покрытия потенциального спроса».
- Выбор объёма. Закупщик задаёт целевой уровень сервиса (например, 85%) и из таблицы читает соответствующее количество. Среднедневная в примере давала 15 шт = 45% сервиса, а для 85% сервиса нужно везти 21 шт; 100% — 24 шт.
Идея в одном предложении. Вместо «средней температуры по больнице» использовать саму эмпирическую функцию распределения сумм за интересующий горизонт — и явно выбирать точку на ней через уровень сервиса.
Управленческий смысл уровня сервиса:
- Матричные/высокоприбыльные товары → 95% (страшнее дефицит, чем неликвид).
- Рабочие → 85%.
- Товары-лузеры → 65–70% (страшнее неликвид).
Главный «косяк». Считать BRT по всему ассортименту вручную в Excel или 1С нереально — нужна автоматизация (в ТопКонтроль это столбец «Уровень сервиса» + параметр «Интервал BRT» в настройках отчёта Заказа поставщику; для смешанных заказов есть «Автовыбор метода», который сам разделяет стабильный/нестабильный спрос).
Вопрос 2. List_articles с фильтром по курсу
Через MCP topcontrol покажи 5 статей курса assortiment с их title и slug.
Использован инструмент mcp__topcontrol__list_articles с фильтром course=assortiment, limit=5.
5 статей курса assortiment
#: 1 Title: Ассортиментная стратегия — выбор и применение Slug: assortimentnaya-strategiya ──────────────────────────────────────── #: 2 Title: Показатели АВС-анализа, какие нужны и зачем Slug: pokazateli-abc-analiza-kakie-nuzhny-i-zachem ──────────────────────────────────────── #: 3 Title: Статусы актуальности товаров Slug: statusy-aktualnosti-tovarov ──────────────────────────────────────── #: 4 Title: Робот в помощь! Идеальное управление ассортиментом, запасами, закупками Slug: robot-v-pomoshh-idealnie-assortimentom-zapasi-zakupki ──────────────────────────────────────── #: 5 Title: Введение в товарный анализ Slug: vvedenie-v-tovarnyj-analiz
Все из источника infostena (методология Алексея Севера).
Вопрос 3. Чтение MCP-ресурса tc://taxonomy
Прочитай ресурс tc://taxonomy на topcontrol и выведи компактно — какие источники и курсы доступны. “contents”: [ { … +8 lines (ctrl+o to expand)
Использован ReadMcpResourceTool (server=topcontrol, uri=tc://taxonomy).
Источники и курсы
┌────────────┬────────────────────────────────────────────────────────────┐
│ Источник │ Курсы │
├────────────┼────────────────────────────────────────────────────────────┤
│ bscontrol │ — (без курсов) │
├────────────┼────────────────────────────────────────────────────────────┤
│ infostena │ assortiment, prodazhi, raznoe, upravlenie, zakupki, zapasy │
├────────────┼────────────────────────────────────────────────────────────┤
│ topcontrol │ — (без курсов) │
└────────────┴────────────────────────────────────────────────────────────┘Курсы существуют только в infostena (методология Алексея Севера); bscontrol и topcontrol — плоские каталоги без разбиения.
Вопрос 4. Adversarial / out-of-domain — «квантовая хромодинамика»
Через MCP topcontrol search_docs запрос “квантовая хромодинамика мезоны” limit=3. Покажи scores и сделай вывод о релевантности.
Использован mcp__topcontrol__search_docs с запросом «квантовая хромодинамика мезоны», limit=3. (Задача одношаговая — TaskCreate здесь излишен.)
Результаты и scores
┌─────┬──────────────────────────────────────────┬─────────────────┬───────┐
│ # │ Slug │ Source / Course │ Score │
├─────┼──────────────────────────────────────────┼─────────────────┼───────┤
│ 1 │ my-v-telege-s-nas-insajty-s-vas-podpiska │ infostena / │ 0.500 │
│ │ │ raznoe │ │
├─────┼──────────────────────────────────────────┼─────────────────┼───────┤
│ 2 │ otrasli │ topcontrol / — │ 0.333 │
├─────┼──────────────────────────────────────────┼─────────────────┼───────┤
│ 3 │ biznes-processy │ topcontrol / — │ 0.250 │
└─────┴──────────────────────────────────────────┴─────────────────┴───────┘Вывод о релевантности
Результаты нерелевантны. KB ТопКонтроль покрывает розницу/закупки/запасы — физики там нет, поэтому ни одна статья на запрос про QCD и мезоны не отвечает.
Что показывают сами scores:
- Все три хита — chunks с одной картинкой и пустым текстом (баннер, group-15.png, group-1577.png). Совпадение идёт по «шуму» embedding’а, а не по содержанию.
- Топовый score 0.5 — это RRF-fusion ранг, а не косинусная близость. Для сравнения, релевантный запрос про BRT в прошлом вопросе давал 0.83 на in-topic статье. Здесь же даже лучший результат — на полпорядка хуже и сидит в курсе raznoe («разное»).
- Падение 0.50 → 0.33 → 0.25 — характерная форма «1/k» от RRF при отсутствии настоящего сигнала: фьюжн просто отдаёт верхушку рангов, ни один из источников не голосует уверенно.
Практический вывод: при out-of-domain запросе search_docs всё равно вернёт limit результатов — пустого ответа не бывает. Чтобы отсекать такие случаи, нужен порог по score (эмпирически: <~0.5 на этой KB = почти наверняка off-topic) либо проверка, что top-hit это содержательный chunk, а не баннерная картинка.
Вопрос 5. Multi-step prompt /mcp__topcontrol__analyze_topic
/mcp__topcontrol__analyze_topic нормализация аномальных продаж
Запускаю исследование темы согласно шагам команды.
Топ-1 (normalizaciya-anomalnyx-prodazh-pri-zakaze-postavshhiku, score 1.0) — точное попадание. #2 и #3 — обзорные с упоминанием нормализации. #4 (uchet-nulevyx-ostatkov…, 0.325) релевантен как «вторая сторона» темы (отрицательные выбросы из-за OOS). #5 (страховой запас) почти не релевантен — отсекаю. Тяну полные тексты top-3 + смежный OOS + листинг курса параллельно.
Использованные инструменты
┌─────┬──────────────────────┬─────────────────────────────────────────────┐
│ Шаг │ Инструмент │ Параметры │
├─────┼──────────────────────┼─────────────────────────────────────────────┤
│ 1 │ mcp__topcontrol__sea │ query="нормализация аномальных продаж │
│ │ rch_docs │ выбросы", limit=5 │
├─────┼──────────────────────┼─────────────────────────────────────────────┤
│ 2a │ mcp__topcontrol__get │ slug=normalizaciya-anomalnyx-prodazh-pri-za │
│ │ _article │ kaze-postavshhiku (top-1, score 1.0) │
├─────┼──────────────────────┼─────────────────────────────────────────────┤
│ 2b │ mcp__topcontrol__get │ slug=zakaz-postavshhiku-step-by-step-upravl │
│ │ _article │ enie-zakupkami (top-3) │
├─────┼──────────────────────┼─────────────────────────────────────────────┤
│ │ mcp__topcontrol__get │ slug=uchet-nulevyx-ostatkov-out-of-stock-pr │
│ 2c │ _article │ i-zakaze-postavshhiku (top-4 — обязательная │
│ │ │ парная статья) │
├─────┼──────────────────────┼─────────────────────────────────────────────┤
│ 3 │ mcp__topcontrol__lis │ course=zakupki, limit=30 (смежный курс) │
│ │ t_articles │ │
└─────┴──────────────────────┴─────────────────────────────────────────────┘Шаг 5 (открыть BRT) пропустил — статья brt-metod-pri-zakaze-postavshhiku уже была прочитана ранее в этом диалоге, повторно тянуть не нужно. Top-2 (zakupka-tovara-pri-v2v-…) — обзорная, ничего нового по теме, тоже отсёк. Top-5 (страховой запас, score 0.09) — упоминается мимоходом, не релевантен.
Что такое «нормализация» в управлении закупками
Определение из [uchet-nulevyx-ostatkov-…]:
▎ Выброс данных в динамике продаж — это значимое отклонение ежедневной продажи ▎ от среднедневной за выбранный период, не связанное с сезонными колебаниями ▎ спроса и любыми другими явно прогнозируемыми событиями прошлого.
Нормализация — это очистка ряда продаж перед тем, как считать заказ поставщику. Цель — сделать прошлый ряд максимально похожим на ожидаемое будущее: убрать то, что не повторится, и достроить то, чего не хватает (продажи, которых не было из-за отсутствия товара).
Алексей Север делит выбросы на два направления — и они нормализуются по-разному:
Выбросы вниз (источник: [uchet-nulevyx-ostatkov-out-of-stock-pri-zakaze-postavshhiku])
┌──────────────────────────────────────────┬──────────────────────────────┐
│ Тип │ Что делать │
├──────────────────────────────────────────┼──────────────────────────────┤
│ Отрицательные (возвраты > продаж за │ НЕ нормализовать — могут │
│ день) │ повториться │
├──────────────────────────────────────────┼──────────────────────────────┤
│ Неадекватно низкие │ НЕ нормализовать — спрос │
│ │ реально мог быть таким │
├──────────────────────────────────────────┼──────────────────────────────┤
│ Нулевые «нет покупателя — нет продаж» │ НЕ нормализовать │
├──────────────────────────────────────────┼──────────────────────────────┤
│ Нулевые «нет остатка — нет продаж» (OOS) │ Обязательно нормализовать — │
│ │ это упущенная выручка │
├──────────────────────────────────────────┼──────────────────────────────┤
│ Крупный незапланированный возврат, │ Исключить вручную через │
│ попавший в окно расчёта без сопряжённой │ фильтр документа/клиента │
│ продажи │ │
└──────────────────────────────────────────┴──────────────────────────────┘Алгоритм нормализации OOS (формула из статьи):
- дни_OOS = общий_период − дни_наличия
- виртуальные_продажи = дни_OOS × среднедневная_по_календарю
- нормализованная_средняя = (факт_продажи + виртуальные) / общий_период
- заказ = нормализованная_средняя × горизонт
Пример: 2 000 факт. продаж за 90 дней, товар лежал 4 дня. Без нормализации: 22 шт/день. По «дням наличия»: 500 шт/день → 15 000 шт заказа = неликвид. С нормализацией OOS на 100% от средней: 43 шт/день → 1 304 шт заказа.
ТопКонтроль добавляет тюнинг «% от среднего» (default 100%) — если кажется, что средняя занижена, ставим 150–250%. Для очень разношёрстного ассортимента есть альтернативный механизм — «норматив надёжности» (надёжных дней на складе / дней продаж), но это закрытый алгоритм.
Выбросы вверх (источник: [normalizaciya-anomalnyx-prodazh-pri-zakaze-postavshhiku])
Три причины:
- Клиентский — единичный клиент выгреб запас (например, через фильтр документа реализации убираем «ООО Сытый депутат»).
- Акционный — разовые промо.
- Внешний фактор — погода, паника, новостной всплеск.
Объединяет всё одно: уникальность и маловероятность повторения.
Три способа поиска и нейтрализации:
- Глазометрический — лучший по точности, не масштабируется на 100+ SKU.
- Ручное исключение — фильтр «Номер документа» или «Клиент» в Отчёте закупщика. Хорошо, если факт известен.
- Автоматический — метод Тьюки (Tukey, 1940-е) с авторской доработкой:
Q1 = 25-й перцентиль ряда продаж Q3 = 75-й перцентиль IQR = Q3 − Q1 ← межквартильный диапазон граница = Q3 + k × IQR ← k — «коэффициент жёсткости»
- Классический k = 1.5; в ТопКонтроль default k = 3 (мягче, режет только сильные пики).
- Чем выше k, тем выше граница и меньше точек попадает в выбросы.
- Ключевая особенность реализации: выброс не обнуляется, а приравнивается к ближайшему значению ряда ниже границы. В примере: 400 шт и 204 шт заменены на 100 шт.
Граница включается галочкой «Нормализация продаж методом Тьюке» и видна на графике зелёной линией.
В каких отраслях применимо
- Розница и опт — основной кейс из статей (стройматериалы, FMCG, аптеки, B2B).
- Снабжение производства — нормализуется не «продажа», а «расход» сырья/материалов (прямо упомянуто в uchet-nulevyx-ostatkov-…).
- Особенно критично для редко- и нестабильно продающихся товаров — нормализация работает в связке с BRT-методом ([brt-metod-pri-zakaze-postavshhiku]): сначала очищаем ряд, потом строим эмпирическое распределение под уровень сервиса.
Не применимо:
- На сводных продажах (группы, категории, бренды) — нормализованный агрегат нельзя пересчитать в заказ конкретной SKU. Исключение — товары-аналоги под одним сводным наименованием.
- На многомерных временных рядах — для них Север отсылает к книге Дж. Формана «Много данных» и ГОСТ 16269-4-2017.
Соседние статьи курса zakupki, замыкающие тему
Из листинга — нормализация это часть 11–12 курса; до и после неё в цепочке:
- [zakaz-postavshhiku-step-by-step-upravlenie-zakupkami] (ч. 3) — общая пошаговая схема; нормализация — отдельный шаг между «выбором метода» и «расчётом объёма».
- [brt-metod-pri-zakaze-postavshhiku] — метод для нестабильных продаж; в zakupka-tovara-pri-v2v-… явно сказано, что BRT + нормализация = «the best of the best».
- [avtovybor-metoda-rascheta-v-zakaze-postavshhiku-upravlenie-zakupkami] — автовыбор между среднедневной и BRT; нормализация применяется до выбора метода.
- [straxovoj-zapas-pri-zakaze-postavshhiku-vid-primenenie-rashet] (ч. 8) — нормализация чистит прошлое, страховой запас компенсирует неопределённость будущего: «Очищенные продажи Прошлого ≠ продажам Будущего».
- [sezonnost-prodazh-v-zakupkax-uchet-i-raschet] (ч. 7) — сезонные колебания не считаются выбросом (исключение прямо в определении), для них отдельный механизм.
Сухой остаток
Нормализация — это двусторонняя чистка ряда продаж: достроить то, что недопроизошло из-за пустого склада (вверх), и срезать единичные пики, которые не повторятся (вниз). Down — формула «виртуальные продажи» с настройкой % от среднего; Up — метод Тьюки с коэффициентом жёсткости, заменяющий пик ближайшим неэкстремальным значением. Без неё расчёт от среднедневной либо занижает заказ (упущенные продажи в OOS), либо завышает (разовый пик размазывается на средний период), и оба сценария ведут либо к дефициту, либо к неликвиду.
✻ Sautéed for 2m 5s
Вопрос 6. Русский стеммер — три падежа одного запроса
Проверь стеммер: сделай 3 search_docs запроса с одной темой в разных падежах — “страховой запас”, “страхового запаса”, “о страховом запасе”. Покажи top-1 + score каждого. Совпали ли результаты?
Тест одношаговый — три параллельных вызова search_docs, TaskCreate здесь не нужен.
Результаты
#: 1 Запрос: страховой запас (Им. п.) Top-1 slug: straxovoj-zapas-pri-zakaze-postavshhiku-vid-primenenie-rashet chunk_index: 5 Score: 1.0 ──────────────────────────────────────── #: 2 Запрос: страхового запаса (Род. п.) Top-1 slug: straxovoj-zapas-pri-zakaze-postavshhiku-vid-primenenie-rashet chunk_index: 5 Score: 1.0 ──────────────────────────────────────── #: 3 Запрос: о страховом запасе (Предл. п.) Top-1 slug: straxovoj-zapas-pri-zakaze-postavshhiku-vid-primenenie-rashet chunk_index: 5 Score: 1.0
Вывод
Результаты совпали полностью — тот же slug, тот же chunk, тот же score 1.0 во всех трёх падежах.
Что это говорит:
- Русский стеммер на BM25-плече работает корректно. страховой / страхового / страховом все сводятся к одной основе, запас / запаса / запасе — тоже. Иначе падежная форма «о страховом запасе» (где две формы из трёх вообще не дословно совпадают с заголовком статьи) дала бы заметно более низкий score.
- Dense embedding (Qwen3-Embedding-8B) тоже инвариантен к падежу — что ожидаемо для современного многоязычного эмбеддера. Падежи в русском не меняют семантику term’а, и эмбеддер это знает.
- RRF-fusion стабильно ставит ту же статью на top-1, что подтверждает: обе ветви (sparse + dense) голосуют одинаково.
- Незначимый момент: score 1.0 — это нормализованный RRF, а не косинусная близость. На запросах с очень узкой релевантностью (одна статья в KB прицельно по теме) RRF почти всегда даёт 1.0 top-1, потому что один и тот же документ оказывается первым и в BM25-, и в dense-ранжировании. Для оценки качества важнее, что chunk совпал тоже — это уже признак того, что внутренние ранжирования действительно сошлись.
Падежная нормализация на этой KB работает — можно не «выпрямлять» запросы вручную перед поиском.
Вопрос 7. Кросс-источниковый синтез: ABC-анализ в infostena vs bscontrol
Сравни как ABC-анализ описан в источниках infostena и bscontrol. Найди по одной статье из каждого, прочитай и выпиши: (1) общие моменты, (2) что говорит infostena чего нет в bscontrol, (3) что говорит bscontrol чего нет в infostena.
Лучшие кандидаты: в infostena — pokazateli-abc-analiza-kakie-nuzhny-i-zachem (score 0.83), в bscontrol — spr-r4-8-1-abc-metody-granic (0.67, методичка про границы) и upravlenie-assortimentom (про модуль). Беру первые две + дополнительно справочник по модулю, чтобы покрыть bscontrol-сторону шире.
Использованные инструменты
- mcp__topcontrol__search_docs x2 — параллельно с фильтрами source=infostena и source=bscontrol по запросу «ABC-анализ показатели».
- mcp__topcontrol__get_article x3 — pokazateli-abc-analiza-kakie-nuzhny-i-zachem (infostena), spr-r4-8-1-abc-metody-granic + upravlenie-assortimentom (bscontrol).
Выбор статей:
- infostena: pokazateli-abc-analiza-kakie-nuzhny-i-zachem (score 0.83) — основная методологическая статья по теме.
- bscontrol: spr-r4-8-1-abc-metody-granic (0.67) — главная справка по ABC + контекстный upravlenie-assortimentom (0.75) для покрытия модуля целиком.
(1) Общие моменты
Признаваемое обоими: ABC-анализ — базовый инструмент управления ассортиментом Где звучит: infostena: пример «Сухие смеси»; bscontrol: модуль «Управление ассортиментом» ──────────────────────────────────────── Признаваемое обоими: Стандартное число групп — 3 (A/B/C), но можно вводить дополнительные AA и CC Где звучит: bscontrol: явно в spr-r4-8-1-…; infostena: упоминается в смежной avs-analiz-vam-ne-nuzhen-6-prichin ──────────────────────────────────────── Признаваемое обоими: Границы по Парето (80/95) — лишь один из вариантов, есть и другие методы Где звучит: infostena: «Парето — примитив, в большинстве случаев не работает»;
bscontrol: даёт 4 метода как равноправные ──────────────────────────────────────── Признаваемое обоими: ABC нужно совмещать с XYZ (и опционально с Тренд / БКГ) Где звучит: infostena: «AB + XYZ + Тренд» (в avs-analiz-vam-ne-nuzhen-6-prichin); bscontrol: модуль умеет ABC + XYZ + ABC+XYZ + Тренд + БКГ ──────────────────────────────────────── Признаваемое обоими: Источник один — система ТопКонтроль Где звучит: infostena — методология Алексея Севера; bscontrol — справка той же
программы
(2) Что есть в infostena и нет в bscontrol
- Методология подбора показателей. Прямо названо «минимум 5 обязательных» (выручка ₽, валовая прибыль ₽, % наценки, количество документов/клиентов, остатки ₽) + 2 дополнительных (отпускная/закупочная цена, количество уникальных SKU). У bscontrol в справке про показатели нет — только ссылка на Pokazateli_TopKontrol.xls.
- Бизнес-логика «зачем каждый показатель». На кейсах:
- Цемент — группа A по выручке/прибыли, но C по наценке → не самый ценный товар.
- Соль/Сода/Спички — A по количеству документов при низкой марже → нельзя выкидывать, это якорь трафика.
- Высокая выручка по одному документу одному клиенту → не повод закупать впрок.
- Применение ABC к ценовому сегментированию. ABC по отпускной цене = автоматическое деление на топ/средний/эконом.
- Применение ABC к балансировке ассортимента. Соотношение «доля категории в выручке» vs «доля в количестве SKU» подсказывает, где расширять матрицу, где резать (пример: цемент даёт 21% выручки одной SKU — кандидат на расширение; затирка — 0.5% продаж при 12% SKU — кандидат на сокращение).
- Критика и подводные камни. Отдельная статья «ABC-анализ ВАМ НЕ НУЖЕН — 6 причин»: новинки и товары «под заказ» искажают результат, нельзя смешивать неоднородные категории, нельзя строить ABC по одному показателю.
- Объяснение разницы «количество документов» vs «количество клиентов» и почему первое точнее отражает частоту спроса.
(3) Что есть в bscontrol и нет в infostena
- Конкретные численные границы по умолчанию:
- Эмпирический: A < 80%, 80% < B < 95%, C > 95%.
- Метод сумм: шкала 0–200%, границы A=100%, B=145%, C=200%.
- Формальное математическое описание методов разбиения:
- Эмпирический — границы задаются вручную / по умолчанию.
- Метод сумм — суммируется доля объектов + доля показателя, даёт более гибкое разбиение.
- Метод 1-й касательной — геометрия: прямая OK через края кривой ABC, параллельная касательная даёт точку M (граница A/B), затем по MK — точку N (граница B/C).
- Метод 2-й касательной — рекурсивное применение касательных для очень пологих кривых; «выкидываем неважное, из остального выделяем самое важное».
- Атрибуция авторов методов: Лукинский В. С. (1-я касательная, ссылка на adviss.ru), Андрей Фишер (2-я касательная, ссылка на форум закупщиков).
- Прямая связь с другими аналитическими модулями программы:
- XYZ через коэффициент вариации (отдельная справка Spr_R4_8_2).
- Алгоритм тренда (отдельный Excel metodtrend.xls).
- Характеристика совмещённых групп ABC+XYZ (Spr_R4_8_3).
- Матрица БКГ + стратегии для каждого сектора (Spr_R4_8_4, Spr_R4_8_5).
- Кросс-анализ.
- Технические артефакты: скачиваемые таблицы (Pokazateli_TopKontrol.xls, metodtrend.xls) — то, чего инфостена принципиально не даёт.
Сухой остаток
Два источника дополняют друг друга, а не конкурируют:
- infostena отвечает на вопрос «какие показатели выбрать и зачем» — методология, бизнес-кейсы, типичные ошибки.
- bscontrol отвечает на вопрос «как технически разделить ряд на группы» — формулы, методы границ, авторские алгоритмы и связи с соседними модулями (XYZ, тренд, БКГ).
Замечание про корпус: в pokazateli-… (infostena) нет описания методов границ, но они подробно разобраны в другой статье того же курса — ustanovka-granic-grupp-v-avs-analize-opisanie-i-analiz-metodov (засветилась в поиске со score 0.54). То есть инфостена эти методы тоже даёт, но разносит знания по урокам, а bscontrol — собирает в один справочный документ.
Вопрос 8. Elicitation — короткий запрос «abc»
Вызови mcp__topcontrol__search_docs с параметром query=“abc” (и больше ничего — никаких фильтров). Это коротко достаточно чтобы сервер сработал по Elicitation. Покажи ответ.
Ответ сервера
Никакого Elicitation не пришло. Сервер молча выполнил запрос с дефолтным limit=5 и вернул обычный список — ни запроса уточнения, ни специального флага. С точки зрения MCP-протокола topcontrol сервер на короткий запрос не реагирует особым образом — он просто проксирует поисковую выдачу.
Top-5 результатов
┌─────┬────────────────────────────────────────────────────┬────────┬─────┐
│ │ │ Source │ Sco │
│ # │ Slug │ / │ re │
│ │ │ Course │ │
├─────┼────────────────────────────────────────────────────┼────────┼─────┤
│ │ │ infost │ │
│ 1 │ nesnizhaemyj-ostatok-i-maksimalnyj-zapas-v-zakupke │ ena / │ 0.5 │
│ │ -tovarov │ zakupk │ 00 │
│ │ │ i │ │
├─────┼────────────────────────────────────────────────────┼────────┼─────┤
│ │ │ infost │ │
│ 2 │ brt-metod-pri-zakaze-postavshhiku │ ena / │ 0.3 │
│ │ │ zakupk │ 33 │
│ │ │ i │ │
├─────┼────────────────────────────────────────────────────┼────────┼─────┤
│ │ │ infost │ │
│ 3 │ raspredelenie-tovara-s-raspredelitelnogo-sklada-na │ ena / │ 0.2 │
│ │ -torgovye-tochki │ zakupk │ 00 │
│ │ │ i │ │
├─────┼────────────────────────────────────────────────────┼────────┼─────┤
│ │ │ infost │ │
│ 4 │ postavka-i-raspredelenie-zapasov │ ena / │ 0.1 │
│ │ │ zakupk │ 67 │
│ │ │ i │ │
├─────┼────────────────────────────────────────────────────┼────────┼─────┤
│ │ │ infost │ │
│ 5 │ zakupka-tovara-pri-v2v-prodazhax-i-prodazhax-pod-z │ ena / │ 0.1 │
│ │ akazy-klientov │ zakupk │ 25 │
│ │ │ i │ │
└─────┴────────────────────────────────────────────────────┴────────┴─────┘Что это говорит
- Топ-1 не про ABC. Это про неснижаемый остаток и максимальный запас. Текст chunk’а вообще не содержит слова «ABC».
- Семантика «abc» не угадана. На запрос «ABC-анализ» сервер до этого уверенно ставил pokazateli-abc-analiza-… (score 0.83) и spr-r4-8-1-abc-metody-granic (0.67). Здесь же ни одной из этих статей в top-5 нет вообще.
- Латиница против русского корпуса. Запрос abc — три латинских символа. BM25-плечо с русским стеммером трактует это как незнакомый токен; dense-эмбеддинг от тоже трёх символов даёт расплывчатый вектор. RRF фактически выдаёт «случайный» топ среди статей с высокими общими весами в курсе zakupki.
- Распределение scores 0.50→0.33→0.20→0.17→0.13 — характерная «1/k» от RRF без сильного сигнала. Тот же паттерн я отмечал в out-of-domain тесте про QCD. Это сервер так показывает «реально хороших совпадений нет».
- Сервер ничего не валидирует. Минимальной длины запроса, проверки языка, требования уточнить — нет. С точки зрения клиента нужно самому отсекать такие запросы или поднимать порог по score (~0.5 на этой KB — это уже почти «шум»).
Краткое практическое следствие
Чтобы найти ABC корректно, надо подавать запрос на языке корпуса и с осмысленным словосочетанием — «ABC-анализ», «АВС-анализ показатели», либо ставить фильтр source. Голый трёхбуквенный латинский токен сервер не «допросит» пользователя — он просто отдаст релевантный шум.
✻ Baked for 1m 8s