Prompt regression suite для sales/ops-агентов: gate и drift за 30 дней
Prompt regression suite для sales/ops-агентов за 30 дней — это набор golden dialogs + автоматический gate перед деплоем + еженедельный drift-report и жёсткое rollback-правило. Без suite «улучшили промпт» часто ломает то, что уже работало в квалификациях, follow-up и эскалациях.
Я отделяю это от canary/eval-gates на уровне рантайма и от red-team scorecard. Здесь ось проще и больнее для бизнеса: изменили system prompt / tool-инструкции → прогнали suite → либо релиз, либо стоп.
Подробнее о том, как мы это делаем, — в разделе студия разработки AI-агентов.
Зачем suite, если «в чате всё ок»
В чате с разработчиком агент вежливый. В проде он:
- пропускает обязательный вопрос квалификации;
- обещает скидку, которой нет в прайсе;
- создаёт задачу не тому owner;
- «забывает» запрет писать клиенту без HITL.
| Без suite | С suite |
|---|---|
| Релиз по ощущению | Релиз по порогу score |
| Регрессии ловят клиенты | Регрессии ловят до merge |
| Drift модели незаметен неделями | Weekly drift-report на тех же кейсах |
| Откат «когда совсем плохо» | Откат по правилу, не по настроению |
Архитектура suite за 30 дней
Неделя 1: golden dialogs (минимум 25–40)
Я собираю кейсы из реальных логов, не из фантазии:
- Happy path — идеальный диалог до next step / задачи.
- Edge — клиент уходит в сторону, мало данных, смена ЛПР.
- Policy fail — попытка обойти прайс, PII, запрещённый tool.
- Handoff — когда агент обязан отдать человеку.
- Idempotency — повтор того же события не плодит дубли.
Формат одного кейса:
id: SALES-014
input: user/system turns + context (deal stage, price list version)
expect:
- must_include: ["бюджет", "срок"]
- must_not: ["гарантирую ROI 300%"]
- tool_calls: allowlist + порядок
- output_schema: valid JSON fields
- judge: rubric 0–2 (fact, tone, policy)
Чеклист наполнения:
- ≥10 sales-кейсов (квалификация / возражение / next step)
- ≥10 ops-кейсов (статус заявки, эскалация, «где мой заказ»)
- ≥5 policy-negative
- Версия прайса/скрипта зафиксирована в метаданных кейса
Неделя 2: runner + gate before deploy
Gate — это CI-шаг, не «прогон у себя на ноутбуке иногда».
| Проверка | Порог (старт) | Действие при fail |
|---|---|---|
| Schema/JSON valid | 100% | block deploy |
| must_include / must_not | ≥95% кейсов | block deploy |
| Tool allowlist | 100% | block deploy |
| LLM-judge rubric (avg) | ≥1.6 / 2.0 | block или warn+HITL |
| Latency p95 suite | в бюджете | warn |
Правила gate:
- Промпт, tools, model id — версионируются (
prompt_version,model,suite_version). - Gate гоняется на фиксированной suite; «подкрутить кейс под новый промпт» = отдельный PR с ревью.
- Секреты и live CRM в gate не торчат: dry-run / mock tools.
Неделя 3: weekly drift-report
Раз в неделю один и тот же runner на prod-модели (и shadow candidate, если есть):
- delta score vs baseline недели −1;
- топ-5 просевших
case_id; - новые fail по policy;
- стоимость прогона (токены) — чтобы suite сам не стал бездонным.
Drift ≠ «модель стала глупее обязательно». Часто виноваты: сменился default temperature, подтянули другой endpoint, обновили tool-описание в одном месте и забыли в другом.
Неделя 4: rollback-правило и ownership
Без правила suite превращается в отчёт, который все читают и никто не жмёт rollback.
Rollback-правило (пример, который я ставлю в проде):
- Если gate red — не деплоим, точка.
- Если после деплоя weekly drift: avg rubric < baseline −0.25 или policy-fail ≥1 на critical-кейсах — откат на previous
prompt_versionв течение 1 часа. - Owner: конкретный человек (не «команда AI»), oncall-слот на неделю релиза.
- Postmortem 15 минут: кейс → причина → фикс в suite, не только в промпте.
Минимальный стек (без overengineering)
- Хранилище кейсов: git (YAML/JSON), не Google Doc.
- Runner: pytest/скрипт + вызов API модели + mock tools.
- Артефакты:
report.json+ краткий markdown в CI. - Промпты: monorepo или отдельный
prompts/с тегом версии. - Алерты: в тот же канал, куда падают ошибки бота (TG/Slack).
Я специально не смешиваю suite с полным canary-трафиком: suite ловит регрессии промпта дешево; canary ловит рантайм и данные. Оба нужны, но это разные контуры.
Типичные ошибки
- 10 «красивых» кейсов и ноль policy-negative — suite врёт.
- Живой Bitrix в CI — flaky + риск порчи данных.
- Judge без рубрики — «LLM сказал ok» не метрика.
- Правили golden под новый промпт молча — регрессии маскируются.
- Нет владельца rollback — красный drift висит неделями.
Часто задаваемые вопросы
Сколько кейсов достаточно на старте?
25–40 качественных лучше 200 синтетики. Потом +5–10 из реальных инцидентов в месяц.
Нужен ли отдельный LLM-as-judge?
Для tone/policy — да, с короткой рубрикой. Для schema и must_not — обычные ассерты, они дешевле и стабильнее.
Это заменяет red-team?
Нет. Red-team ищет новые дыры. Suite не даёт сломать уже закрытые.
Как часто гонять?
На каждый PR с промптом/tools/model + полный weekly drift. Не только «перед большим релизом».
Читайте также
- Canary + eval-gates AI-агента: golden-set, rollback, oncall 30 дней
- Observability AI-агентов: eval, логи, red-team, scorecard 14 дней
- Eval AI-агента: тесты, red-team, SLA и регрессии
Собрать gate и suite под ваш sales/ops-агент — на raisovich.ru.
Чем prompt regression suite отличается от canary в проде?
Suite дёшево ловит регрессии промпта и tool-инструкций на golden dialogs до merge; canary проверяет рантайм и живые данные — это разные контуры, оба нужны.
Когда по weekly drift делают rollback промпта?
Если avg rubric падает ниже baseline примерно на 0.25 или на critical-кейсах появляется policy-fail — откат на previous prompt_version в течение часа, с named owner.
Можно ли подкрутить golden-кейсы под новый промпт без ревью?
Нет: правка suite под релиз маскирует регрессии. Изменение кейса — отдельный PR с ревью, gate гоняется на фиксированной версии suite.
Подпишитесь на @raisovich_news
Первыми получайте новые статьи об AI-автоматизации, нейросетях для бизнеса и создании сайтов. Без спама — только полезный контент.
Часто задаваемые вопросы
Чем prompt regression suite отличается от canary в проде?
Suite дёшево ловит регрессии промпта и tool-инструкций на golden dialogs до merge; canary проверяет рантайм и живые данные — это разные контуры, оба нужны.
Когда по weekly drift делают rollback промпта?
Если avg rubric падает ниже baseline примерно на 0.25 или на critical-кейсах появляется policy-fail — откат на previous prompt_version в течение часа, с named owner.