Skip to main content

Дрейф и деградация системного промпта

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

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): В системах поддержки клиентов бот под влиянием разгневанного пользователя может сам начать грубить или соглашаться на невыгодные уступки. Реинжектинг правил безопасности критически важен для предотвращения репутационных потерь.
/ Частые вопросыSchema.org FAQPage

FAQ: Дрейф и деградация системного промпта

Из-за распределения внимания (Softmax Attention Weighting): чем длиннее становится разговор, тем большая доля веса внимания смещается на недавние реплики пользователя, а первоначальный системный промпт удаляется и становится менее влиятельным на генерацию токенов.
/ Внутренняя перелинковка
Все термины
Промпты и RAG

Системный промпт (System Instructions & Metaprompting)

Приоритетный метаконтекстный блок инструкций, передаваемый на нулевой позиции контекстного окна, определяющий роль, правила безопасности, доступные инструменты и границы поведения агента.

Читать термин
Промпты и RAG

Деградация контекста (Context Rot & Attention Decay)

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

Читать термин
Вайбкодинг и IDE

Курация Контекста и Гигиена Правил

Инженерная практика проектирования, регулярного аудита и очистки конфигурационных файлов поведения агента (.cursorrules, .clinerules, AGENTS.md) для предотвращения деградации внимания модели.

Читать термин
Промпты и RAG

Контекстное Окно (Context Window)

Максимальный рабочий объем токенов, который языковая модель может одновременно удерживать в механизме Self-Attention и памяти KV Cache во время вычисления одного инференс-запроса.

Читать термин