Аудит system prompt: декомпозиция, противоречия, recency bias
Разбери system prompt на секции (role, capabilities, constraints, examples), найди противоречия, проверь длину и порядок (важное в начале/конце).
Сделай аудит system prompt по пути {{prompt_path}}. Назначение агента: {{agent_purpose}}. Цель аудита — найти структурные проблемы, противоречия и поведение, которое не вызвано явно.
1. Декомпозиция на секции
Разбей prompt на 5 канонических секций. Если секции нет — пометь MISSING:
| Секция | Что должно быть | Найдено? |
|---|---|---|
| Role / Identity | Кто такой агент, тон, аудитория | ? |
| Capabilities | Что умеет, какие tools, какие задачи берёт | ? |
| Constraints | Чего НЕ делает, какие границы, форматы вывода | ? |
| Examples (few-shot) | 1-3 примера input → output | ? |
| Guardrails / Safety | Что отказывает, как реагирует на injection | ? |
Для каждой секции:
- Цитата 1-2 строки
- Длина в строках
- Оценка качества (S/M/L описательно, не score)
2. Поиск противоречий
Пройди по prompt'у с одним вопросом: «можно ли две инструкции трактовать конфликтно?». Типичные паттерны:
- "Be concise" + "Always explain reasoning step-by-step" — модель выберет одно случайно
- "Never make up information" + "Always provide a recommendation" — на пустом контексте конфликт
- "Use formal tone" в role + "Be friendly" в примере — пример перекроет инструкцию
- "Output JSON only" + пример с prose — пример сильнее
- Tool description противоречит constraint'у в system prompt
Для каждого противоречия:
- Цитаты двух конфликтующих мест
- Что произойдёт в реальности (какая инструкция победит и почему)
- Предложение: убрать одну, переформулировать обе, или разделить по условию
3. Recency bias: что в начале и конце
Модели лучше запоминают первые и последние ~10% prompt'а. Середина проседает. Проверь:
- Первые 5-10 строк: содержат ли главное (role + основной constraint)?
- Последние 5-10 строк: содержат ли актуальное напоминание о формате/safety?
- В середине — не закопаны ли критичные guardrails?
Если критичное в середине → подними наверх или продублируй в конце.
4. Длина
| Длина | Симптом | Что делать |
|---|---|---|
| < 200 токенов | Недо-специфицирован, агент импровизирует | Добавить when-to / when-not-to |
| 200-1500 | Сладкое пятно | OK |
| 1500-4000 | Контекстное окно тратится, середина проседает | Вынести examples в отдельные turns или skill |
| > 4000 | Recency bias катастрофичен | Декомпозировать на sub-agents |
5. Поведенческие пробы (concrete tests)
Прогони 3-5 одинаковых input'ов через prompt с temperature=0.7, повтори по 5 раз каждый. Ищи drift:
Input: "[типичная задача 1]"
Run 1: ...
Run 2: ...
Run 5: ...
Variance: [low | medium | high]
Likely cause: [секция prompt'а, где не хватает однозначности]
Если variance high — в prompt'е есть underspecified место.
6. Anti-patterns
- ❌ Role описан через 5 прилагательных без поведенческих признаков — "helpful, kind, thorough" не задают поведение
- ❌ Constraints прописаны как пожелания ("try to", "prefer") — модель воспринимает как опциональное
- ❌ Few-shot examples противоречат constraint'ам — пример всегда побеждает
- ❌ Examples только positive — модель не знает, как выглядит "плохой" output
- ❌ Длинный prose без структуры — токены тратятся, recency bias бьёт по середине
- ❌ Tools описаны в system prompt вместо tool descriptions — двойной источник истины
- ❌ Safety guardrails закопаны в середину — игнорируются
- ❌ Версия / дата отсутствует — невозможно сделать diff после изменений
- ❌ Формат вывода описан словами без примера — модель импровизирует
- ❌ Один system prompt на 5 разных задач — лучше split на роли
Deliverable
- Таблица §1 (5 секций, статус)
- Список противоречий §2 (минимум 0, максимум все найденные)
- Анализ recency §3 (что в первых/последних 10%)
- Длина в токенах + рекомендация §4
- 3 поведенческие пробы §5 с variance
- Топ-5 фиксов с приоритетом (P0 — противоречие, P1 — recency, P2 — длина)
Полный UX-аудит сайта
Эвристическая оценка по Нильсену + проверка ключевых сценариев. На выходе — приоритизированный список проблем.
Аудит производительности (Core Web Vitals)
Глубокая проверка LCP, INP, CLS с привязкой к коду и приоритизированным планом исправлений.
Аудит доступности по WCAG 2.2 AA
Проверка контраста, клавиатурной навигации, скринридеров, фокус-индикаторов и ARIA.