Agent Memory

Модуль 05 · Урок 5.2

Урок 5.2. Tiered Memory: горячая, теплая и холодная память

На этой странице
  1. Цель лекции
  2. Ожидаемый результат
  3. Зачем это нужно
  4. Основная идея
  5. Ключевые термины
  6. Схема hot / warm / cold
  7. Hot memory
  8. Warm memory
  9. Cold memory
  10. Promotion
  11. Demotion
  12. Cost-aware context engineering
  13. Latency trade-offs
  14. Пример: персональный ассистент
  15. Пример: enterprise agent
  16. Promotion/demotion policy
  17. Типичные ошибки
  18. Краткое резюме
  19. Вопросы для самопроверки
  20. Что дальше

Цель лекции

Объяснить многоуровневую архитектуру памяти с разными компромиссами по скорости, стоимости и объему.

Ожидаемый результат

Читатель понимает, как проектировать память с учетом стоимости и задержек: что держать рядом с моделью, что хранить в быстрых промежуточных слоях, что отправлять в архив, и как работают promotion и demotion.

Зачем это нужно

Память агента может расти бесконечно, а context window, latency и бюджет - нет.

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

Tiered Memory решает эту проблему через уровни:

text
Hot: прямо рядом с моделью
Warm: быстро доступно, но не всегда в prompt
Cold: много, дешево, медленнее, требует retrieval

Это похоже на память компьютера: registers/cache/RAM/disk. Агент не должен держать весь "диск" в working memory. Он должен подкачивать нужное и выгружать лишнее.

Основная идея

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

Tiered memory отвечает на вопросы:

  • что должно быть в prompt прямо сейчас;
  • что должно быть быстро доступно в session/cache;
  • что можно доставать из vector/search/graph storage;
  • что можно архивировать;
  • когда запись продвигать вверх;
  • когда запись опускать вниз;
  • как учитывать latency и cost;
  • как не потерять важные policies и user preferences.

Главная цель tiered architecture - не просто экономить storage. Она помогает управлять вниманием модели.

Ключевые термины

Термин Короткое определение
Tiered memory Многоуровневая память с разными слоями по скорости, стоимости и объему.
Hot memory Самая активная память: prompt, working context, RAM, active cache.
Warm memory Быстрый слой для часто используемых данных: session store, Redis, recent facts.
Cold memory Большие или редко используемые данные: vector DB, graph DB, object storage, archive.
Promotion Перенос записи ближе к working context из-за важности или частого использования.
Demotion Перенос записи вниз из active layer из-за устаревания, редкого использования или завершения задачи.
Context budget Ограничение на объем памяти в prompt.
Cost-aware context engineering Сборка контекста с учетом стоимости, latency и полезности.
Active set Набор записей, которые сейчас могут повлиять на действие агента.

Схема hot / warm / cold

flowchart TD H[Hot memory<br/>prompt / working context / active cache] W[Warm memory<br/>session store / Redis / recent facts] C[Cold memory<br/>vector DB / graph DB / object storage / archive] C -->|promotion by retrieval / importance| W W -->|promotion by current task relevance| H H -->|demotion after task / context pressure| W W -->|demotion by TTL / decay| C

Hot memory ограничена, но максимально влияет на модель.

Warm memory быстрее холодного слоя, но не засоряет prompt.

Cold memory хранит объем и историю, но требует retrieval и ranking.

Hot memory

Hot memory - это то, что находится прямо в рабочем контексте или рядом с ним.

Примеры:

  • system/developer instructions;
  • current user request;
  • current plan;
  • active constraints;
  • selected project facts;
  • selected user preferences;
  • recent tool results;
  • short task summary;
  • critical policy reminders.

Подходящие storage:

  • prompt/context window;
  • in-memory state;
  • active cache;
  • runtime task object.

Плюсы:

  • мгновенно доступно модели;
  • влияет на текущий reasoning;
  • хорошо для critical constraints;
  • не требует retrieval во время generation.

Минусы:

  • очень ограничено;
  • дорого по tokens;
  • может вытеснить user request;
  • легко перегрузить шумом;
  • требует context budget discipline.

Hot memory должна быть curated. В prompt должны попадать не "все важное вообще", а "самое важное для этого шага".

Warm memory

Warm memory - быстрый слой для данных, которые часто нужны, но не всегда должны быть в prompt.

Примеры:

  • session state;
  • recent facts;
  • active user profile;
  • recent episodes;
  • current project metadata;
  • cached retrieval results;
  • task queue state;
  • handoff summaries;
  • short-term preferences.

Подходящие storage:

  • Redis или другой KV-store;
  • session store;
  • local SQLite;
  • in-process cache;
  • small document store;
  • materialized active view.

Плюсы:

  • быстро читать;
  • поддерживает TTL;
  • не перегружает context;
  • удобно для active tasks;
  • подходит для promotion в hot layer.

Минусы:

  • может устареть;
  • требует invalidation;
  • не должен быть единственным source of truth;
  • scope и cache keys должны быть аккуратными;
  • объем всё еще ограничен.

Warm memory - это слой "под рукой", но не "в голове модели прямо сейчас".

Cold memory

Cold memory хранит большой объем и историю.

Примеры:

  • long-term episodic logs;
  • old conversations;
  • full documents;
  • vector indexes;
  • graph database;
  • object storage artifacts;
  • archived task states;
  • old versions;
  • audit logs;
  • historical summaries.

Подходящие storage:

  • vector database;
  • graph database;
  • search index;
  • object storage;
  • warehouse;
  • archive tables;
  • cold document store.

Плюсы:

  • масштабируется;
  • дешевле для больших данных;
  • хранит историю;
  • полезно для audit и replay;
  • можно применять heavy retrieval.

Минусы:

  • выше latency;
  • retrieval может быть noisy;
  • требует indexing;
  • не все записи должны возвращаться в active context;
  • deletion и permissions сложнее.

Cold memory не должна быть забыта. Она должна быть доступна через retrieval, но не должна автоматически становиться hot.

Promotion

Promotion - перенос памяти вверх по слоям.

Причины promotion:

  • запись стала релевантна текущей задаче;
  • пользователь явно сослался на нее;
  • запись часто используется;
  • запись critical для safety;
  • начинается похожий workflow;
  • старый episode нужен для debugging;
  • preference подтверждена;
  • memory record был selected reranker.

Пример:

text
Cold:
- Reflection: previous pricing failure came from ignoring invoice totals.

Current task:
- User asks to fix discount bug.

Promotion:
- Reflection moves into warm candidate set, then hot context as warning.

Promotion не означает физически копировать данные во все хранилища. Иногда это materialized view, cache entry или context injection.

Demotion

Demotion - перенос памяти вниз или удаление из active set.

Причины demotion:

  • task завершен;
  • TTL истек;
  • запись редко используется;
  • confidence снизился;
  • запись устарела;
  • active context перегружен;
  • summary заменил raw events;
  • пользователь изменил preference;
  • запись archived.

Пример:

text
Hot:
- "Tester is waiting for patch."

After task closes:
- Demote to archive or delete task state.

Demotion защищает agent loop от старого task state и временных гипотез.

Cost-aware context engineering

Context window - самый дорогой слой памяти.

Стоимость включает:

  • tokens;
  • latency;
  • model attention;
  • chance of conflict;
  • risk of exposing private data;
  • cognitive noise для reasoning.

Полезный вопрос:

text
Стоит ли эта запись места в prompt прямо сейчас?

Даже high-confidence fact не всегда должен быть hot. Например, факт "проект написан на русском" полезен для writing task, но не нужен для команды git status.

Tiered memory делает context assembly экономическим решением: каждая запись конкурирует за место.

Latency trade-offs

Разные слои имеют разную задержку.

Слой Скорость Объем Типичный доступ
Hot Максимальная Очень малый В каждом LLM call.
Warm Высокая Средний Перед planning или tool call.
Cold Ниже Большой Retrieval, audit, replay, research.

Если каждый шаг агента требует deep retrieval из cold memory, система станет медленной. Если всё держать hot, система станет дорогой и шумной.

Задача архитектора - подобрать слой под частоту и важность доступа.

Пример: персональный ассистент

Tiered architecture:

text
Hot:
- Current user request
- Today’s active scheduling constraints
- Critical preference for tone

Warm:
- Current session state
- Recent reminders
- Active user profile
- Upcoming calendar context

Cold:
- Full email archive
- Historical conversations
- Old reminders
- Documents and attachments
- Long-term vector index over notes

Сценарий:

text
User:
"Запланируй встречу с Анной на следующей неделе утром."

Hot context:

  • request;
  • user preference: work meetings in the morning;
  • current timezone;
  • relevant calendar constraints.

Cold email archive не нужен, если пользователь не просит найти thread. Но если он говорит "как мы договаривались с Анной", old email thread может быть promoted.

Пример: enterprise agent

Enterprise architecture:

text
Hot:
- Current task and role
- Active policies
- Selected account context
- Top retrieved sources

Warm:
- User/team permissions
- Recent tickets
- Account summary
- Active incident state

Cold:
- Full CRM history
- Internal wiki
- Document archive
- Ticket history
- Audit logs
- Knowledge graph

Сценарий:

text
Support agent investigates feature access.

Hot:

  • current account id;
  • current feature entitlement;
  • relevant policy;
  • latest incident summary.

Warm:

  • recent support history;
  • cached permission checks;
  • account profile.

Cold:

  • full ticket archive;
  • long policy docs;
  • product docs;
  • historical incidents.

Permissions должны применяться на всех слоях. Warm cache особенно опасен, если cache key не включает tenant/account scope.

Promotion/demotion policy

Пример policy:

text
Promote to hot if:
- relevant to current task
- high priority policy
- explicitly referenced by user
- selected by reranker
- needed for tool safety

Keep warm if:
- active session or task state
- likely to be reused soon
- recent user/project facts
- cached retrieval under same scope

Demote to cold if:
- task closed
- TTL expired
- low recent use
- replaced by summary
- stale but historically useful

Delete if:
- user requested deletion
- secret detected
- retention expired
- policy requires removal

Promotion и demotion должны быть policy-driven, а не случайными side effects retrieval.

Типичные ошибки

Ошибка 1: держать слишком много hot memory.

Prompt становится шумным, дорогим и конфликтным.

Ошибка 2: не иметь warm layer.

Система либо тащит всё в prompt, либо каждый раз идет в cold storage.

Ошибка 3: считать cold memory забыванием.

Archive - не delete. Холодная память всё еще требует permissions и lifecycle.

Ошибка 4: не проектировать promotion.

Важные прошлые lessons остаются в archive и не вспоминаются в нужный момент.

Ошибка 5: не проектировать demotion.

Временный task state продолжает влиять на будущие задачи.

Ошибка 6: игнорировать cache scope.

Cached context без tenant/user/project key может привести к утечке.

Ошибка 7: оптимизировать только storage cost.

Главная стоимость часто в context window и latency, а не в диске.

Краткое резюме

Tiered Memory делит память на hot, warm и cold layers. Hot memory находится рядом с моделью и должна быть компактной. Warm memory быстро доступна для active work. Cold memory хранит большие объемы, историю, документы и архивы.

Promotion поднимает важную или релевантную запись ближе к working context. Demotion убирает устаревшее, временное или редко используемое вниз.

Tiered architecture помогает управлять tokens, latency, cost, retrieval noise и privacy risk.

Вопросы для самопроверки

  1. Чем hot memory отличается от warm memory?
  2. Почему context window - самый дорогой слой памяти?
  3. Какие события могут вызвать promotion записи?
  4. Когда запись нужно demote в cold layer?
  5. Почему cache должен учитывать user/project/tenant scope?

Что дальше

В следующей лекции мы рассмотрим Memory-as-an-OS: паттерн, где memory layer управляет context window как операционная система управляет RAM и disk storage.

Обновлено 08.08.2026