Что такое context engineering
Context engineering — это проектирование полного входного контекста модели, а не только написание одного prompt. В production сюда входят system instructions, user input, retrieved documents, memory, tool results, structured state и правила безопасности.
Начните с контракта задачи
Сначала определите, какое решение должна принять модель и какие данные для этого действительно нужны. Чем меньше нерелевантного контекста, тем проще модели выделить сигнал.
Разделяйте типы контекста
Храните отдельно постоянные инструкции, session state, user-specific memory, retrieved knowledge и результаты tools. Это упрощает приоритеты, версии и аудит.
Используйте retrieval вместо огромного prompt
Большую базу знаний лучше индексировать и подбирать небольшие релевантные фрагменты. Retrieval должен возвращать источник, timestamp и score, чтобы можно было отлаживать ошибки.
Введите context budget
У каждого типа данных должен быть лимит. Например, последние сообщения, top-k документов, краткая memory summary и только нужные tool outputs. Budget защищает latency и cost и снижает риск вытеснить важные инструкции.
Порядок важен
Критические policy и task instructions должны быть отделены от untrusted retrieved content. Не смешивайте внешние документы с system rules так, чтобы prompt injection мог изменить поведение агента.
Сжимайте старый контекст
Для длинных диалогов используйте summary или structured state вместо бесконечного transcript. Но summary должен быть проверяемым: храните ссылки на исходные события или факты.
Не путайте memory и knowledge base
Memory отвечает за устойчивое состояние пользователя или задачи. Knowledge base — за внешние документы и факты. У них разные lifecycle, permissions и правила обновления.
Tool results тоже нужно нормализовать
Не отправляйте модели мегабайты raw JSON. Выделяйте только поля, нужные следующему шагу, и сохраняйте raw result отдельно для audit/debugging.
Проверяйте context quality через evals
Тестируйте не только итоговый ответ, но и состав контекста: какие chunks попали в prompt, не потерялись ли инструкции, не подтянулся ли устаревший документ. Regression tests должны фиксировать context assembly.
Наблюдаемость
Логируйте версии prompt templates, IDs retrieved chunks, token counts, truncation, tool outputs и итоговую модель. Без этого трудно понять, почему агент изменил поведение.
Практический production checklist
Явный task contract.
Разделение trusted и untrusted context.
Retrieval вместо полного corpus.
Context budget по источникам.
Structured memory.
Нормализация tool outputs.
Versioning prompt/context templates.
Evals для context assembly.
Tracing token usage и truncation.
Безопасное удаление чувствительных данных.
Вывод
Хороший context engineering — это управляемый pipeline данных вокруг LLM. Качество растёт не от максимально длинного prompt, а от правильного отбора, структуры, приоритетов и проверяемости контекста.