Обучение · Агенты и вайб-кодинг
Глава 15. Контекст как единственный ресурс
Если из всей книги надо запомнить одну-единственную вещь, вот она: контекст это то, за что ты платишь, и то, чем определяется качество ответа. Не модель, не инструменты, не длина инструкций ни хуя. Контекст.
Что это такое Контекст это весь текст, который уходит модели на каждом круге. Правила проекта, описания доступных инструментов, история разговора, результаты вызовов, твоя последняя фраза.
Два свойства делают его центральной темой.
Он оплачивается целиком каждый раз. Не прирост, а весь накопленный объём. Поэтому пятидесятый ход разговора стоит в разы дороже первого, даже если ты написал одно слово. Обидно, но так устроено.
Он ограничен и работает неравномерно. Есть предел, за который хуй впихнёшь. И внутри предела внимание распределяется неровно: начало и конец модель использует лучше, чем середину.
ПОЧЕМУ РАЗГОВОР ДОРОЖАЕТ Модель не помнит ни хуя. Чтобы она знала, о чём вы говорили десять минут назад, ей это надо пересказать заново. Обвязка так и делает: собирает всю переписку и отправляет целиком. На пятидесятом ходу уезжает всё, что накопилось за пятьдесят ходов. Отсюда простое следствие: длинный разговор это не немного дороже короткого, а сильно дороже. И отсюда же вся дальнейшая инженерия.
Шаблон сборки Контекст собирает не модель, а обвязка. Полезно представлять, из чего он складывается, в порядке попадания в запрос.
Блок Что в нём Меняется
Системные инструкции Кто агент и как себя ведёт Редко
Описания скиллов Заголовки всех доступных При добавлении скилла
Схемы инструментов Что можно вызвать и как При изменении набора
Правила проекта Инварианты и ловушки Редко
Цель Что делаем сейчас На каждой задаче
История Предыдущие ходы Постоянно
Контекст как единственный ресурс
Блок Что в нём Меняется
Отчёты субагентов Что они вернули При делегировании
План и статус Что сделано, что осталось Постоянно
Текущий ход Твоя фраза и последние резуль- Каждый ход таты
Тот, кто собирает этот текст, и называется контекстным движком. Важное уточнение, прозвучавшее в спорах: память и поиск по документам это источники, а не движок. Движок это то, что решает, что из источников попадёт внутрь и в каком порядке.
Сборщик или движок Спор, который стоит знать, потому что за словом движок продают чёрт знает что.
Одна позиция: движок это просто заполнение шаблона, и называть эту хуёвину движком слишком громко.
Вторая: в серьёзной сборке никакого шаблона нет, там компиляция журнала событий и кучи источников на лету, при каждом изменении. Простой подстановкой не отделаешься, если делать хорошо.
ЗА ЧТО ТЫ ПЛАТИШЬ, ПОКУПАЯ КОНТЕКСТНЫЙ ДВИЖОК Скептик. Часто под этим продают обёртку над индексом кода, чтобы одно и то же не переизобреталось. Тот же результат даёт субагент, делающий несколько поисков, только там дороже. Практик. Ценность в другом: модель получает готовый нужный кусок и не тратит ходы на его поиск. На больших базах это разница между работой и мучением. Экономический аргумент против. Фронтир-модели на таких инструментах никто не дообучает, поэтому выигрыш в основном в токенах. Расход не ограничен, значит окупается хуёво. Экономический аргумент за. В компаниях расход как раз ограничен, и там контроль токенов становится отдельной темой.
Практичный компромисс, который называли: для навигации по коду хватает небольшой локальной модели, можно каскадом. Гонять фронтир-модель по файлам это самая жирная и самая тупая часть счёта.
Отдать целиком или собирать вызовами Вопрос, который встаёт на каждом проекте.
Аргумент за целиком: небольшой проект дешевле положить в контекст сразу, чем гонять агента собирать его десятком вызовов. Он сразу увидит связи, а ты не заплатишь за его беготню.
Аргументы против, все существенные:
Так модель выделяет меньше вычислительного бюджета на осмысление каждой части.
После определённого объёма идёт размытие и заметная просадка качества, причём по ощущениям практиков всё начинает сыпаться сильно раньше формального предела.
Контекст как единственный ресурс
В проекте, который живёт дольше одного захода, в документы неизбежно набивается мусор, даже если следить в четыре глаза.
ГЛАВНОЕ ПРО ОБЪЁМ Материалы друг другу не противоречат, значит лучше дать чуть больше, чем чуть меньше: дочитывать и переделывать дороже. Материалы противоречат, значит лишнее вреднее нехватки. Модель просрёт рассуждение на разрешение конфликта. Поэтому чистка контекста это в первую очередь устранение противоречий, и только во вторую сокращение объёма.
Кеш: экономика, которая решает больше выбора модели Техническая деталь, которая на счетах видна сильнее всего.
Поставщики кешируют начало запроса. Следующий запрос начинается точно так же, значит эта часть считается дешевле. Отсюда практическое правило: стабильное держи в начале, изменчивое в конце.
Нарушение обходится дорого. Воткнёшь в начало текущее время, случайный идентификатор или что-то меняющееся, и кеш рушится целиком, а каждый ход оплачивается по полной.
Отдельная засада: кеш ключей и значений устроен линейно. Из-за этого самая хитровыебанная схема сборки контекста может выйти в разы дороже наивной, просто потому что мажет мимо кеша.
ПРОВЕРКА КЕША ЗА ПЯТЬ МИНУТ 1. Посмотри на первые строки запроса, который уходит модели. 2. Найди там всё, что меняется от хода к ходу: время, идентификаторы, счётчики. 3. Перенеси это в конец. 4. Сравни долю попаданий в кеш до и после. У правильно настроенного агента она доходит до девяноста процентов.
Стадии инженерии контекста Полезно понимать, на какой стадии ты находишься. Люди проходят их примерно в одном порядке.
СТАДИИ
Всё в один запрос Разделение по ролям Управление объёмом Управление вниманием
работает до предела правила, задача, история сжатие и уборка что где лежит и почему
Контекст как единственный ресурс
Первая стадия: всё валится в один большой запрос. Работает заебись, пока задача влезает.
Вторая: появляется разделение на постоянное и переменное, правила отделяются от задачи.
Третья: появляется управление объёмом. Сжатие, вычистка, ограничение истории.
Четвёртая: появляется управление вниманием. Ты начинаешь думать не о том, сколько текста, а о том, где он лежит и что модель прочитает внимательно.
Большинство застревает на второй и потом причитает над счетами, будто их кто-то обманул.
Что запомнить Контекст оплачивается целиком каждый ход. Длинный разговор дорожает нелинейно.
Внимание распределяется неравномерно: начало и конец лучше середины.
Контекстный движок это то, что решает, что положить. Память и поиск это источники.
Непротиворечивое лучше дать с запасом. Противоречивое надо убирать, а не сокращать.
Стабильное в начало, изменчивое в конец: иначе кеш наебнётся и каждый ход платится целиком.
И самая дорогая ошибка это гонять сильную модель по файлам вместо работы.
← Инструменты и когда обвязка вредит · оглавление · Сжатие и что должно его пережить →
Спросить книгу может любой, кто вошёл в Neuraldeep Hub: агент ищет ответ по тексту и приводит цитату со ссылкой на главу.