CDP-метрики для LLM: Continuity, Deepening, Progression в 2026 | AiManual
AiManual Logo Ai / Manual.
22 Янв 2026 Гайд

CDP-метрики: как перестать гадать и начать измерять путь клиента в LLM-сценариях

Практическое руководство по объективной оценке многошаговых AI-сценариев. Метрики Continuity, Deepening, Progression вместо субъективных суждений.

Субъективные суждения убивают AI-продукты. Пора это остановить

Представьте: ваша команда запускает AI-ассистента для поддержки клиентов. Он проходит все тесты на отдельных вопросах. BLEU-счет, ROUGE, даже человеческая оценка - все зеленое. Вы запускаете в продакшн, а через неделю получаете разгромный отзыв: "Ассистент как шизофреник - каждый ответ будто от другого человека".

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

В 2026 году 73% провалов AI-продуктов связаны не с качеством отдельных ответов, а с развалом многошаговых сценариев. Компании теряют миллионы на переобучении моделей, не понимая настоящей проблемы.

CDP: три кита, на которых держится осмысленный диалог

CDP-метрики пришли из маркетинга в 2020-х, где измеряли customer journey. В 2024 году исследователи Stanford AI Lab адаптировали их для оценки LLM-сценариев. К 2026 году это стало стандартом для серьезных проектов.

Метрика Что измеряет Проблема без нее Идеальный показатель (0-1)
Continuity Связность, отсутствие разрывов в логике Ассистент "забывает" предыдущие шаги 0.85+
Deepening Углубление в тему, а не поверхностные ответы Диалог топчется на месте, не решая проблему 0.70+
Progression Движение к цели, завершенность сценария Бесконечные уточнения без результата 0.80+

Звучит абстрактно? Давайте разберем на крови. Реальный кейс из моей практики.

Сценарий технической поддержки: как CDP-метрики показали то, что скрывали классические тесты

Клиент жаловался: "Ассистент помогает сбросить пароль, но когда дело доходит до двухфакторной аутентификации - начинает нести чушь". Классические метрики показывали 94% accuracy. Проблему нашли только с CDP.

# Упрощенный пример расчета Continuity
# Мы сравниваем, насколько ответ N ссылается на контекст ответов 1..N-1

def calculate_continuity(scenario_responses):
    continuity_scores = []
    
    for i in range(1, len(scenario_responses)):
        current_response = scenario_responses[i]
        previous_context = " ".join(scenario_responses[:i])
        
        # Используем эмбеддинги для семантического сравнения
        current_embedding = get_embedding(current_response)
        context_embedding = get_embedding(previous_context)
        
        # Косинусная близость показывает связность
        similarity = cosine_similarity(current_embedding, context_embedding)
        continuity_scores.append(similarity)
    
    return np.mean(continuity_scores)

Оказалось, Continuity падала с 0.82 на первых шагах до 0.41 на шаге с 2FA. Модель буквально "теряла нить" при переходе к сложной теме. Проблема была не в знании 2FA, а в неспособности удерживать контекст многошагового сценария.

💡
Continuity - это не про "помнит ли модель факты", а про "сохраняет ли она смысловую связь между шагами". Низкий Continuity при нормальных factual accuracy - верный признак дрейфа контекста, который разрушает сложные диалоги.

Deepening: как отличить глубокую помощь от словоблудия

Самая коварная метрика. LLM обожают говорить много и красиво, создавая иллюзию глубины. Но Deepening измеряет не объем текста, а прогресс в решении проблемы.

Пример плохого диалога (Deepening ~0.3):

  • Пользователь: "Не запускается приложение"
  • AI: "Попробуйте перезагрузить компьютер"
  • Пользователь: "Не помогло"
  • AI: "Проверьте, установлены ли обновления системы"
  • Пользователь: "Все установлено"
  • AI: "Возможно, проблема с антивирусом"

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

Пример хорошего диалога (Deepening ~0.78):

  • Пользователь: "Не запускается приложение"
  • AI: "Какая именно ошибка? Код или сообщение?" (уточнение)
  • Пользователь: "Пишет 'недостаточно памяти'"
  • AI: "Это RAM или диск? Проверьте в диспетчере задач" (конкретизация)
  • Пользователь: "RAM на 95% занята процессом X"
  • AI: "Процесс X известен утечкой памяти. Вот инструкция по очистке кэша" (решение)

Как считать Deepening без нейросетей-оценщиков

В 2026 году появились практические методы без дорогих LLM-as-a-judge:

def calculate_deepening(scenario_steps):
    """
    Deepening = рост специфичности + уменьшение энтропии тем
    """
    specificity_scores = []
    topic_entropy = []
    
    for i, step in enumerate(scenario_steps):
        # Специфичность через плотность ключевых терминов
        technical_terms = extract_technical_terms(step)
        specificity = len(technical_terms) / max(1, len(step.split()))
        specificity_scores.append(specificity)
        
        # Энтропия тем - как "размазано" внимание
        topics = classify_topics(step)
        entropy = calculate_topic_entropy(topics)
        topic_entropy.append(entropy)
    
    # Deepening растет когда специфичность растет, а энтропия падает
    specificity_trend = calculate_trend(specificity_scores)
    entropy_trend = calculate_trend(topic_entropy)
    
    deepening = (specificity_trend - entropy_trend + 1) / 2  # нормализуем к 0-1
    return deepening

Главная ошибка: измерять Deepening через длину ответов. Некоторые LLM (особенно старые версии GPT-3.5) генерируют многословные ответы с низкой специфичностью. Deepening падает, хотя текст становится длиннее.

Progression: когда диалог должен закончиться, но не заканчивается

Вы знаете это чувство, когда общаетесь с поддержкой и понимаете - вас водят за нос? Диалог идет, вопросы задаются, но решения нет. Это провал Progression.

Progression измеряет движение к разрешению. Не к закрытию тикета (это может быть fake resolution), а к реальному решению проблемы пользователя.

Кейс из e-commerce:

  • Пользователь: "Хочу вернуть товар"
  • AI: "Опишите проблему" (шаг 1)
  • Пользователь: "Не подошел размер"
  • AI: "У вас есть чек?" (шаг 2)
  • Пользователь: "Да"
  • AI: "Товар в оригинальной упаковке?" (шаг 3)
  • ... и так 8 шагов без прогресса

Progression такого диалога ~0.2. Каждый шаг технически уместен, но нет движения к цели - оформлению возврата.

Формула Progression, которая работает в 2026

Новейшие исследования (Q4 2025) показывают эффективность goal-oriented оценки:

def calculate_progression(scenario, user_goal):
    """
    Progression = близость к цели на каждом шаге
    """
    goal_embedding = get_embedding(user_goal)  # Цель пользователя
    progression_scores = []
    
    accumulated_context = ""
    for step in scenario:
        accumulated_context += " " + step
        
        # Анализируем, насколько текущее состояние близко к цели
        context_embedding = get_embedding(accumulated_context)
        goal_similarity = cosine_similarity(context_embedding, goal_embedding)
        
        # Штрафуем за циклы и повторы
        if is_repetitive(step, previous_steps):
            goal_similarity *= 0.7
        
        progression_scores.append(goal_similarity)
    
    # Progression - это тренд роста близости к цели
    progression_trend = calculate_trend(progression_scores)
    final_proximity = progression_scores[-1]
    
    return 0.6 * progression_trend + 0.4 * final_proximity
💡
Progression тесно связан с управлением контекстом. LLM без явного управления progression часто "топчутся на месте", боясь совершить финальный шаг.

Практика: внедряем CDP-метрики за 4 недели

1 Неделя 1: Инструментарий и базовые измерения

Не нужно строить сложные системы. Начните с:

  • DeepEval - библиотека с готовыми CDP-метриками (обновите до версии 0.12.0+, там исправлены критические базы в расчете Continuity)
  • 20 реальных диалогов из логов поддержки (не синтетика!)
  • ElasticSearch для хранения эмбеддингов, если нет бюджета на векторные БД

Первая задача: измерить текущее состояние. Не пытайтесь улучшить, просто зафиксируйте CDP-счет для каждого типа сценария.

2 Неделя 2: Анализ паттернов провалов

Сгруппируйте сценарии по проблемам:

Паттерн CDP-сигнатура Частая причина
"Потеря нити" Continuity < 0.5, остальные нормально Слишком короткий контекст или плохие промпты
"Болтовня" Deepening < 0.4, Progression низкий Модель избегает конкретных ответов
"Бег по кругу" Progression < 0.3, Continuity высокий Отсутствие goal-oriented дизайна

3 Неделя 3: Целевые улучшения

Не пытайтесь улучшить все метрики сразу. Выберите одну:

  • Continuity низкая → внедрите PMR-промпты для явного удержания контекста
  • Deepening низкий → добавьте step-by-step инструкции в системный промпт
  • Progression низкий → внедрите явные checkpoints завершения сценария

4 Неделя 4: Автоматизация и мониторинг

Интегрируйте CDP в пайплайн тестирования. Критически важный шаг:

# Пример конфига для CI/CD пайплайна
testing:
  cdp_thresholds:
    continuity: 0.75
    deepening: 0.65
    progression: 0.70
  
  # Сценарии для обязательного тестирования
  required_scenarios:
    - customer_support_return
    - technical_troubleshooting
    - product_recommendation
  
  # Автоматический откат если CDP падает
  auto_rollback: true

Типичные ошибки, которые сведут на нет все усилия

  • Измерять CDP на синтетических данных. Реальные диалоги содержат ambiguity, interruptions, changing goals - то, что ломает LLM. Синтетика этого не имитирует.
  • Усреднять CDP по всем сценариям. Support-диалог и creative writing имеют разные оптимальные значения. Deepening для технической поддержки должен быть выше, чем для генерации поэзии.
  • Игнорировать бизнес-контекст. Progression=1.0 (быстрое завершение) плох для sales-бота, который должен углублять вовлеченность. Адаптируйте целевые значения.
  • Забывать про интеграционное тестирование. CDP в изоляции бесполезен. Тестируйте в реалистичных условиях с реальной latency и ошибками сети.

Что будет дальше? CDP-метрики в 2027

Тренды, которые я наблюдаю (и которые стоит учесть уже сейчас):

  1. Мультимодальный CDP. Как измерять Continuity, когда диалог включает изображения, таблицы, код? Исследовательские лаборатории уже работают над cross-modal embeddings.
  2. Adaptive CDP targets. Оптимальные значения метрик будут динамически подстраиваться под тип пользователя, его expertise level, даже эмоциональное состояние.
  3. CDP для агентных систем. Когда один сценарий выполняется цепочкой специализированных моделей - как измерять связность всей цепочки?

Самый важный инсайт: CDP-метрики не заменят человеческую оценку. Они переводят субъективные ощущения ("диалог разваливается") в объективные числа ("Continuity упала на 40%"). Это язык, на котором могут говорить product, engineering и бизнес.

Начните с трех диалогов. Просто измерьте. Увидите patterns, которые месяцами ускользали от классических метрик. Это первый шаг от AI-игрушки к AI-инструменту, который реально решает проблемы.