Context Compaction

Уплотнение контекста — не разовая уборка, а часть архитектуры: если слой памяти только растёт, сборка подсказки превращается в мусоросборник без правил. Главное правило уплотнения: сводка не переносит полномочия.

Суть

Уплотнение означает разное — свернуть несколько записей в сводку, удалить устаревшие рабочие заметки, объединить дубликаты, заменить большой фрагмент нормализованной записью со ссылкой на источник, понизить приоритет старого вместо вечного хранения на первом плане.

Общее у всех форм одно: это фоновая работа обслуживания памяти, а не шаг обработки запроса.

Профилактика сильнее уплотнения

Compaction отвечает на вопрос «что делать, когда transcript уже вырос». Для длинной процедуры есть более сильная форма: не использовать transcript как состояние вообще. В State Centric Execution следующий вызов собирается из неизменной процедуры, ограниченного канонического state и последнего наблюдения; полная траектория остаётся во внешнем журнале.

Это не два названия одного приёма. Rolling summary всё ещё реконструирует состояние из текста и наследует ошибки пересказа; state-centric цикл обновляет типизированный объект через валидированный patch. Compaction остаётся нужен для открытых рабочих заметок и задач, где заранее неизвестно, что окажется важным, но перестаёт быть единственной защитой от растущей истории.

Два слоя данных, которые нельзя путать

Уплотнение создаёт границу безопасности, и проходит она между:

Слой Что это Свойство
Одноразовое представление контекста История диалога, найденные фрагменты, рабочие заметки, сжатая сводка Можно пересобрать или удалить
Долговечное управляющее состояние Идентичность арендатора и субъекта, область делегирования, версии политики, идентификатор подтверждения со сроком, ключ идемпотентности, статус побочного эффекта, ссылка на контрольную точку, остаток бюджета, незавершённые обязательства Хранится структурированно и не зависит от написанной моделью сводки

Ошибка категорий, которую это предотвращает: хорошая сводка помогает восстановить ориентацию, но никакая гладкость текста не превращает её в базу политик, реестр подтверждений или журнал внешних эффектов.

Практически это значит, что после уплотнения исполнение продолжается по структурированному состоянию, а сводка идёт в подсказку как справочный материал (Approval Path, Agent Control Plane).

Не всё обновление памяти живёт в горячем пути

Один из самых полезных архитектурных сдвигов. В начале почти все пытаются сделать память «сразу готовой»: агент что-то увидел — немедленно переписал сводки, обновил профиль, сохранил знание. Это и дорого, и рискованно (Memory Write Policy).

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

Сводка сохраняет происхождение

Сводки часто используют как способ впихнуть больше памяти в меньше токенов. Ловушка в том, что сводка не должна превращаться в новую анонимную истину.

Хорошая сводка Плохая сводка
Короче исходных записей Звучит уверенно, но непонятно, откуда взялась
Сохраняет происхождение Объединяет конфликтующие факты
Не смешивает арендаторов Теряет дату и владельца данных
Не теряет критические ограничения Подсовывается модели как доверенная инструкция
Помечена как производный артефакт

Почему плохая сводка не ловится вычиткой

Механика вынесена отдельно — Paraphrase Drift. Коротко: сжатие почти всегда делает утверждение чуть сильнее и чуть удобнее, чем оно было в источнике, а обычная вычитка этого не находит, потому что в сводке сказано лучше, а не хуже.

Для уплотнения контекста это значит, что каждый цикл сжатия — отдельное звено усиления. Система, которая сворачивает память раз в N шагов, прогоняет свои утверждения через дрейф ровно столько раз, сколько раз сработала сводка, и уверенность ответа растёт по мере удаления от исходных данных.

Практическая проверка для этого места: сверять сводку не с реальностью, а со свёрнутыми записями, положенными рядом — вопрос «не сильнее ли здесь сказано», а не «правда ли это».

Передача контекста субагенту — тоже уплотнение

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

Практическая метрика — размер переданного контекста рядом с причиной делегирования и итоговым качеством. Если пакет почти равен исходному диалогу, система не разделила работу, а размножила дорогой контекст (Multi Agent Systems).

Сильное следствие: если такой пакет невозможно собрать без потери важной семантики, это сигнал против разделения на агентов, а не повод запускать их больше.

Уборка не заменяет профилактику

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

Отсюда парность приёмов: уплотнение — уборка, ограничение вывода инструмента — профилактика (Bounded Tool Output). Одно без другого не работает: без уборки растёт хвост, без профилактики каждый отдельный вызов может испортить окно за раз.

Простейшая рабочая стратегия уплотнения формулируется по расстоянию, а не по объёму: выбрасывать пары «вызов — результат» старше последних нескольких сообщений. Признак того, что она нужна, наблюдаемый и дешёвый — входные токены растут линейно по шагам при примерно постоянном выходе; после включения кривая выходит на полку.

Связано с

  • Bounded Tool Output — профилактика, без которой уборка не справляется
  • Agent First Repository — постепенное раскрытие в масштабе репозитория: карта вместо инструкции
  • Agent Retrieval Policy — вторая половина цикла обслуживания памяти
  • Memory Write Policy — что вообще попадает в фоновый конвейер
  • Agent Memory — сводки против указателей как способ экономить контекст
  • Context Layers — слои подсказки, которые уплотнение разгружает
  • Approval Path — почему подтверждение живёт вне текста сводки
  • Multi Agent Systems — передача контекста между агентами
  • Durable Execution — контрольные точки как часть управляющего состояния
  • Paraphrase Drift — почему каждое сжатие усиливает утверждение и как это ловить
  • State Centric Execution — профилактика: следующий шаг строится по state, а не по сжатому transcript