Контекст-инжиниринг (Context Engineering) — подход к проектированию и управлению всей информацией, доступной языковой модели при выполнении задачи. Он помогает определить, какие данные модель должна получить, в какой момент их передать и какую информацию не следует добавлять в контекст.
Что входит в контекст модели
Контекст LLM не ограничивается текстом текущего запроса. В него могут входить:
- системные и пользовательские инструкции;
- история диалога;
- документы и фрагменты файлов;
- данные из внешних источников;
- результаты предыдущих действий;
- информация о доступных инструментах и способах их использования.
Для многошаговых AI-систем состав контекста может меняться по ходу работы. На одном этапе модели нужны одни данные, на следующем — другие. Контекст-инжиниринг определяет, как собирать, отбирать и передавать эту информацию.
Зачем нужен контекст-инжиниринг
Размер контекстного окна языковой модели ограничен, поэтому передать ей все доступные данные одновременно не всегда возможно и не всегда полезно.
Избыточный контекст занимает доступное пространство и может затруднить работу с действительно важной информацией. Недостаточный, напротив, может лишить модель данных, необходимых для выполнения задачи. Задача контекст-инжиниринга — сформировать релевантный набор информации для конкретного этапа работы модели. Для этого данные могут отбираться, сокращаться, обновляться или добавляться в контекст по мере необходимости.
Чем контекст-инжиниринг отличается от промпт-инжиниринга
Промпт-инжиниринг сосредоточен прежде всего на том, как сформулирован запрос: какие инструкции, ограничения и примеры необходимо дать модели.
Контекст-инжиниринг охватывает более широкий набор информации. Помимо самого промпта, он включает историю взаимодействия, документы, данные из внешних систем, результаты работы инструментов и другую информацию, которая становится доступна модели.
Таким образом, промпт является одной из составляющих контекста, но не исчерпывает его.
Контекст-инжиниринг в AI-агентах
Управление контекстом особенно важно для AI-агентов и других многошаговых систем. По мере выполнения задачи агент получает новые данные, вызывает инструменты и накапливает промежуточные результаты. Передавать всю историю работы на каждом шаге не всегда рационально. Система может отбирать только сведения, необходимые для текущего действия, сохранять важные результаты и исключать потерявшие актуальность данные.
За счет этого агент получает нужную информацию в тот момент, когда она требуется для принятия следующего решения или выполнения действия.