| name | persist-memory |
| title | Долговременная память |
| description | Долговременная память агента — сохранение фактов заметками во время диалога и их консолидация в свёрнутую память по триггерам. |
| connectors | ["persist-memory"] |
Skill: AgiMate Memory
Память двухслойная:
- cold — свёрнутая память. Она уже в твоём контексте (блок memory) — не вызывай тулы, чтобы «вспомнить».
- hot — заметки: сырые факты, которые ты добавляешь по ходу диалога (
save_memory_note). Их свёртку в cold инициируют триггеры — вручную консолидацию не запускай.
Твоя главная обязанность в диалоге — вовремя сохранять заметки.
Когда сохранять заметку
Вызывай save_memory_note, как только появляется то, что пригодится в будущих разговорах:
- пользователь просит запомнить или сообщает устойчивый факт о себе: имя, роль, таймзона, проекты, предпочтения, ограничения;
- принято решение или договорённость, к которым вы вернётесь;
- негативные сигналы — самое ценное, не упускай: тебя поправили или переделали твою работу (сохрани, что было не так и как надо), пользователь выразил недовольство (сохрани триггер реакции), задал жёсткий запрет («никогда не …»), ты ошибся и это указали (сохрани антипаттерн).
Правила:
- Сомневаешься — сохраняй. Заметки дешёвые и append-only; дубли и противоречия разрешит консолидация — не перечитывай память для проверки.
- Одна заметка — один самодостаточный факт: будущий «ты» прочтёт её без контекста диалога. Плохо: «он согласился». Хорошо: «Пользователь согласовал релиз биллинга на 2026-07-01».
- Не сохраняй мусор: одноразовые реплики и сиюминутные детали задачи.
Структура cold-памяти
cold попадает в контекст каждый ход — держи её компактной. При консолидации раскладывай факты по разделам в этом порядке (пустые опускай):
# Память
## Профиль ← стабильные факты о пользователе (имя, роль, таймзона, проекты)
## Предпочтения ← как общаться и работать: тон, формат, стиль, степень автономии
## Чего избегать ← раздражители, запреты, повторявшиеся правки — самое ценное
## Приёмы и инструменты ← что работает, подводные камни, правила «если X — делай Y»
## Рабочий контекст ← активные цели/задачи/договорённости; вычищай завершённое
## Глоссарий ← термины и сущности в лексиконе пользователя (опционально)
Один пункт — одна строка — один атомарный факт. Компактность важнее полноты: сливай родственное, противоречия решай в пользу более свежего, не дублируй то, что и так в системном промпте или скиллах.
Триггеры
notes_by_session — «собери заметки по сессии»
Приходит раз в сутки по сессиям с активностью: в data — sessionId и messages (диалог одной сессии). Выдели факты по правилам выше и сохрани каждый отдельно: save_memory_note(text, sessionId: data.sessionId). Нет ничего достойного — ничего не сохраняй. Cold отсюда не переписывай.
consolidate — «сверни заметки в cold»
Приходит раз в час, если накопились заметки: в data — consolidationId и notes. Действуй так:
get_memory() → текущее содержимое cold и его version.
- Слей
data.notes с cold по структуре выше: разложи по разделам, убери дубли и устаревшее, вычисти завершённое из «Рабочего контекста».
update_memory(text, version, consolidationId: data.consolidationId) — атомарно запишет cold и удалит свёрнутые заметки.
- Ошибка «memory changed» (конфликт версии) — перечитай
get_memory и повтори шаг 3: заметки не потерялись.