Инженерия контекста для ИИ-агентов: руководство по жизненному циклу
Проектирование жизненного цикла контекста ИИ-агента во время выполнения: инструкции, поиск данных, результаты инструментов, история, память, сжатие, ответственность, сроки хранения и оценка.
Dali
Dali - студия AI agent systems. Давид ведёт engineering и продукт, Лиана - operations и fit процессов. Делаем production-агентов в tools, которыми команда уже пользуется.
David Hakobyan · LinkedIn · Dali
На этой странице
- Инженерия контекста и инженерия запросов
- Почему окно является дефицитным ресурсом
- Какой жизненный цикл контекста нужно спроектировать
- Каждое направление по отдельности
- Таблица решений по направлениям контекста
- Сбои при слабом жизненном цикле
- Минимальный чек-лист для одного рабочего пути
- Частые вопросы
- Спроектируйте жизненный цикл вместе с Dali
Инженерия контекста для ИИ-агентов определяет на каждом шаге, какие токены попадут в окно модели, кто за них отвечает, когда они должны быть удалены и как доказать, что этот набор по-прежнему правильно направляет агента. Это не означает «написать более длинный системный запрос». Если считать запрос всей системой, агенты в реальной эксплуатации начинают отклоняться от ожидаемого поведения, когда выгрузки инструментов, устаревшие правила и история чата вытесняют немногочисленные важные факты.
Anthropic описывает эту дисциплину как отбор оптимального набора токенов во время вывода с учётом реальных архитектурных ограничений (Effective context engineering for AI agents). На этой странице такое понимание превращено в управляемый жизненный цикл среды выполнения: инструкции, найденные знания, результаты инструментов, история разговора, память, сжатие контекста и оценка.
Это руководство по проектированию систем для реальной эксплуатации, а не сравнение поставщиков. Более широкие требования к рабочей системе, включая инструменты, обязательные подтверждения и ответственность, рассмотрены в статье что такое ИИ-агент для реальной эксплуатации.
Инженерия контекста и инженерия запросов
Инженерия запросов посвящена тому, как писать и структурировать инструкции, чтобы модель правильно выполняла задачу. Инженерия контекста управляет всем рабочим состоянием, которое попадает в окно: системными инструкциями, определениями инструментов, найденными документами, историей сообщений, результатами инструментов и сведениями, повторно загруженными из памяти (Anthropic).
Рекомендация: версионируйте текст инструкций как программный код, но проектируйте отдельный жизненный цикл для каждого другого класса токенов. Выпуск изменений запросов и схем рассмотрен в статье версионирование запросов и выпусков агентов. Разбиение корпусов на фрагменты и поддержание актуальности ссылок рассмотрены в статье RAG, память и привязка агентов к источникам. Эта страница посвящена сборке контекста во время выполнения: что находится в окне прямо сейчас и почему.
Почему окно является дефицитным ресурсом
Большие контекстные окна не отменяют необходимость отбора. Anthropic рассматривает контекст как конечный ресурс с убывающей предельной отдачей: каждый дополнительный токен конкурирует за внимание, а более длинное окно всё равно может снизить точность в отношении важной информации (Anthropic). Исследование распада контекста от Chroma показывает ту же общую закономерность на контролируемых задачах: по мере увеличения входных данных качество часто снижается, даже если сама задача остаётся простой (Chroma).
Не придумывайте единое «безопасное количество токенов» для всех моделей. Рекомендация: проектируйте небольшой рабочий набор с высокой информационной ценностью, а затем добавляйте поиск данных, память и средства управления сжатием, прежде чем полагаться на больший жёсткий предел.
Какой жизненный цикл контекста нужно спроектировать
Независимый от языка жизненный цикл: долговременные инструкции и контракты инструментов при запуске, поиск и ввод-вывод инструментов на каждом шаге, рост истории, внешняя память, сжатие при нехватке места и оценка в качестве контура управления.
Промышленный агент не загружает один неизменный блок данных. Он многократно собирает контекст, пока циклически использует инструменты.
Используйте семь направлений:
- Инструкции - системный запрос, правила, контракты результата и руководство по инструментам.
- Найденные знания - документы, строки или фрагменты, загруженные для текущей цели.
- Результаты инструментов - данные, полученные из CRM, поиска, файлов и API.
- История разговора - реплики пользователя и помощника, которые ещё находятся в активном окне.
- Память - заметки или состояние, хранящиеся вне окна и загружаемые намеренно.
- Сжатие - неполные сводки или удаление данных, которые освобождают место и сохраняют непрерывность работы.
- Оценка - свидетельства, позволяющие убедиться, что после изменений сборка контекста по-прежнему работает.
Набор средств Anthropic для длительных задач основан на сжатии, структурированных заметках и изоляции вспомогательных агентов, когда одного окна недостаточно (Anthropic). Документация и практические руководства платформы Claude разделяют сжатие всей истории, очистку результатов инструментов и память как разные средства управления разными видами роста (Compaction docs; Context engineering cookbook).
Краткий словарь жизненного цикла: записывать, выбирать, сжимать и изолировать. Записывайте долговременные заметки вне активного окна, выбирайте только относящиеся к делу найденные сведения и результаты инструментов, сжимайте историю при росте нагрузки и изолируйте исследование в отдельном исполнителе, если оно способно перегрузить основное выполнение.
Каждое направление по отдельности
Инструкции
При запуске загружайте минимальный и ясный набор инструкций. Anthropic рекомендует выбирать «правильную высоту»: инструкции должны быть достаточно конкретными, чтобы направлять поведение, но достаточно гибкими, чтобы не превращаться в хрупкий псевдокод из условий if-else (Anthropic). Здесь следует размещать долговременные правила. Не вставляйте всю базу знаний в системный запрос.
Ответственный: команда продуктовой разработки вместе с операционной командой в вопросах деловых правил. Срок действия: до выпуска новой версии. Выпускайте изменения через проверку и ограниченный пробный запуск, а не через правки действующей системы (версионирование запросов).
Найденные знания
Предпочитайте поиск непосредственно перед использованием: сохраняйте идентификаторы, например пути, ID и запросы, и загружайте только то, что нужно на текущем шаге (Anthropic). Это отличается от предварительной загрузки всех потенциально связанных документов ещё до первого токена.
Ответственный: владелец знаний или предметной области отвечает за достоверность корпуса, а среда выполнения - за правила поиска. Срок действия: удаляйте фрагменты после завершения шага, если ссылка на источник не должна сохраниться для окончательного ответа. Механизмы разбиения на фрагменты, привязки к источникам и поддержания актуальности рассмотрены на странице о RAG и привязке к источникам.
Результаты инструментов
Результаты инструментов часто оказываются самым крупным и шумным источником роста. Рекомендации Anthropic по созданию инструментов однозначны: возвращайте наиболее содержательные поля, удаляйте низкоуровневый шум и предоставляйте краткую и подробную форму ответа, если агентам нужны оба режима (Writing effective tools). Рекомендация: проектируйте инструменты так, чтобы ответ по умолчанию был небольшим и его можно было запросить повторно, а полные выгрузки выдавались только в явно выбранном подробном режиме.
При длительном выполнении очистка результатов инструментов позволяет удалять старые данные, которые можно запросить повторно, сохраняя сам факт вызова (Cookbook). Правила доступа и безопасной записи для инструментов относятся к отдельной теме; см. статью о безопасном вызове инструментов.
История разговора
История - это текущая стенограмма: цели пользователя, уточнения, планы помощника и прежние решения, которые всё ещё нужны для связности работы. Она растёт с каждым шагом. Она не заменяет долговременную память или утверждённый текст правил.
Ответственный: среда выполнения агента и команда проектирования продукта, отвечающая за пользовательский сценарий хранения данных. Для сеансов виджета, которые сбрасываются при закрытии, нужны явные продуктовые правила (контекст сеанса в виджетах чата).
Память (структурированные заметки вне окна)
Память - это внешнее состояние, которое агент записывает и впоследствии читает: заметки о ходе работы, открытые решения, контрольные точки и предпочтения пользователя, которые должны пережить сброс (Anthropic; Cookbook). Память не должна становиться хранилищем секретов или данных других клиентов.
Ответственный: платформенная команда отвечает за изоляцию хранилища, а продуктовая команда - за допустимое содержимое. Срок действия: заметки о задаче удаляются вместе с задачей, а предпочтения хранятся в течение заявленного срока.
Сжатие
При нехватке места сжатие заменяет старый контекст сводкой и позволяет продолжить работу на её основе (Anthropic).
В Claude Messages API серверное сжатие сейчас доступно как бета-функция управления контекстом (compact_20260112).
В документированных настройках по умолчанию сжатие запускается при 150,000 входных токенов, а минимальный порог запуска составляет 50,000 токенов (Compaction docs).
Эти числа являются настройками платформы по умолчанию, а не универсальным правилом для любой модели или технологического набора.
Если задать собственные инструкции по составлению сводки, согласно документации Claude они полностью заменят запрос по умолчанию, а не объединятся с ним (Compaction docs). Рекомендация: составьте инструкции по сжатию так, чтобы они сохраняли открытые решения, идентификаторы для вызова инструментов и неустранённые риски, а затем проверьте, остаются ли эти сведения после сжатия.
Оценка
Оценка не позволяет жизненному циклу отклоняться от требований. Нужны случаи, которые завершаются неудачей, когда в окно попадают неверные токены, нужные токены удаляются слишком рано или при сжатии теряется решение, необходимое на последующих шагах. Создайте для этого испытательный стенд с эталонным набором и средствами оценки результата (оценка перед вводом в эксплуатацию). Наблюдаемость показывает, что система действительно видела во время выполнения, но не заменяет проектирование жизненного цикла (наблюдаемость агентов).
Таблица решений по направлениям контекста
| Направление | Что входит | Когда входит | Кто отвечает | Правила срока действия | Свидетельства оценки |
|---|---|---|---|---|---|
| Инструкции | Системный запрос, правила, контракт результата, руководство по инструментам | При запуске; повторная загрузка только при смене версии | Разработка продукта и операционная команда по вопросам правил | Истекают только при выпуске новой версии | ID версии инструкций для выполнения; набор регрессионных проверок после изменения запроса |
| Найденные знания | Одобренные фрагменты, записи или выдержки для текущей цели | На каждом шаге разговора или работы с инструментом, когда этого требует цель | Владелец знаний отвечает за достоверность, среда выполнения - за правила поиска | Удалить после шага, если они не нужны для итоговых ссылок; запросить повторно после публикации корпуса | Проверка успешного поиска на эталонных вопросах; ловушки для устаревших документов |
| Результаты инструментов | Структурированные результаты инструментов: состояние, поля, ошибки | Сразу после каждого вызова инструмента | Платформа или автор инструмента отвечает за форму, среда выполнения - за хранение | Очистить или сократить старые результаты, которые можно запросить повторно; сохранить недавнее окно; никогда не хранить секреты | Ограничения размера результатов; успешный повторный запрос после очистки; проверки формата ошибок |
| История разговора | Реплики пользователя и помощника, всё ещё необходимые для связности | На каждом шаге | Среда выполнения и продуктовая команда, отвечающая за пользовательский сценарий хранения | Сократить после сжатия; полный сброс завершает историю сеанса | Сценарии непрерывности разговора; продуктовые проверки поведения при сбросе |
| Долговременные заметки памяти | Заметки о ходе работы, открытые решения, одобренные предпочтения | Записываются во время работы; загружаются в новом сеансе или после сжатия | Платформа отвечает за хранение и изоляцию, продуктовая команда - за допустимые поля | Заметки удаляются с завершением задачи; предпочтения подчиняются правилам хранения | Сценарии продолжения работы между сеансами; проверки изоляции данных нескольких клиентов |
| Сводка после сжатия | Точная сводка прежнего состояния окна | Когда бюджет токенов достигает заданного порога | Ответственный за правила сжатия в среде выполнения | Заменяет прежнюю полную историю; следующее сжатие может заменить эту сводку | Набор проверок: важные решения и ID сохранены после сжатия, посторонний шум отсутствует |
| Материалы оценки | Эталонные случаи, средства оценки, проходные пороги, метки сбоев | Автономно и перед выпуском; выборочная проверка действующей системы | Совместно инженерная и операционная команды | Хранить с привязкой к версии выпуска агента | Проходной порог до выдачи права записи; сравнение регрессий после изменений |
Эта таблица представляет собой рабочий контракт. Заполните колонку ответственных настоящими именами, прежде чем заявлять о готовности агента к эксплуатации.
Сбои при слабом жизненном цикле
Сбои контекста часто выглядят так, будто «модель стала хуже», хотя настоящая причина заключается в сборке контекста.
- Разрастание инструкций - каждый пограничный случай жёстко записан в системном запросе, поэтому обновления становятся хрупкими.
- Перегрузка правилами - в запрос помещены целые руководства, а поиск данных не используется.
- Устаревшие найденные сведения - гипотетический пример: агент поддержки всё ещё хранит вчерашний фрагмент правил возврата после того, как финансовая команда опубликовала новое правило, а затем составляет неверное обещание.
- Свалка результатов инструментов - гипотетический пример: операционный агент на каждом шаге помещает в окно полную выгрузку CRM, пока ранние факты не теряются в последующем шуме.
- История вместо памяти - стенограмму чата считают долговременным источником истины, а затем её стирает сброс виджета или исполнителя.
- Амнезия при сжатии - в сводку не попадает ожидающее подтверждения решение или ID обращения, и последующие инструменты действуют на основе неполного состояния.
- Память без изоляции - в заметках сохраняются сведения другого клиента или необработанные секреты.
- Отсутствие оценки сборки - оценивается только итоговый текст, поэтому загрязнённый контекст незаметно попадает в рабочую систему.
Эти проблемы входят в более широкую карту сбоев агентов в реальной эксплуатации. Когда само исследование переполняет ведущего агента, изолируйте поиск во вспомогательных агентах и возвращайте краткие сводки (Anthropic; компромиссы разных схем рассмотрены в статье несколько агентов или один агент).
Минимальный чек-лист для одного рабочего пути
Используйте его как первую рабочую проверку, а не как показную оценочную ведомость зрелости.
- Назовите рабочий процесс и необратимые действия, требующие подтверждения.
- Напишите короткий набор инструкций на правильном уровне детализации и версионируйте его.
- Перечислите инструменты и обеспечьте содержательные ответы по умолчанию.
- Определите идентификаторы поиска и сроки хранения фрагментов знаний.
- Решите, что относится к истории сеанса, а что к долговременной памяти.
- Выберите для длительных задач пороги сжатия и очистки результатов инструментов.
- Добавьте оценочные случаи, которые выявляют пустое, устаревшее или переполненное направление контекста.
- Убедитесь, что для разбора происшествий можно восстановить сведения, доступные модели (наблюдаемость).
Рекомендация: выпустите один рабочий процесс, проверенный по этому списку, прежде чем добавлять новых агентов или инструменты.
Частые вопросы
Инженерия контекста нужна только агентам для программирования?
Нет. У любого многоэтапного агента, который вызывает инструменты и работает дольше короткого чата, есть жизненный цикл контекста. Агенты поддержки, операционных процессов, обработки входящих обращений отдела продаж и исследований сталкиваются с теми же ограничениями, но используют другие инструменты.
Нужен ли встроенный механизм сжатия Anthropic, чтобы заниматься инженерией контекста?
Нет. Сжатие, очистка и память - это архитектурные шаблоны. Интерфейсы поставщика могут реализовать их за вас, но собственный оркестратор тоже способен составлять сводки, очищать данные инструментов и хранить заметки, если ответственность и оценка определены явно.
Чем это отличается от RAG?
RAG отвечает на вопрос, как хранить и находить документы для привязки к источникам. Инженерия контекста определяет, когда эти документы и все остальные данные занимают дефицитное окно, как долго они там остаются и что заменяет их при нехватке места. Используйте оба подхода и не сводите их к одному модному слову.
Спроектируйте жизненный цикл вместе с Dali
Если у вас уже есть пилотный агент, возьмите один рабочий процесс и вместе с нами разметьте направления его контекста: что входит, когда, кто отвечает, что и когда удаляется и какие оценки выявляют ошибки сборки. Это полезнее, чем ещё одно изолированное переписывание запроса.
Ознакомьтесь с решениями или начните разговор о готовности к эксплуатации с главной страницы сайта. Dali проектирует агентные системы вокруг реальных инструментов, обязательных подтверждений и рабочих контрактов, включая жизненный цикл контекста, который сохраняет управляемость модели после демонстрации.
