Insights (Reflector): еженедельный дайджест паттернов
Раздел /manage/ak/reflections показывает insights — это второй порядок знаний над обычными чанками. Их генерирует Celery-задача Reflector, которая раз в неделю по каждому магазину читает накопленные факты и через Gemini ищет паттерны.
Что такое insight
Reflector не пишет ещё один факт. Он смотрит на 20–100 свежих фактов магазина и спрашивает Gemini: «какие 3 закономерности здесь видит аналитик, но не увидеть в одном факте отдельно?»
Хорошие примеры insights:
Концентрация выручки Основной канал — Электроника (60% GMV), но маржа там самая низкая → стратегический риск концентрации.
Возвраты растут Returns rate в Y вырос с 3% до 8% за 3 недели → возможны проблемы с качеством поставщика B.
Несогласованное ценообразование SKU 123 и 456 в той же категории отличаются на ±25% — возможность консолидации.
НЕ insight (то, что Reflector отфильтровывает):
- ❌ Перепев отдельного факта без обобщения
- ❌ Общие банальности («конкуренция растёт»)
- ❌ Числа без бизнес-контекста
Что показывает страница
Группировка по неделям — сверху самая свежая неделя. На каждой неделе — карточки insights, отсортированные по дате (новые выше).
Цветовая разметка по actionability (Gemini сам решает):
- Красный — высокая срочность («returns spike», «margin collapse»)
- Жёлтый — средняя
- Серый — низкая (длительные тренды, без острой нужды действовать)
- Без метки — старые reflections до того, как метка появилась
Footer карточки показывает:
- Дату создания
- Tier (
draft= свежий,confirmed= вылежался) - Shop UUID (если magazine-scoped)
- Кнопку «Источники» — раскрывает factual chunks, на основе которых Gemini сделал вывод
Фильтры
- Период — 7/14/30/60/90 дней. Дефолт 30 — хватает увидеть последние 4 еженедельных запуска.
- Приоритет — multi-select; кликайте чтобы включить/выключить уровень
- Магазин — UUID для focused-view одной торговой точки
Что с insight'ами делать
Insights — это не приказы, а сигналы. Типичный недельный ритуал:
- Открыть
/manage/ak/reflections, фильтр «Высокая» приоритет, период 7д - Прочитать каждую карточку
- На «Источники» раскрыть базовые факты — проверить, что Gemini не выдумал
- Что-то полезное → завести задачу в Asana / закинуть себе в TODO
- Что-то спорное → открыть карточку (
/manage/ak/chunks/{id}), пометить tier=archived или edited
Почему insights могут отсутствовать
- Тихий магазин. Меньше 20 фактов за выбранный период → Reflector пропускает.
- Reflector ещё не пробежал. Запускается раз в неделю по cron'у (см.
worker.pyCelery Beat). - Слишком узкий фильтр. Снимите фильтр по приоритету или расширьте период.
Технические детали
- Источник данных:
ak_knowledge_chunksгдеkind=reflection - Reflector:
backend/app/agent_knowledge/jobs/reflector.py - Prompt:
REFLECTION_PROMPTвprompts.py - Lineage:
meta.derived_from_chunk_ids→ak_chunk_lineageчерез конфликт-резолвер - Confidence: по умолчанию 0.6 (LLM saying-second-order-things — снижено намеренно)
- Tier-промоушн: source=
reflectionтребуетmin_age=14d+ ручного approve через 30 дней; то есть свежие insight'ы естественно стоят вdraft2 недели
Что дальше
- Чанки — увидеть факты, на которых построен insight
- Lineage — графически проследить родословную
- Coverage gaps — найти, чего Reflector НЕ может вывести (нет фактов)