Что такое 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, а от правильного отбора, структуры, приоритетов и проверяемости контекста.