AI: Context Engineering


URLs
Управление контекстом / Context Engineering — это искусство предоставления LLM именно той информации, которая необходима для выполнения следующего шага, в рамках ограниченного окна модели.

Состоит из двух элементов:
  • Управление Памятью: необходимо сохранять контекст между шагами для достижения целей.
  • Управление Состоянием: позволяет Агенту помнить, где он находится в процессе выполнения сложной задачи.

Главные правила:
  • Мусор на входе = Мусор на выходе.
  • Всегда точно знайте, что в данный момент находится в контексте.


Что такое контекст

Контекст — это краткосрочная память агента, аналогично RAM компьютера.
Контекст формируется динамически и обычно включает:
  • Системный промпт (System prompt): Базовые инструкции, профиль поведения и статические правила (  📝AI: Rules  ).
  • История диалога: Сообщения пользователя и ответы модели, цепочки рассуждения, история действий агента.
  • Определения инструментов: Описания  🧰AI: Tools  ,  🔨AI: Skills  ,  🚸AI: Subagents  ,  🔌AI: MCP  и т.д.
  • Внешние знания и файлы: Извлеченные фрагменты документов (  📚AI: RAG  ), результаты поиска, содержимое прочитанных файлов, логи ошибок.
Т.е. это всё, кроме последнего промпта от пользователя.


Почему это важно

  • Отсутствие памяти: LLM по своей природе являются stateless, поэтому им необходимо каждый раз передавать всю историю общения с каждым сообщением.
  • Ограниченность окна и рост затрат: Трансформеры имеют квадратичную сложность: удвоение контекста увеличивает объем вычислений в четыре раза. Переполнение окна ведет к росту задержек (latency) и стоимости каждого запроса.
  • «Гниение контекста» (Context Rot) и «Lost in the middle»: Способность модели извлекать факты падает по мере роста объема данных, особенно если критичная информация скрыта в середине текста.
  • Предотвращение галлюцинаций и путаницы: Большой и неструктурированный контекст вызывает проблемы — модель отвлекается, путается в противоречивых данных или забывает изначальные инструкции.
  • Долгосрочные задачи и персонализация: Без сохранения контекста между сессиями агент забывает предпочтения пользователя и предыдущие шаги, что делает невозможным выполнение многошаговых задач и персонализированного поведения.
  • Деградация: Тесты показывают, что чем больше объем контекста и чем больше в нем "вопросов", тем ниже точность ответов модели.


Передача знаний в контекст

Модели имеют ограничения: данные до определенной даты, нет специфических или приватных знаний.
Способы решения этой проблемы:
(в порядке сложности и приоритета внедрения)
Способ
Суть
Ограничения
Сценарии
In-context Learning
Передача информации напрямую в промт.
  • Ограничен контекстным окном.
  • Дорог при нагрузке (оплата токенов каждый раз).
Для разовых задач или небольшого количества документов.
RAG
(Retrieval Augmented Generation)
Хранение документов в векторной базе и динамическое извлечение релевантных фрагментов для каждого запроса.
  • Нужна инфраструктура (векторная база).
  • Обеспечивает масштабируемость, актуальность и прозрачность.
Для больших, часто обновляемых или временных баз знаний.
Fine-tuning / Lora
Дообучение модели на частных данных для запоминания знаний или усвоения специализированного стиля.
  • Дорого и долго для настройки.
  • Требует переобучения при обновлении данных.
Когда нужна специфическая терминология или особый стиль при стабильных данных.


Автоматический сбор контекста

Метод
Технология
Плюсы
Минусы
Синтаксический подход
LSP (Language Server Protocol) и AST (Abstract Syntax Tree).
Низкое потребление ресурсов (CPU/RAM).
Часто перестает работать, если код содержит ошибки или не компилируется.
Семантический подход
IDE строит полный граф кода, понимая типы, наследование и связи модулей.
Анализирует код с ошибками; поддержка переходов к определениям в библиотеках.
Высокие затраты ресурсов на индексацию; жесткая привязка к конкретной IDE.
RAG по коду
Код переводится в векторные представления (эмбеддинги).
Стабильная работа даже со «сломанным» или неполным кодом.
Требует GPU или Cloud для эмбеддингов; точность может варьироваться.
Динамическое обнаружение
Прямой поиск и чтение: grep, tail, read_range и аналогичные инструменты.
Быстрый доступ к сырым данным без сложной надстройки.
Ограниченное понимание структуры кода; работа только с текстом.
Сбор контекста через тесты, линтеры и логи исполнения.
Позволяет ИИ самокорректироваться на основе реальных результатов работы.
Требует настройки проекта и инфраструктуры.


Стратегии управления контекстом

Для поддержания чистоты контекстного окна применяются базовые стратегии:
    Составление чёткого плана работы с полным описанием дизайна разрабатываемой системы (  💻AI: Цикл работы над задачей  ).
    Суммаризация старых кусков разговора, удаление старых сообщений и использование отдельных сессий.
    Сохранение промежуточных мыслей и важных фактов за пределами контекстного окна — в файлы, базы данных или долгосрочную память ( 🧠AI: Memory Bank ).
    Подтягивание в окно только тех инструкций, примеров или фактов, которые релевантны текущей задаче ( 🔨AI: Skills ).
    Разделение контекста между несколькими  узкоспециализированными агентами , где каждый имеет своё маленькое контекстное окно и решает одну подзадачу, либо изоляция  данных в песочницах .


Best Practices

  • Проектируйте архитектуру памяти до написания промптов.
  • Занимайтесь глубоким планированием до начала выполнение работы агентом.
  • Если разговор уходит в сторону, начните новую сессию, передав в нее сжатое саммари предыдущей.
  • Русский текст требует в 1.5–2 раза больше токенов, чем английский, так как популярные модели в основном обучены на английском корпусе.
  • Универсальные промпты и инструкции работают плохо. Пишите под каждый проект, стек, пайплайн уникальный набор инструкций.
  • Реализация фичей и исправление багов — это разные процессы, которые требуют разных инструкция.
  • Не добавляйте в контекст ничего лишнего. Чем меньше информационного шума, тем точнее ответы модели.
  • Никогда не загружайте большие документы целиком. Дайте агенту инструменты для точечного поиска (grep), просмотра хвоста логов (tail) и чтения конкретных строк (read_file_range).
  • Для сложных и длинных задач заставляйте агента вести todo.md или перезаписывать текущий план в конце каждого ответа. Это решает проблему «lost in the middle» и возвращает фокус на главную цель.
  • Если инструмент вернул сбой или агент ошибся, оставьте этот лог. Удаление ошибок стирает доказательства, и модель с высокой вероятностью повторит те же неверные шаги.
  • Редактируйте исходный запрос вместо того, чтобы писать исправления следующим сообщением. Это экономит историю и не путает модель.
  • При поиске воспоминаний не полагайтесь только на векторный поиск. Комбинируйте его со свежестью, важностью и частотой обращений.
  • Настройте процессы, которые будут кластеризировать воспоминания, генерировать общие инсайты, удалять дубликаты и обновлять баллы важности в фоновом режиме во время простоя.