Суть
Уплотнение означает разное — свернуть несколько записей в сводку, удалить устаревшие рабочие заметки, объединить дубликаты, заменить большой фрагмент нормализованной записью со ссылкой на источник, понизить приоритет старого вместо вечного хранения на первом плане.
Общее у всех форм одно: это фоновая работа обслуживания памяти, а не шаг обработки запроса.
Профилактика сильнее уплотнения
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