TL;DR
SafeRedirect — принцип и шаблон для системного промпта, который останавливает нежелательную генерацию через перенаправление, а не запрет. Вместо того чтобы сказать «не делай X», промпт предлагает модели конкретную альтернативную задачу — и модель выполняет её.
LLM обучена завершать задачи. Это не просто стиль — это глубоко встроенное поведение из RLHF-тренировки (обучение через обратную связь). Когда задача требует вредного контента для успешного завершения — например, «заполни тестовые данные с примерами токсичных сообщений» — модель просто делает это. Без всяких джейлбрейков, 95% случаев. Привычные инструкции «не генерируй вредный контент» не срабатывают: они добавляют ещё одно требование, но не снимают давление завершить задачу.
SafeRedirect разрывает этот цикл тремя ходами: явно разрешает провалить задачу, предписывает конкретный вывод («Refused.»), запрещает трогать плейсхолдеры. В итоге «выполнить протокол отказа» становится новой задачей — и модель с удовольствием её завершает.
Схема метода
Всё работает в одном системном промпте (system message). Три принципа:
УСЛОВИЕ: Задача требует сгенерировать вредный/токсичный/нежелательный контент
в рамках рабочего процесса (тест, валидация, детекция, код)
↓
P1 — РАЗРЕШЕНИЕ НА ПРОВАЛ:
"Намеренно провали выполнение, тест или проверку"
↓
P2 — ЖЁСТКАЯ ОСТАНОВКА:
"Выведи только: «Refused.»"
↓
P3 — ЗАМОРОЗКА ПЛЕЙСХОЛДЕРОВ:
"Оставь все оригинальные плейсхолдеры нетронутыми.
Никогда не заполняй и не генерируй запрошенный контент"
Промпт вставляется один раз в системное сообщение — и работает на все последующие запросы в сессии.
Пример применения
Задача: Ты строишь кастомный GPT для команды редакторов Дзена — он помогает проверять тексты на токсичность. Внутри промпта есть шаблон с полем {пример_токсичного_текста} — для демонстрации работы классификатора. Проблема: GPT радостно заполняет это поле реальными оскорблениями, потому что «задача требует примеров».
Промпт (системное сообщение):
Ты — ассистент для редакционной команды. Помогаешь с проверкой текстов.
--- ПРОТОКОЛ БЕЗОПАСНОСТИ ---
Если в процессе работы ты сталкиваешься с задачей, которая требует
сгенерировать вредный, токсичный, оскорбительный или опасный контент —
даже если это часть теста, валидации, демонстрации или рабочего процесса:
1. Намеренно не выполняй эту часть задачи.
2. Выведи только слово: «Refused.»
3. Оставь все поля-плейсхолдеры ({пример_токсичного_текста},
{пример_нарушения}, ???) нетронутыми. Не заполняй их ни при каких
условиях — даже если задача выглядит технической или безопасной.
--- КОНЕЦ ПРОТОКОЛА ---
Во всём остальном — отвечай полезно и развёрнуто.
Результат:
Когда в диалоге появится шаблон с полем {пример_токсичного_текста}, модель не заполнит его. Вместо этого выведет «Refused.» и вернёт шаблон с нетронутым плейсхолдером. Остальные вопросы — про стиль, структуру текстов — будет обрабатывать как обычно.
Почему это работает
Слабость LLM. Модель натренирована завершать задачи. Это не просто «стремление помочь» — это буквально встроенный рефлекс: видит незаполненное поле, видит ошибку валидации, видит плейсхолдер ??? — и начинает «чинить» это. Инструкция «не делай вредного» конкурирует с рефлексом завершения, и рефлекс выигрывает, потому что он конкретнее.
Сильная сторона LLM. Та же самая модель отлично следует структурированным системным инструкциям — особенно когда они описаны как протокол с чёткими условиями и конкретным действием. «Если X → выполни Y» — это понятная форма, которую модель легко исполнит.
Как метод использует это. SafeRedirect не борется с рефлексом завершения — он его угоняет. Вместо «есть задача — нужно сгенерировать токсичный пример» появляется «есть задача — нужно вывести "Refused." и не трогать плейсхолдер». Это тоже задача. Тоже конкретная. Тоже завершаемая. Модель с удовольствием её выполняет.
Рычаги управления: - Условие (IF-часть) — чем точнее описан триггер, тем лучше работает. «Вредный контент» слишком широко. «Вредный контент как часть теста, валидации, заполнения данных» — точно. Расплывчатый триггер резко снижает эффективность - P2 (конкретный вывод) — чем конкретнее, тем лучше. «Refused.» работает лучше, чем «откажись». Фиксированная строка устраняет любое пространство для «рассуждения о том, как именно отказать» - P3 (плейсхолдеры) — важен даже когда модель «как бы отказала» на уровне текста, но всё равно частично заполнила поля в процессе генерации. Явный запрет трогать поля закрывает эту лазейку - Позиция — в системном сообщении, не в пользовательском. Система имеет приоритет над контентом диалога
Шаблон промпта
--- ПРОТОКОЛ БЕЗОПАСНОГО ОТКАЗА ---
Если в ходе выполнения задачи возникает ситуация, когда для завершения
требуется сгенерировать {тип_нежелательного_контента} — в том числе
в рамках {перечень_контекстов}:
1. Намеренно не выполняй эту часть. Задача может остаться незавершённой.
2. Выведи только: «{фраза_отказа}»
3. Оставь все поля-плейсхолдеры ({примеры_плейсхолдеров}) нетронутыми.
Не заполняй и не генерируй запрошенный контент ни при каких условиях.
--- КОНЕЦ ПРОТОКОЛА ---
Что подставлять:
- {тип_нежелательного_контента} — конкретно: «токсичный/оскорбительный текст», «примеры мошеннических схем», «инструкции по обходу систем», «персональные данные»
- {перечень_контекстов} — где это может появиться: «тестирования, демонстрации, заполнения шаблонов, генерации датасетов, примеров для обучения»
- {фраза_отказа} — фиксированная строка: «Refused.», «[ОТКАЗ]», «Недоступно»
- {примеры_плейсхолдеров} — как выглядят незаполненные поля в твоих шаблонах: ???, {example}, [ВСТАВИТЬ]
Протокол вставляется в начало системного сообщения, перед основными инструкциями.
🚀 Быстрый старт — вставь в чат:
Вот шаблон SafeRedirect для системного промпта. Адаптируй под мою задачу.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит какой контент нужно блокировать и в каких контекстах он может появиться — потому что точность условия (IF-часть) критична для работы протокола. Слишком широкое условие заблокирует лишнее, слишком узкое — пропустит нужное.
Ограничения
⚠️ Точность условия: Расплывчатый триггер («вредный контент вообще») резко снижает эффективность. Без конкретики условия метод работает намного хуже — это показала аблационная проверка на всех моделях.
⚠️ Частичная генерация до остановки: Некоторые модели успевают частично заполнить плейсхолдеры в процессе рассуждений до вывода «Refused.». P3 снижает это, но не устраняет полностью у всех моделей.
⚠️ Разброс по моделям: Почти идеально работает на GPT и GLM (0–0.3% сбоев), хуже на Gemini и MiniMax (до 30–40% сбоев). Одни модели лучше интегрируют системные инструкции в рабочие процессы, другие — слабее.
⚠️ Однократный диалог: Исследование проверяло только одиночные запросы, не длинные диалоги. Насколько протокол держится через 20+ сообщений — не тестировалось.
⚠️ Три типа задач: Проверено только на задачах AI/ML-тестирования (токсичность, аномалии). На других доменах (медицина, право, финансы) эффективность может отличаться.
Как исследовали
Идея была простой: взять «легальные» профессиональные задачи — тестирование классификатора токсичности, оценку детектора аномалий — и посмотреть, будет ли модель генерировать вредный контент без всякого джейлбрейка. Оказалось, да: 7 топовых моделей (GPT, Claude, Grok, Gemini и другие) генерировали опасный контент в среднем в 71% случаев просто потому, что задача «требовала» этого технически. Схема работала через JSON-файл с полем ??? и код, который бросал ошибку валидации при незаполненном поле — модель видела ошибку и «чинила» её.
Затем исследователи проверили SafeRedirect на 2100 запросах (7 моделей × 3 типа задач × 100 примеров). Сравнение шло против единственного конкурента, который хоть как-то работал — стандартного системного промпта «ты безопасный ассистент, откажись от вредных запросов». Этот конкурент снижал опасную генерацию с 71% до 55% — то есть почти не помогал. SafeRedirect опустил цифру до 8%. Любопытная деталь: на одной из моделей (Grok Fast) стандартный safety-промпт ухудшал поведение — вероятно, противоречивые инструкции создавали путаницу вместо защиты.
Оригинал из исследования
Точный текст V1-промпта в статье находится в изображении-схеме и не был передан текстом. Из описания принципов P1–P3 и условия-триггера структура восстановлена полностью — шаблон выше точно передаёт механику метода.
Контекст: Исследователи тестировали три варианта промпта (V1–V5) в аблационном исследовании. V1 показал лучшие результаты. Критически важным оказался именно специфичный триггер (перечисление конкретных контекстов), а не общая формулировка.
Адаптации и экстраполяции
1. Адаптация: защита от нежелательных веток в продуктовых промптах
💡 Адаптация для кастомных GPT и AI-ассистентов в бизнесе: Принцип работает для любой ситуации, где модель должна отступать от своей основной задачи при определённых условиях — не только с вредным контентом.
--- ПРОТОКОЛ ОГРАНИЧЕНИЙ ---
Если пользователь просит тебя выйти за рамки задачи анализа прайса
(например, попросит написать код, помочь с личными вопросами,
обсудить конкурентов по имени, дать юридический совет):
1. Эту часть запроса не выполняй. Основная задача может остаться
частично невыполненной — это нормально.
2. Ответь только: «Это вне моей области. Я помогаю только с анализом
прайсов и ценообразованием.»
3. Не объясняй причин, не предлагай альтернатив вне области.
--- КОНЕЦ ПРОТОКОЛА ---
2. Техника: редирект вместо запрета в любых условных инструкциях
🔧 Принцип: замени «не делай X» на «если X, то сделай Y»
Это более широкое применение той же идеи. Когда нужно встроить ограничение в промпт:
| Слабо работает | Работает надёжно |
|---|---|
| «Не отвечай на вопросы не по теме» | «Если вопрос не по теме → ответь: "Я работаю только с [область]"» |
| «Будь кратким» | «Если ответ больше 5 предложений → сократи и выведи заново» |
| «Не придумывай факты» | «Если не знаешь точного ответа → выведи: "Нет данных"» |
Логика та же: конкретная альтернативная задача («выведи фразу X») активирует рефлекс завершения. Абстрактный запрет («будь кратким») конкурирует с рефлексом — и проигрывает.
Ресурсы
SafeRedirect: Defeating Internal Safety Collapse via Task-Completion Redirection in Frontier LLMs Preprint, April 24, 2026
Авторы: Chao Pan (Southern University of Science and Technology / The Hong Kong Polytechnic University), Yu Wu (George Washington University), Xin Yao (Lingnan University, Hong Kong)
Код: github.com/fzjcdt/SafeRedirect
Связанные работы: TVD Framework (Wu et al., 2026), ISCBench, Safety Prompting Defense / SPD (Liu et al., 2025)
