Context Engineering

Системная дисциплина проектирования информационного контекста для LLM: от структуры промптов до memory-архитектур и управления контекстным окном.

Обсудить проект

Что такое Context Engineering

Context Engineering -- это дисциплина проектирования всего информационного контекста, который получает LLM для выполнения задачи. Это не просто «написание промптов», а системная инженерная практика.

Каждый раз, когда LLM генерирует ответ, она оперирует исключительно тем контекстом, который был ей предоставлен. Качество ответа напрямую зависит от качества, полноты и структуры этого контекста. Context Engineering -- это дисциплина, которая отвечает на вопрос: «Как собрать, структурировать и доставить нужную информацию в нужном формате, чтобы модель произвела оптимальный результат?»

В отличие от prompt engineering, который фокусируется на формулировке текстовой инструкции, context engineering охватывает весь информационный конвейер: от определения источников данных, релевантных для задачи, до стратегии управления ограниченным контекстным окном. Это включает проектирование системных инструкций, интеграцию результатов поиска (RAG), подключение инструментов (tool use), управление историей диалога, персонализацию и механизмы памяти.

Context Engineering становится ключевой компетенцией AI-инженеров по мере того, как модели усложняются, а приложения на их основе переходят от простых chatbot-сценариев к сложным agentic-системам, где контекст формируется динамически на основе десятков источников.

Компании, которые инвестируют в context engineering, получают на 40-60% более высокое качество ответов своих AI-систем без смены базовой модели. Часто оптимизация контекста даёт больший прирост качества, чем переход на более дорогую модель.

Prompt Engineering vs Context Engineering

Аспект Prompt Engineering Context Engineering
Фокус Текст инструкции Весь контекст целиком
Scope Один промпт Система из компонентов
Данные Статические примеры Динамическая сборка
Память Нет Short/Long-term memory
Инструменты Не рассматриваются Tool schemas, results
Оценка Ручная проверка Систематический eval
Итерация Ad hoc CI/CD pipeline

Структура контекста LLM

Контекст, передаваемый модели, состоит из множества компонентов. Каждый вносит свой вклад в качество и релевантность ответа.

КОМПОНЕНТЫ КОНТЕКСТА System Prompt User Context & Profile Retrieved Knowledge (RAG) Tool Schemas & Results Conversation History Long-term Memory Constraints & Guardrails LLM Context Window 128K - 1M tokens РЕЗУЛЬТАТ Structured Response Текст, JSON, действия Tool Calls Вызовы внешних API Memory Updates Обновление памяти Feedback Loop / Iteration

Компоненты контекста

Каждый компонент контекста выполняет свою функцию. Искусство context engineering -- в правильном подборе, приоритизации и оркестрации этих компонентов.

1

System Instructions

Базовая «конституция» AI-системы: роль, тон, формат ответов, ограничения, правила обработки edge cases. Задаёт поведенческие рамки, которые действуют на протяжении всего диалога. Хорошие system instructions -- конкретные, измеримые и тестируемые. Включают чёткие примеры ожидаемого поведения и explicit запреты.

2

Few-shot Examples

Конкретные примеры пар «вход -- ожидаемый выход», демонстрирующие модели желаемый паттерн поведения. 3-5 качественных примеров часто дают больший эффект, чем длинное текстовое описание. Примеры должны покрывать типичные случаи и edge cases. Динамический выбор примеров на основе similarity к текущему запросу повышает эффективность.

3

Retrieved Documents (RAG)

Релевантные фрагменты из корпоративной базы знаний, извлечённые на основе запроса пользователя. Обеспечивают grounding -- привязку ответов к фактическим данным. Качество retrieval напрямую определяет качество ответа. Включают метаданные: источник, дату, уровень достоверности для повышения transparency.

4

Tool Schemas

Описания доступных инструментов (функций, API, баз данных) в формате, понятном модели. Включают название, описание, параметры, примеры использования. Качество tool descriptions критически влияет на accuracy вызовов. Чем точнее описание -- тем реже модель вызывает неправильные инструменты или передаёт некорректные параметры.

5

Conversation History

История предыдущих сообщений в текущем диалоге. Обеспечивает continuity и способность модели ссылаться на ранее обсуждённые темы. Требует стратегии управления: при длинных диалогах необходимо суммаризировать старые сообщения, чтобы не исчерпать контекстное окно. Приоритет -- последним сообщениям.

6

User Profile

Персонализированная информация о пользователе: роль, отдел, уровень экспертизы, предпочтения, история взаимодействий. Позволяет адаптировать ответы: техническому специалисту -- детали реализации, менеджеру -- бизнес-impact. Хранится во внешнем store и подгружается динамически при каждом запросе.

Context Window Management

Контекстное окно -- ограниченный ресурс. Даже при 128K-1M токенов эффективность модели снижается на длинных контекстах. Управление окном -- ключевая инженерная задача.

Исследования показывают эффект «lost in the middle»: информация в начале и конце контекста обрабатывается моделью лучше, чем в середине. Кроме того, увеличение контекста линейно увеличивает стоимость и latency. Context Window Management -- это набор стратегий для максимизации полезности каждого токена в окне.

Приоритизация

Ранжирование компонентов контекста по важности для текущей задачи. System instructions и user query -- высший приоритет, few-shot examples и history -- адаптивный. Используйте budget allocation: фиксированные квоты для каждого компонента с возможностью перераспределения. Например: system prompt (10%), user context (5%), RAG (40%), history (30%), tools (15%).

Dynamic Context Assembly

Формирование контекста «на лету» в зависимости от запроса. Вместо статического шаблона -- pipeline, который анализирует запрос, определяет нужные компоненты и собирает оптимальный контекст. Например, запрос о продажах подтягивает CRM-данные и метрики, а технический вопрос -- документацию API и code examples.

Context Compression

Сжатие информации без потери ключевого содержания. Техники: extractive summarization старых сообщений, удаление дублирующейся информации, замена verbose-текстов на structured data (JSON, таблицы). Автоматическое сжатие может уменьшить объём контекста в 3-5 раз при минимальной потере quality.

Context Caching

Кэширование неизменных частей контекста (system prompt, tool schemas) для снижения стоимости и latency. Anthropic, OpenAI и Google предоставляют API-level caching с 75-90% скидкой на cached tokens. Проектируйте контекст так, чтобы статическая часть была в начале, а динамическая -- в конце.

Sliding Window

Для длинных диалогов: сохранение последних N сообщений в полном виде + summarized history более ранних сообщений. Окно «скользит» по истории, обеспечивая актуальность ближайшего контекста при сохранении общего thread. Размер окна определяется экспериментально для каждого use case.

Truncation Strategies

Когда контекст не помещается в окно -- стратегии отсечения: по приоритету компонентов (сначала удаляем low-priority), по рецентности (старое первым), по relevance score (наименее релевантное). Никогда не обрезайте system instructions или текущий user query. Предпочтительно суммаризировать, а не обрезать.

Memory-архитектуры

LLM по своей природе stateless -- каждый вызов независим. Memory-системы добавляют persistence, позволяя AI-приложениям «помнить» контекст между сессиями.

Архитектура памяти для AI-системы вдохновлена когнитивной наукой и включает три уровня, каждый со своими характеристиками по объёму, скорости доступа и длительности хранения. Правильная memory-архитектура превращает stateless LLM в интеллектуального ассистента, который накапливает знания о пользователе, проекте и организации.

Short-term Memory

Одна сессия

Conversation buffer: полная история текущего диалога. Обеспечивает continuity внутри сессии, позволяет ссылаться на ранние сообщения.

  • Хранится в оперативной памяти приложения
  • Полный текст последних N сообщений
  • Суммаризация при превышении лимита
  • Очищается при завершении сессии

Working Memory

Текущая задача

Состояние текущей задачи: промежуточные результаты, план действий, собранные данные. Критично для agentic workflows с multi-step execution.

  • Task state и scratchpad агента
  • Промежуточные результаты tool calls
  • План выполнения и прогресс
  • Живёт пока задача не завершена

Long-term Memory

Persistent

Постоянное хранилище знаний: предпочтения пользователя, факты об организации, learned patterns. Сохраняется между сессиями.

  • Vector DB для semantic search
  • Key-value store для фактов
  • User preferences и profile data
  • Автоматическое извлечение при запросе
Memory -- это не логи. Распространённая ошибка -- хранить все сообщения и вливать их в контекст. Эффективная memory-система селективна: она извлекает только то, что релевантно текущему запросу. Используйте semantic search по memory store, а не полный dump истории. Регулярно проводите «забывание» -- удаление устаревшей и противоречивой информации.

Паттерны и Anti-patterns

Опыт сотен проектов кристаллизован в набор паттернов (работающих подходов) и anti-patterns (типичных ошибок), которые помогают избежать дорогостоящих итераций.

ПАТТЕРНЫ Эффективные подходы

Structured Output Format

Явное указание формата ответа (JSON schema, markdown template) в system prompt. Снижает вариативность и упрощает парсинг. Модели следуют структуре значительно точнее, когда видят explicit schema, а не текстовое описание формата.

Chain-of-thought с reasoning

Инструкция модели сначала провести анализ и рассуждение (в отдельном блоке), затем дать финальный ответ. Повышает accuracy на сложных задачах на 20-40%. Для production -- скрывайте reasoning от конечного пользователя, но сохраняйте для debugging.

Dynamic few-shot selection

Выбор примеров для few-shot на основе semantic similarity к текущему запросу, а не статический набор. Embedding-based retrieval из библиотеки примеров обеспечивает максимальную релевантность и покрытие edge cases без раздувания контекста.

Explicit constraints

Чёткое перечисление того, чего модель НЕ должна делать: не выдумывать данные, не отвечать на off-topic вопросы, не использовать определённые форматы. Negative instructions часто эффективнее positive -- модели лучше соблюдают explicit запреты.

ANTI-PATTERNS Типичные ошибки

Context Stuffing

Засовывание максимального количества информации в контекст по принципу «чем больше, тем лучше». На практике excess context снижает quality: модель теряет фокус, увеличивается latency и стоимость. Качество retrieval важнее количества фрагментов.

Irrelevant Examples

Few-shot примеры, не соответствующие текущей задаче. Модель следует паттернам из примеров: если примеры нерелевантны, ответ будет отклоняться от ожидаемого. Особенно опасно при смешивании примеров разных задач в одном prompt.

Conflicting Instructions

Противоречия между system prompt и user context, или между разными частями system prompt. Например: «отвечай кратко» + «объясняй подробно». Модель непредсказуемо выбирает, какой инструкции следовать. Проводите ревью на consistency.

Prompt Ossification

Промпт пишется один раз и никогда не обновляется. Без систематического eval и итерации качество деградирует при изменении паттернов использования, обновлении модели или расширении use cases. Context engineering -- непрерывный процесс.

Процесс итерации контекста

Context engineering -- это итеративная дисциплина. Каждое изменение должно быть измерено и валидировано, прежде чем попасть в production.

Подход «написал промпт -- кажется работает -- задеплоил» -- антипаттерн, приводящий к нестабильному качеству и regression-багам. Профессиональный context engineering следует циклу Write-Test-Measure-Iterate с версионированием промптов, automated eval и A/B-тестированием. Каждое изменение в контексте -- это deployment, к которому применяются те же стандарты, что и к изменениям в коде: code review, testing, staged rollout.

1

Write

Проектирование и написание компонентов контекста: system prompt, tool schemas, few-shot examples. Версионирование в Git. Review командой. Документирование design decisions и rationale.

2

Test

Прогон на eval dataset: 50-200 тестовых запросов, покрывающих основные сценарии и edge cases. Автоматическая оценка через LLM-as-a-Judge и rule-based checks. Regression testing на предыдущих тестах.

3

Measure

Анализ метрик: accuracy, relevance, format compliance, latency, cost per query. Сравнение с baseline (предыдущая версия). Статистическая значимость улучшений. Выявление деградаций на отдельных категориях запросов.

4

Iterate

На основе результатов -- корректировка контекста. A/B-тестирование на реальном трафике (5-10% пользователей). Поэтапный rollout при подтверждении улучшений. Мониторинг post-deployment метрик.

A/B-тестирование контекстов. Относитесь к каждому изменению контекста как к эксперименту. Разделите трафик между текущей и новой версией контекста, соберите метрики на статистически значимой выборке (минимум 100-200 запросов на вариант), и только после подтверждения улучшения переключайте 100% трафика. Это предотвращает regression и позволяет точно измерить impact каждого изменения.

Готовы оптимизировать контекст ваших AI-систем?

Поможем спроектировать context engineering pipeline, выстроить memory-архитектуру и внедрить систему eval для непрерывного улучшения качества.

Обсудить проект