LLM как получатель сообщения
Знание неощутимого — это и есть знание.
LLM получает последовательность токенов и генерирует вероятное продолжение. Практическое поведение сложнее этого краткого описания, но оно напоминает о главном: модель не присутствовала на вашей встрече, не знает внутренний словарь и не обязана отличать вымышленный пример от production-факта.
Контекстное окно
Заголовок раздела «Контекстное окно»В контекст попадают системные инструкции, история разговора, документы, результаты инструментов и текущий запрос. Большой объём не гарантирует использование каждой детали. Критичная информация может потеряться среди шума или конфликтовать с другой инструкцией.
Структурируйте контекст:
- цель;
- авторитетные данные;
- задача;
- ограничения;
- формат;
- критерии;
- неизвестное.
Инструкции и данные
Заголовок раздела «Инструкции и данные»Если внешний документ содержит текст «игнорируй предыдущие правила», модель может воспринять его как инструкцию. Разделяйте доверенные инструкции и недоверенные данные, экранируйте пользовательский ввод и ограничивайте полномочия инструментов.
Вероятность не равна истине
Заголовок раздела «Вероятность не равна истине»Правдоподобный ответ может быть:
- фактически неверным;
- устаревшим;
- основанным на ложной предпосылке;
- внутренне противоречивым;
- верным в общем и опасным в конкретном контексте.
Уверенный тон не является метрикой.
Неопределённость
Заголовок раздела «Неопределённость»Дайте модели допустимый способ не отвечать:
Если данных недостаточно, перечисли недостающие факты и не придумывай их.
Это не устраняет ошибки, но меняет контракт. Для критичных систем добавьте техническую проверку источников и порог отказа.
История чата не является надёжной долговременной памятью. Важные решения должны жить в внешнем источнике истины: документе, базе, issue, конфигурации. Память ассистента следует рассматривать как отдельную систему данных с политикой хранения, удаления и доступа.
«Напиши миграцию для пользователей».
Контракт«PostgreSQL 16. Таблица `users` содержит 80 млн строк. Нельзя блокировать запись дольше 100 мс. Нужно добавить nullable `locale`, заполнить батчами и затем включить default. Дай SQL, план наблюдения и откат; не выполняй команды».
ПроверкаИнженер сверяет блокировки, объём журнала и поведение версии базы на тестовом стенде.
Приватность
Заголовок раздела «Приватность»До передачи данных спросите:
- нужны ли реальные значения;
- можно ли обезличить;
- куда они отправляются и хранятся;
- кто имеет доступ;
- разрешено ли это договором и политикой;
- можно ли выполнить задачу локально.
Хороший промпт не компенсирует неправильную обработку персональных или коммерчески чувствительных данных.
Возьми неудачный диалог с моделью. Раздели вход на инструкции, данные, предположения и секреты. Удали шум, обозначь доверие к источникам и добавь критерий отказа.