3.5 KiB
Hermes Agent — Улучшения и Паттерны
Agentic Memory Update
Как лучше обновлять доки/память агента из истории бесед.
Основные паттерны
1. Async post-session (доминирующий) — разделить живой чат и консолидацию памяти. После завершения сессии / по расписанию агент читает транскрипт, извлекает инсайты, пишет в canonical store. Никакой задержки в живом чате.
2. Three-memory model:
- Episodic — история сессий (summary что обсуждали)
- Semantic — факты, предпочтения, решения
- Procedural — воркфлоу, скиллы, подходы
Чем запускают
- Cron (2–4 AM) — самый простой и надёжный
- Webhook после завершения сессии
- LangMem
ReflectionExecutor— фоновый тред прямо во время чата
Инструменты
| Инструмент | Плюсы | Минусы |
|---|---|---|
| LangMem | Нативная интеграция с LangGraph | p95 latency = 60s в продакшне |
| Mem0 | Граф с conflict detection, лучшая производительность | Проприетарный |
| Custom agents | Полный контроль, пишет в git/docs | Надо делать самому |
Eagle использует custom agents — текущий подход.
Главные правила
- Обрабатывать один раз в конце сессии, не после каждого сообщения
- Дешёвые модели для memory ops, дорогие — для разговора
- Guard: «обновлять только при значимой новой информации»
- Temporal decay — чтобы память не росла бесконечно
Пробелы в текущей системе
Vault root не обрабатывается
Файлы попадают в корень vault через мобильный sync (Obsidian iOS) — нет хэндлера.
vault-enrichment— не перемещает (запрещено в промпте)inbox-sort— сканирует только staging-папки (family/sort/,personal/inbox/)
Fix: расширить inbox-sort, чтобы сканировал vault root и перемещал файлы по классификатору (food/recipes → family/documents/, etc.)
Нет renaming agent
Никто не переименовывает файлы. Мобильный sync создаёт файлы с произвольными именами, они остаются как есть.
Fix: добавить логику нормализации имён в inbox-sort или отдельный препроцессор.
Нет post-session memory agent
Сессии пишутся в ~/.hermes/sessions/, но memory.md и vault обновляются только вручную или через vault-enrichment (раз в неделю).
Fix: cron 02:00 AM ежедневно — читает свежие сессии, обновляет memory.md и personal/projects/. Вписывается в слот между inbox-sort (01:00) и vault-enrichment (03:00 вс).