Context Engineering

context engineering — искусство собирать контекст модели

Раздел
Промпты
Обновлено
11.08.26

Context Engineering — практика системно снабжать AI-модель нужным контекстом до того, как она ответит. Память о пользователе, документы через RAG, проектные файлы, инструменты через MCP и прошлые сообщения. Один удачный промпт здесь не решает всё: качество зависит от того, какая информационная среда собрана вокруг модели.

Коротко

Коротко. Context Engineering — сборка контекста для AI-модели: памяти пользователя, документов из RAG, файлов проекта, доступных инструментов и истории диалога. Здесь важна не одна удачная фраза, а весь набор материалов и правил, которые модель получает перед ответом.

Что это такое

AI-продукт состоит не только из модели и промпта. Между запросом пользователя и моделью обычно есть слой, который выбирает документы, историю, память и доступные инструменты. Управление этим слоем и называют Context Engineering.

Что входит в этот контекст:

  • System prompt — кто модель такая, что умеет.
  • User memory — что модель уже знает о вас (ChatGPT Memory, Claude Projects).
  • RAG-документы — релевантные куски из базы знаний.
  • Tools — какие функции доступны (через function calling / MCP).
  • History — предыдущие сообщения диалога.
  • Workspace files — файлы проекта (IDE-ассистенты, Claude Code).
  • Live data — поиск в интернете, API-данные, время.

Все эти источники собираются в окно контекста модели. Его размер ограничен, токены влияют на стоимость и задержку, а нерелевантные материалы могут ухудшить ответ. Отсюда отдельная инженерная задача: что добавить, что отбросить, в каком порядке расположить и как сжать.

Термин получил широкое распространение в середине 2020-х, когда разработчики стали описывать работу не с одним промптом, а со всей системой подготовки контекста.

Как это работает

Условный пайплайн AI-агента с Context Engineering:

User: "Найди счета за март и сделай отчёт"
   ↓
1. Memory loader   → достать профиль пользователя
2. RAG retriever   → найти 5 релевантных кусков из knowledge base
3. Tool selector   → отобрать 3 нужных tools из 47 доступных
4. History compressor → ужать прошлые 50 сообщений до summary
5. Context assembler → собрать всё в финальный prompt
   ↓
6. LLM → ответ или вызов tool
   ↓
7. Memory writer → записать новые факты в долгую память

Каждый шаг — отдельная инженерная задача:

Memory. Какие факты о пользователе помнить, какие забывать, как обновлять. ChatGPT Memory активно учится; Claude Projects держит документы; продвинутые системы хранят «эпизодическую» и «семантическую» память отдельно.

RAG. Не просто «найти и вставить». Нужен качественный chunking, embeddings, reranking, фильтрация по метаданным. Плохой RAG = шум в контексте = хуже ответ.

Tool selection. Если дать модели 50 функций — она запутается. Динамически выбираем 5–10 самых релевантных через embeddings от описания tool до текста запроса.

Compression. Длинная история увеличивает цену и размывает фокус. Через выбранные интервалы её сворачивают в проверяемое summary, сохраняя решения, открытые вопросы и ссылки на исходные данные.

Order matters. Модели сильнее обращают внимание на начало и конец контекста («lost in the middle» — известный эффект). Размещение важного блока в правильном месте — отдельный навык.

Пример на практике

Команда делает AI-ассистента для юристов. Версия 1 (только prompt engineering):

Ты — юрист. Отвечай на вопросы по российскому праву.
Будь точным.

USER: «Что грозит за неуплату алиментов?»

Ответ: общие банальности на уровне статьи Википедии. Без ссылок на статьи закона. Может галлюцинировать суммы.

Версия 2 (с Context Engineering):

def answer_legal_question(question, user_id):
    # 1. Достать профиль пользователя
    profile = get_user_profile(user_id)  # юрист vs обыватель?

    # 2. Найти релевантные статьи закона через RAG
    relevant_articles = vector_search(
        query=question,
        filters={"source": "ГК РФ", "updated_after": policy_cutoff_date},
        top_k=5
    )

    # 3. Достать свежую судебную практику
    cases = search_court_decisions(question, last_year=True, top_k=3)

    # 4. Выбрать релевантные tools (calculator? lookup?)
    tools = select_tools(question, available_tools=ALL_TOOLS)

    # 5. Собрать финальный контекст
    context = f"""
    <profile>{profile}</profile>
    <statutes>{relevant_articles}</statutes>
    <court_practice>{cases}</court_practice>
    """

    # 6. Запрос с готовым контекстом
    return claude.messages.create(
        model="your-model-id",
        system=LEGAL_SYSTEM_PROMPT,
        messages=[{"role": "user", "content": context + question}],
        tools=tools
    )

Версия 2 даёт ответ со ссылками на конкретные статьи, найденными материалами и расчётом через калькулятор. Такой pipeline дороже «голого» запроса, зато его можно проверить по источникам. Реальный выигрыш измеряют на собственных кейсах и отдельно оценивают юридические ошибки.

В Claude Code и Cursor — система внутри них уже собирает контекст автоматически: подгружает релевантные файлы из проекта, выдаёт результаты команд, ведёт TODO-список. Это и есть Context Engineering, упакованный в продукт.

ComfyUI в этой парадигме интересен тем, что workflow-ноды это явная визуализация context-pipeline'а: каждая нода добавляет что-то в финальный латент.

С чем часто путают

  • Context Engineering и Prompt Engineering — Prompt = текст сообщения. Context = вся информация вокруг (память, документы, инструменты, история). Context включает prompt как один из элементов.
  • Context Engineering и RAG — RAG это техника внутри Context Engineering, один из источников контекста.
  • Context Engineering и Fine-tuning — Fine-tuning меняет веса модели. Context Engineering меняет вход модели. Первое дорого и долго, второе — быстро и гибко.
  • Context Window и Context Engineering — Window это размер «коробки». Engineering — что в эту коробку положить.
  • Context Engineering и Memory — Memory это один из компонентов. Context Engineering — это и Memory, и RAG, и Tools, и History вместе.

Частые ошибки и заблуждения

  • «Чем больше контекста, тем лучше». Нет. После определённого порога модели начинают «теряться в середине», ответы хуже. Релевантность > объём.
  • «200K окно — всё помещается». Помещается, но обработка дорожает квадратично (attention). И качество падает. Сжимай старое.
  • «RAG это и есть Context Engineering». RAG это техника. Context Engineering — дисциплина, где RAG один из инструментов.
  • «Memory заменит RAG». Не заменит. Memory — это коэффициенты пользователя; RAG — внешние данные. Они дополняют друг друга.
  • «Context Engineering — это для больших команд». Минимальная версия (system prompt + RAG + хранение истории в localStorage) делается за день. Полная — да, нужна команда.

Связанные термины

  • Prompt Engineering — пишут текст одного запроса; Context Engineering работает со всеми источниками вокруг.
  • RAG — техника извлечения релевантных документов в контекст.
  • Context Window — физический размер «коробки», в которой собирается контекст.
  • MCP — стандарт для подключения внешних tools (компонент контекста).
  • Function Calling — механизм tool use, ещё один компонент контекста.
  • Memoryдолгосрочная память пользователя.
  • Embedding — основа для retrieval-механизмов.

Частые вопросы

Что заменяет prompt engineering — Context Engineering? Не заменяет, а расширяет. Prompt Engineering — это умение писать запросы. Context Engineering — умение системно собирать всё вокруг запроса. Хорошо делать оба.

С чего начать? Минимум: system prompt + история диалога + один источник внешних данных (RAG или web search). Это уже сильно лучше «голого» LLM.

Какие фреймворки? Фреймворк выбирают после схемы данных и оценки. Одни библиотеки помогают с retrieval, другие — со streaming, инструментами или состоянием диалога. Название пакета менее важно, чем возможность видеть собранный контекст, измерять retrieval и менять провайдера без переписывания всей логики.

Сколько контекста — это много? Зависит от модели и задачи.

Это новая профессия? Это скорее набор обязанностей, чем единая должность: проектирование контекста встречается у AI-инженеров, разработчиков поиска, аналитиков данных и авторов агентных систем.

Главное

Context Engineering — управление всем, что попадает в окно модели до ответа: системным промптом, памятью пользователя, RAG-документами, инструментами, историей и файлами проекта. Качество зависит не только от формулировки запроса, но и от отбора, порядка и свежести контекста. Поэтому RAG, память, выбор инструментов и сжатие истории удобно рассматривать как части одной инженерной задачи.