Разработка и тестирование System Prompt для AI-ассистента

Ответы ассистента расходятся от запуска к запуску, и это подрывает доверие клиентов. Мы разрабатываем и тестируем system prompt под ключ: задаём поведение, проверяем на реальных сценариях, закрепляем результат. На выходе — предсказуемые формулировки и сокращение ручных правок на 60%.
Часто задаваемые вопросы

System prompt разработка: где ассистент отвечает неверно

Нестабильные ответы ассистента почти никогда не связаны с возможностями модели — причина в инструкции. Один и тот же вопрос при разных формулировках получает разные ответы, а тон меняется от реплики к реплике. System prompt разработка начинается с признания: перед нами не текст, а свод правил поведения.

Самая частая ошибка — противоречия внутри промпта для AI-ассистента. Одна часть требует коротких ответов, другая — подробно раскрывать продукт; одно правило запрещает упоминать конкурентов, другое просит сравнить. Конфликт модель разрешает по-новому в каждом диалоге — отсюда нестабильность.

Второй источник — потеря контекста на длинном диалоге. К десятому сообщению ассистент забывает, что клиент уже назвал тариф или регион, и задаёт те же вопросы заново. Если поведение языковой модели не описано для повторных уточнений и смены темы, разговор распадается на несвязанные ответы.

Третье — отсутствие приоритетов. Без явного порядка «сначала факты, потом стиль» любое нестандартное обращение ломает сценарий. В поддержке это выдуманные сроки и условия, в продажах — пропущенный уточняющий вопрос и потерянный контакт.

Такие ошибки в инструкции ассистента воспроизводятся на наборе тестовых диалогов, а не угадываются. Дальше разбираем, как мы собираем и проверяем system prompt.

Измеримый эффект от выверенной инструкции ассистента

Эффект от выверенной инструкции измеряем на одном и том же эталонном наборе диалогов — несколько сотен сценариев, разложенных по типам: типовой запрос, уточнение по ходу разговора, обращение вне зоны компетенции ассистента, противоречивые требования в одном сообщении. Оценка слепая: разметчики не знают, какая версия инструкции отвечала, а расхождения между ними считаем отдельно — иначе шум разметки легко принять за улучшение.

Первый показатель — доля корректных ответов. После вычистки правил и примеров она растёт с 70–75 до 90+ процентов на тех же сценариях, а число обращений к оператору на них падает кратно: ассистент перестаёт уходить в общие формулировки и доводит диалог до результата. Отдельно смотрим ответы вне компетенции — там метрика не «правильно/неправильно», а корректность эскалации.

Повторяемость проверяем прогоном набора несколько раз при фиксированных параметрах генерации модели на стороне OpenAI. До доработки разброс по доле корректных ответов между запусками достигал 10–15 п.п., после — держится в пределах единиц: результат воспроизводится, а не зависит от удачного прохода.

Единый стиль ответов — тоже измеримая величина: структура, длина, форма обращения и формулировки отказа заданы явными правилами и проверяются автоматически по маркерам, поэтому новый сценарий не «разъезжается» по тону с остальными.

Главное изменение — предсказуемость отказов. Класс «уверенный неверный ответ» уходит, вместо него — понятный отказ или передача оператору с готовым контекстом. Дальше разбираем, как эта инструкция собирается и удерживается в рабочем состоянии.

Способы задать поведение ассистента: сравнение подходов

Поведение ассистента задаётся текстом, который подставляется в каждый запрос перед репликой пользователя. От устройства этого текста зависит, насколько предсказуемо ассистент держит роль, формат ответа и границы допустимых действий. Ниже — четыре рабочих варианта инструкций ассистента, между которыми реально выбирают команды, и ограничения каждого.

Разработка system prompt — это не поиск «правильного» формата, а подгонка конструкции под сценарий. Короткая инструкция часто становится ядром, поверх которого на отдельные ветки накладывается регламент поведения ассистента. Мы проверяем собранную схему на наборе эталонных диалогов: считаем долю корректных ответов и отказов до и после правок.

Вариант Когда подходит Ограничения
Короткая инструкция: роль, тон, формат ответа Один тип запроса, простой сценарий Теряет исключения — ассистент додумывает спорные случаи
Инструкция с примерами образцовых ответов Нужен стабильный формат: поля, разметка, шаблон Объём запроса растёт, примеры подталкивают к копированию
Регламент поведения: правила, запреты, ветвления Много ограничений и разных типов запросов Без строгой структуры часть правил выпадает из внимания модели
Многоуровневая схема: ядро плюс сценарии Несколько сценариев с общими и своими правилами Сложнее отладка — конфликт уровней ищется дольше

Выбор варианта проверяем на диалогах, которые уже ломали предыдущую версию: если схема не держит нужную долю корректных ответов, её упрощают, а не дополняют новыми правилами.

Порядок работы над инструкцией ассистента

Инструкция ассистента — не абзац вежливости, а набор правил с приоритетами: что делать при конфликте указаний, где замолчать и передать диалог человеку, какой формат ответа обязателен. Поэтому этапы разработки инструкции начинаются не с текста, а с разбора того, как ассистент отвечает сейчас. Ниже — маршрут от аудита до передачи настроенной конфигурации с проверенными сценариями.

  1. Аудит ответов ассистента: размечаем реальные диалоги — где он выходит за роль, додумывает факты, ломает формат. На выходе перечень типовых отказов с частотой.
  2. Схема правил: роль, тон, границы компетенции, приоритеты при конфликте указаний и поведение при нехватке данных — кому передать запрос.
  3. Черновик инструкции: формулировки под каждое правило плюс отдельные блоки под частые сценарии, чтобы основной текст не разрастался.
  4. Тестовый набор: эталонные реплики и ожидаемые ответы, включая провокации, обрывочные вопросы и темы вне области.
  5. Проверка инструкции: прогон по набору и сравнение с эталоном, правка формулировок, закрепление версии. Спорные ответы разбираем отдельно.
  6. Приёмка на сценариях заказчика: уточняем пограничные случаи и тон ответов.
  7. Передача: инструкция, тестовый набор и короткий регламент обновления — при смене продукта правила правятся точечно.

Дальше инструкция живёт как конфигурация: изменения проходят через тот же тестовый набор, и регресс видно до выпуска, а не в диалоге с клиентом.

Какие артефакты остаются у команды после проекта

Проект заканчивается не демонстрацией диалога, а пакетом файлов, по которым ассистента можно развивать без нас. Без этого текст инструкции живёт в переписке: правки вносятся «по памяти», а после смены ответственного никто не может объяснить, почему правило сформулировано именно так и что сломается, если его убрать.

  • Текст системной инструкции — финальная версия с разделением ролей, границами темы и форматом ответа, в репозитории, а не в переписке.
  • Карта правил и приоритетов — какие указания главнее при конфликте, когда ассистент уточняет, а когда отказывает.
  • Набор проверочных сценариев — типовые и пограничные диалоги, на которых прогоняется каждая правка инструкции.
  • Правила тестирования — порядок прогона, эталонные ответы, допустимая доля расхождений до выпуска версии.
  • Регламент обновления — владелец инструкции, порядок внесения правок и обязательная фиксация причины изменения.
  • История версий — что меняли, зачем, на каком наборе сценариев проверяли и с каким результатом.
  • Документация ассистента — роли, ограничения, подключённые источники знаний и известные слабые места.
  • Чек-лист передачи — доступы, стенды, порядок запуска проверок и точки эскалации при отклонениях.

Этот набор закрывает главный риск: логика поведения ассистента остаётся у заказчика, а не у подрядчика. Обновление инструкции превращается в понятную процедуру с проверкой, а не в эксперимент на живых пользователях.

Кейс: как убрали расхождения в ответах ассистента

Ассистент сети сервисных центров ServicePro отвечал клиентам в чате, почте и мессенджере. На контрольном наборе из 200 сценариев один и тот же вопрос про сроки и возврат давал расхождения в 29% случаев: правила дублировались в трёх местах инструкции и противоречили друг другу.

Это не косметика — каждая третья неверная формулировка тянула за собой повторное обращение, а операторы правили ответы вручную. Ниже — что именно переписали и как это отразилось на метриках.

Что было не так

Приоритет между правилами не был задан, поэтому модель выбирала формулировку произвольно. Об отсутствии данных в инструкции молчали, и ассистент достраивал сроки по аналогии с похожими обращениями; тон тоже плавал по каналам.

Что переписали и что получили

Инструкцию разложили на слои с явным приоритетом: факты из базы знаний, затем правила домена, затем формат и тон — при конфликте побеждает более узкое правило. Ввели жёсткое ограничение: срок или условие без опоры на источник не выводится, вместо этого ассистент задаёт уточняющий вопрос или передаёт оператору. Спорные места закрыли парами примеров «правильно / неправильно».

Тот же набор после правок: расхождения 29% → 2%, ответы с выдуманными деталями 11% → 0,8%, доля верных ответов 71% → 96%. Набор стал регрессионным — каждая правка инструкции прогоняется целиком, а откат к предыдущей версии занимает минуты.

Что делать, если промпт уже написан, но ответы плавают

Нестабильность ответов почти никогда не связана со слабой моделью — источник в самой инструкции. Если один блок требует отвечать коротко, а другой настойчиво просит раскрывать детали, ассистент каждый раз выбирает по-разному: итог зависит от того, какой фрагмент правил оказался ближе к запросу. Пока такой конфликт не найден, любая правка формулировок даёт эффект на день.

Диагностику начинаем не с переписывания промпта, а с разбора ответов, которые «поплыли». Собираем реальные запросы, где поведение расходится, и раскладываем их на три класса: правило вообще не описано, правило есть но без приоритета, правило перебивается примером или форматом вывода. Чаще всего всплывает второе — несколько равнозначных указаний, между которыми нет порядка старшинства.

Если расходятся один-два сценария, это доработка промпта: снимаем дублирующие требования, задаём явный приоритет, выносим формат ответа в отдельный блок. Когда же «плавает» заметная доля обращений и сразу по разным темам, точечные правки только запутывают — правила описаны вперемешку, роль и тон заданы в разных местах и спорят между собой. Здесь нужна пересборка инструкции целиком.

Пересборка — это разложить роль, границы допустимого, порядок приоритетов и правила поведения при нехватке данных на изолированные блоки и зафиксировать, что важнее при столкновении. Дальше инструкция прогоняется на одном и том же наборе запросов: до и после. Если разброс ответов на этом наборе перестал меняться от запуска к запуску, инструкция готова к работе, а не к следующей серии правок.

Частые технические сомнения перед стартом

Сомнения перед стартом обычно не про то, «умеет ли модель», а про управляемость: удержится ли инструкция при росте числа сценариев, что будет после обновления, кто отвечает за ошибку в ответе. Ниже — вопросы, которые задают чаще всего, и что за ними стоит инженерно.

Мы относимся к системной инструкции ассистента как к конфигурации, а не как к тексту: у неё есть версия, набор проверок и регламент изменений. Поэтому на вопросы о сопровождении есть процедурный ответ, а не обещание.

Инструкция станет неуправляемой, если добавить много правил?

Плотность правил — реальное ограничение: после определённого порога модель начинает размывать приоритеты между ними. Поэтому правила раскладываем по слоям — роль, факты, запреты, формат ответа — и проверяем конфликтные пары на наборе диалогов. Если новое правило противоречит существующему, тест показывает это до выпуска, а не в разговоре с клиентом.

Как убедиться, что ответы соответствуют правилам?

Для тестирования ассистента собираем набор реплик: типовые, пограничные и провокационные. Каждую версию инструкции прогоняем по нему и сравниваем с эталоном поведения — где модель ушла от регламента, где добавила лишнее. Отдельно смотрим неполный вопрос и попытку увести разговор за рамки темы.

Обновление инструкции — это полная пересборка решения?

Нет. Слои разделены, поэтому правка правил или тональности не затрагивает подключённые источники данных и логику интеграций. Меняем нужный слой, прогоняем проверки, выпускаем — предыдущая версия сохраняется, откат занимает минуты.

Что получает заказчик при передаче проекта?

Инструкцию с историей версий, набор проверочных диалогов, описание слоёв и регламент изменений: кто и как правит правила, что прогоняется перед выпуском. Передача не требует нашего участия — команда продолжает работу по задокументированной процедуре.

Обсудим вашу задачу: что подготовить к разговору

Чтобы разговор был предметным, готовый документ с требованиями не нужен — достаточно фрагментов: переписок, примеров неудачных ответов, черновиков инструкций. Чем конкретнее исходники, тем точнее оценка проекта и тем меньше допущений в плане работ.

  • 5–10 реальных диалогов: и удачных, и тех, где ассистент ушёл не туда.
  • Сценарии, где ответ обязан быть строго определённым, а где допустима свобода формулировки.
  • Глоссарий и правила тона: как называем продукты, что говорим клиенту и чего не говорим.
  • Жёсткие ограничения: темы, по которым ассистент молчит и передаёт диалог человеку.
  • 3–5 эталонных ответов — по ним настраиваем критерии приёмки.
  • База знаний: регламенты, таблицы, документы, из которых ассистент берёт факты.
  • Каналы запуска и роли: где работает ассистент, кто им пользуется, кто смотрит историю диалогов.
  • Метрики: доля ответов без правки оператором, доля эскалаций, время первого ответа.

В ответ мы возвращаемся с оценкой проекта и планом работ: объём, этапы, что потребуется от вашей стороны на каждом. Отдельно проговариваем критерии приёмки — по ним вы будете принимать результат, а не по общим впечатлениям.

Подготовка к старту занимает немного: доступы к базе знаний, тестовый контур и один ответственный за приёмку с вашей стороны. Этого достаточно, чтобы начать и не растягивать согласования.

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142