From 068684201914df1535c1de52da2b0ffa1962cac0 Mon Sep 17 00:00:00 2001 From: Serge Alex Date: Sat, 7 Nov 2026 09:08:40 +0300 Subject: [PATCH] Template: add decision_recall_stats --- memory/state.template.json | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/memory/state.template.json b/memory/state.template.json index 69e1cc5..8cf1df0 100644 --- a/memory/state.template.json +++ b/memory/state.template.json @@ -1,6 +1,6 @@ { "version": 2, - "updatedAt": "2026-11-07T06:07:24.274Z", + "updatedAt": "2026-11-07T06:08:24.621Z", "entries": [ { "id": "0f90dcf0-5d43-4ca4-bf86-ad8b3ee20382", @@ -491,6 +491,29 @@ "lastRecalled": null, "recallCount": 0, "bytes": 273 + }, + { + "id": "a8524ecc-9ec4-4602-b8ee-b6eb96720a10", + "track": "agent", + "scope": "user-global", + "workspaceKey": "", + "key": "decision_recall_stats", + "text": "Учёт использования памяти dsh-memory: recallCount и op stats. Сделано 07.11.2026, коммит 52bed55.\n\nПРОБЛЕМА. Поле recallCount/lastRecalled было в схеме Entry с рождения (memory.js:4), но никто его не инкрементил: opGet инкрементил, а getInjection — нет. Значит все always-записи (которые инжектятся в каждый чат) имели recallCount 0 навсегда. Плюс lastRecalled писался как Date.now() число, а не ISO.\n\nЧТО ИСПРАВЛЕНО. getInjection инкрементит recallCount и ставит lastRecalled (ISO) для каждой записи, попавшей в блок. opGet тоже переведён на ISO. Добавлен op stats.\n\nOP STATS. dsh_memory {op: stats, staleDays: 30, limit: 15} возвращает: total, totalBytes, usedCount, neverUsedCount, top[] (по recallCount, с idleDays), dead[] (0 recalls, idle >= staleDays, отсортированы по bytes), freshCount, neverAlways[].\n\nКАК ПОЛЬЗОВАТЬСЯ. Раз в 1-2 недели вызывать stats. dead[] — кандидаты на удаление или архив. neverAlways[] — always-записи без инжекта (аномалия). top[] — что реально работает.\n\nОГРАНИЧЕНИЕ. recallCount растёт при инъекции, а не при реальном использовании в ответе. Always-записи всегда будут с высоким счётчиком, даже если модель их игнорирует. Это метрика доставлено, а не пригодилось. Для called-записей точнее: они инкрементятся только при явном op get.", + "importance": "called", + "tags": [ + "decision", + "memory", + "stats", + "recall" + ], + "state": null, + "chatId": "", + "version": 1, + "createdAt": "2026-11-07T06:08:07.751Z", + "updatedAt": "2026-11-07T06:08:07.751Z", + "lastRecalled": null, + "recallCount": 0, + "bytes": 1874 } ], "chats": {}