memory: Curator (Phase 4) — фоновая архивация старых неиспользуемых заметок
* :memory-api — MemoryStore.archiveStale(maxAge, maxUseCount, now): default имплементация через list + delete (бэкенды могут переопределить). * :standalone — Curator: фоновая корутина на Dispatchers.IO, раз в сутки дёргает archiveStale(90d, 0). start()/stop(), runPass() — однократный прогон для тестов. * :standalone/Main — Curator стартует автоматически если memory включён, stop() в shutdown hook. * :standalone — публичный TestInMemoryMemoryStore вынесен из CompactionTest, переиспользуется в CuratorTest. * README — раздел "Куратор памяти" с описанием семантики для md и vector бэкендов. Tests: 288 total (+4 CuratorTest). Fatjar smoke-tested, curator стартует на app boot, выводит `[Curator] started` в лог. Defaults: interval=1d, maxAge=90d, maxUseCount=0. Override через новые config-флаги отложен.
This commit is contained in:
@@ -175,6 +175,19 @@ export AGENTIK_COMPRESSION_THRESHOLD=0.7 # сжимаем раньше
|
||||
нового compaction не запускается (защита от зацикливания). Решение —
|
||||
поднять `OPENAI_CONTEXT_WINDOW` или понизить threshold.
|
||||
|
||||
## Куратор памяти (Curator)
|
||||
|
||||
Фоновая корутина (запускается автоматически, если `AGENTIK_MEMORY_DIR != off`):
|
||||
раз в сутки архивирует заметки, которые **не выдавались в prefetch дольше 90
|
||||
дней** и **имеют `useCount == 0`**. Семантика архивации зависит от бэкенда —
|
||||
`:memory-md` переименовывает §-файл в `.archived.{ts}`, `:memory-vector`
|
||||
удаляет из SQLite и JVector.
|
||||
|
||||
Параметры пока захардкожены в `Curator.DEFAULT_INTERVAL` и
|
||||
`Curator.DEFAULT_MAX_AGE` (1 день и 90 дней); для override нужен новый
|
||||
config-флаг. На каждом проходе выводится `[Curator] archived N stale notes`,
|
||||
если N > 0.
|
||||
|
||||
## Память
|
||||
|
||||
`AGENTIK_MEMORY_DIR` указывает на каталог, в котором лежат три §-файла:
|
||||
@@ -317,6 +330,7 @@ agentik standalone listening on http://localhost:8080
|
||||
soul: /etc/agentik/SOUL.md (842 chars)
|
||||
memory: /var/lib/agentik/memory (md-backend)
|
||||
compaction: enabled, threshold=0.8, window=128000 tokens
|
||||
curator: enabled (interval=1d, maxAge=90d)
|
||||
```
|
||||
|
||||
## Остановка
|
||||
|
||||
Reference in New Issue
Block a user