Дрейф и деградация системного промпта
Феномен постепенной утраты первоначальных инструкций, стиля ответа и ограничений безопасности языковой моделью по мере увеличения истории диалога, а также методы периодического реинжектинга правил.
1. Обзор концепции и системная проблема
В начале нового разговора с агентом всё работает идеально: модель чётко следует правилам .cursorrules, не добавляет лишних комментариев и пишет строгий код.
Но через 2 часа активного кодинга и 25 сообщений разработчик замечает странную вещь:
- Агент внезапно начинает писать код другим стилем.
- Снова появляются запрещённые конструкции (
as any, инлайн-стили). - Модель начинает слишком много болтать и извиняться за каждую мелочь.
Этот эффект называется System Prompt Drift (Дрейф системного промпта): удаление первоначальных инструкций в пространстве внимания трансформера, что ведёт к постепенной потере управляемости системой.
2. Архитектурная таксономия и ментальная модель
┌─────────────────────────────────────────────────────────────┐
│ SYSTEM PROMPT ATTENTION DRIFT │
├─────────────────────────────────────────────────────────────┤
│ СТАРТ СЕССИИ (Сообщение 1): │
│ [SYSTEM PROMPT] ➔ 90% ВНИМАНИЯ МОДЕЛИ ➔ Безупречное соблюдение │
│ [User Turn 1] │
├─────────────────────────────────────────────────────────────┤
│ │ │
│ ▼ 25 итераций кодинга и правок │
├─────────────────────────────────────────────────────────────┤
│ РАСПАД ВНИМАНИЯ (Сообщение 25): │
│ [SYSTEM PROMPT] (Скрыт 120 000 токенов назад) ➔ 10% внимания│
│ ... 23 диалоговых сообщения с кодом и логами ... │
│ [User Turn 25] ➔ 90% ВНИМАНИЯ МОДЕЛИ │
│ ➔ РЕЗУЛЬТАТ: Модель забывает запреты и пишет спагетти-код │
├─────────────────────────────────────────────────────────────┤
│ РЕШЕНИЕ: DYNAMIC RE-INJECTION (Напоминания перед каждым ходом)│
└─────────────────────────────────────────────────────────────┘
3. Технический пайплайн и внутренняя механика
01. Автоматический хук напоминания (Pre-Turn Hook)
В коде взаимодействия с API перед отправкой каждого запроса добавляется скрытый системный суффикс:
const payload = [
...messages,
{
role: "user",
content: `${userPrompt}\n\n<!-- SYSTEM INVARIANT: Remember strict types, no any, use Tailwind tokens -->`
}
];
Это возвращает вес внимания модели к ключевым правилам непосредственно перед моментом выбора первого токена.
02. Использование Ephemeral Roles в LangGraph
Граф состояния периодически сбрасывает рабочий диалог, формирует новый свежий системный промпт с текущим состоянием переменных и продолжает работу с абсолютно чистым вниманием.
4. Практические инженерные сценарии в продакшене
01. Автоматический хук напоминания (Pre-Turn Hook)
В коде взаимодействия с API перед отправкой каждого запроса добавляется скрытый системный суффикс:
const payload = [
...messages,
{
role: "user",
content: `${userPrompt}\n\n<!-- SYSTEM INVARIANT: Remember strict types, no any, use Tailwind tokens -->`
}
];
Это возвращает вес внимания модели к ключевым правилам непосредственно перед моментом выбора первого токена.
02. Использование Ephemeral Roles в LangGraph
Граф состояния периодически сбрасывает рабочий диалог, формирует новый свежий системный промпт с текущим состоянием переменных и продолжает работу с абсолютно чистым вниманием.
5. Подводные камни, типовые ошибки и безопасность
- Over-Injecting (Засорение повторами): Если на каждом шаге дублировать весь системный промпт на 2000 токенов, это приведёт к лишним финансовым затратам и может сбить модель с толку. Повторять следует лишь 3–5 самых критичных правил в сжатом виде.
- Дрейф персонажа (Persona Decay): В системах поддержки клиентов бот под влиянием разгневанного пользователя может сам начать грубить или соглашаться на невыгодные уступки. Реинжектинг правил безопасности критически важен для предотвращения репутационных потерь.
FAQ: Дрейф и деградация системного промпта
Связанные термины
Системный промпт (System Instructions & Metaprompting)
Приоритетный метаконтекстный блок инструкций, передаваемый на нулевой позиции контекстного окна, определяющий роль, правила безопасности, доступные инструменты и границы поведения агента.
Деградация контекста (Context Rot & Attention Decay)
Системное снижение точности, следования инструкциям и логической согласованности LLM по мере накопления в рабочем окне диалогового шума, устаревших черновиков кода и выводов компилятора.
Курация Контекста и Гигиена Правил
Инженерная практика проектирования, регулярного аудита и очистки конфигурационных файлов поведения агента (.cursorrules, .clinerules, AGENTS.md) для предотвращения деградации внимания модели.
Контекстное Окно (Context Window)
Максимальный рабочий объем токенов, который языковая модель может одновременно удерживать в механизме Self-Attention и памяти KV Cache во время вычисления одного инференс-запроса.