☿ Autolycus · Memory

Temporal Awareness

Группировка persistent memory по возрасту записей —
СЕГОДНЯ, ВЧЕРА, N ДНЕЙ НАЗАД, СТАРОЕ

Temporal Awareness — Data Flow MEMORY.md / USER.md На диске ~/.hermes/memories/ §-delimited entries с префиксом YYYY-MM-DD HH:MM load_from_disk() Читает файл, делит по § _parse_entry_date() re.match(r"^(\d{4}-\d{2}-\d{2})") _days_ago() today - date → int days _age_category() 0→СЕГОДНЯ, 1→ВЧЕРА, ≤7→N ДНЕЙ, >7→СТАРОЕ _group_by_age() Группирует entries по категориям Сортирует: свежие → старые _render_block() Форматирует группы с заголовками ┌─ СЕГОДНЯ ─── │ entry └─ N записей format_for_system_prompt() Инжекция в system prompt перед каждым ответом агента СЕГОДНЯ (0 дней) Свежие записи ВЧЕРА (1 день) Вчерашние записи N ДНЕЙ НАЗАД (2-7) Недельной давности СТАРОЕ (>7 дней) ⚠ Может быть неактуально ДАТА НЕИЗВЕСТНА Без префикса YYYY-MM-DD USER.md — mtime профиля В заголовке: "USER PROFILE (who the user is) [X% — N/M chars] [Профиль: дд месяц, чч:мм]" Ключевые принципы 1. Read-time grouping — файл на диске не меняется 2. Delimiter: § — запись может быть многострочной 3. Frozen snapshot — inject при старте сессии, не mid-session 4. Порядок групп: СЕГОДНЯ → ВЧЕРА → N ДНЕЙ → СТАРОЕ → ДАТА НЕИЗВЕСТНА 5. 47 тестов — unit + integration, все проходят Защита от галлюцинаций • Старые записи (>7 дн) — с предупреждением ⚠ • Агент видит возраст каждой группы • Memory scanning — инъекции блокируются • Свежие записи всегда вверху инжекта • findings_to_wiki дополняет архитектурной памятью
40
unit-тестов
5
категорий возраста
2
хранилища (MEMORY + USER)