разборllmагентыeva

Контекстная инженерия: внимание модели — это бюджет

· 2 мин · BadRabbit

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

Гниение контекста

Кажется, что если окно контекста миллион токенов, туда можно положить всё. Но исследования показывают эффект context rot: чем длиннее контекст, тем хуже модель вспоминает конкретные детали. Причина в архитектуре: в трансформере каждый токен связан с каждым, это n² связей, и внимание размазывается.

Вывод статьи: у модели есть бюджет внимания, и каждый лишний токен его тратит. Задача — найти минимальный набор токенов с максимальным сигналом.

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

Системный промпт должен быть на правильной «высоте». Слишком низко — жёсткие if-else на все случаи, и всё хрупко. Слишком высоко — расплывчатые пожелания, и модель не понимает, чего от неё хотят. Нужна середина: конкретные принципы и эвристики.

Инструменты — минимальный однозначный набор. Если человек не может сразу сказать, какой из двух инструментов нужен, модель тоже не сможет.

Примеры — несколько разнообразных и показательных, а не длинный список всех краевых случаев.

Подгрузка по требованию

Вместо того чтобы загрузить все данные заранее, агент держит лёгкие ссылки: пути к файлам, запросы, URL. Нужные данные он подтягивает во время работы, примерно как человек, который не учит наизусть всю файловую систему, а знает, где искать.

Длинные задачи

Когда работа не помещается в одно окно, есть три приёма:

  1. Сжатие (compaction): пересказать историю, выкинуть лишнее и начать новое окно с выжимкой.
  2. Структурированные заметки: агент ведёт файл с прогрессом, планом и выводами вне контекста и перечитывает его.
  3. Субагенты: узкие помощники работают в чистом контексте и возвращают главному агенту короткий итог, а не все свои поиски.

Мой комментарий

Ева по сути построена вокруг этой идеи, просто по причине бедности: на 8 ГБ VRAM длинный контекст ещё и физически дорогой из-за KV-кеша.

  • Context Architect — это субагент, который собирает контекст и отдаёт дальше только выжимку.
  • Мануалы инструментов не лежат в промпте, а подтягиваются через HNSW по требованию.
  • Узел Зеро вообще не видит истории: он классифицирует один запрос и забывает его.

Меньше контекста — меньше памяти, быстрее ответ и, оказывается, умнее модель.