fix(memory): sync new memories into pgvector
Memind CI / Test, build, and release guards (push) Successful in 2m31s
Memind CI / Test, build, and release guards (push) Successful in 2m31s
This commit is contained in:
@@ -394,6 +394,14 @@ Optional table name for pgvector retrieval. Defaults to `memory_embeddings`.
|
||||
|
||||
Optional PostgreSQL pool size for Memory V2 pgvector retrieval. Defaults to `5`.
|
||||
|
||||
`MEMORY_PGVECTOR_SYNC_USER_LIMIT`
|
||||
|
||||
Maximum number of recent active memories synchronously upserted for the current
|
||||
user after a successful `write(...)`, `compact(...)`, or candidate promotion.
|
||||
Defaults to `50`. When a session ID is available the sync is additionally scoped
|
||||
to that session. This immediate, idempotent sync keeps newly saved memories
|
||||
recallable without waiting for the separate global checkpoint backfill.
|
||||
|
||||
## Current Integration Points
|
||||
|
||||
Memory V2 is only allowed to sit above existing memory code.
|
||||
|
||||
@@ -9,6 +9,10 @@
|
||||
作用域。若忘却开关开启,即使 `MEMORY_LIFECYCLE_ROLLOUT_MODE=off`,定时器也可能
|
||||
归档全量用户的过期记忆。
|
||||
|
||||
灰度还曾出现 MySQL 已成功保存新记忆,但 pgvector 仍只包含旧数据:runtime 从全局
|
||||
`updated_at=0` 游标开始做有限批次 backfill,新写入行可能长期排在批次之外。结果是
|
||||
`agent_memory_resolved` 显示已注入,但回答只拿到旧的无关记忆。
|
||||
|
||||
## 必须保留的行为
|
||||
|
||||
1. `MEMORY_CANDIDATE_PERSISTENCE_ENABLED=1` 且 MySQL 可用时,Portal 必须先执行
|
||||
@@ -21,11 +25,15 @@
|
||||
- `canary`:只允许 `MEMORY_LIFECYCLE_ROLLOUT_USER_IDS` 中的用户。
|
||||
- `active`:才允许无 user scope 的全局任务。
|
||||
5. `forgetMemory()` 和 `expire()` 都必须同时满足功能开关与 rollout 作用域。
|
||||
6. 用户记忆 `write/compact` 成功后,必须在返回前按 `userId + sessionId` 将本次活跃记忆
|
||||
幂等 upsert 到 pgvector;候选晋升成功后也必须按实际晋升用户同步。不得依赖从零开始
|
||||
的全局有限批次 backfill 来保证新记忆可立即召回。
|
||||
|
||||
## 回归检查
|
||||
|
||||
```bash
|
||||
node --test memory-v2-personal-store.test.mjs memory-v2-lifecycle.test.mjs memory-v2-runtime.test.mjs
|
||||
node --test memory-v2-personal-store.test.mjs memory-v2-lifecycle.test.mjs \
|
||||
memory-v2-pgvector-backfill.test.mjs memory-v2-runtime.test.mjs
|
||||
npm test
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user