feat(memory): add gated agent recall and lifecycle controls
This commit is contained in:
@@ -46,6 +46,41 @@ The first implementation is intentionally narrow:
|
||||
- Runtime startup does not create schema.
|
||||
- No goosed or SSE behavior is changed.
|
||||
|
||||
### Runtime control flags
|
||||
|
||||
The `memind_adm` Memory V2 page exposes runtime controls separately from
|
||||
`MEMORY_ENABLED`. They are disabled by default. Agent resolve currently
|
||||
supports `shadow` observation and explicit `active` hidden-context injection;
|
||||
promotion, Compact V2, and Reflection remain guarded for later stages:
|
||||
|
||||
| Admin field | Environment override | Default |
|
||||
| --- | --- | --- |
|
||||
| `runtimeControl.agentResolveEnabled` | `MEMORY_AGENT_RESOLVE_ENABLED` | `0` |
|
||||
| `runtimeControl.agentInjectionMode` | `MEMORY_AGENT_INJECTION_MODE` | `off` |
|
||||
| `runtimeControl.agentCanaryUserIds` | `MEMORY_AGENT_CANARY_USER_IDS` | empty |
|
||||
| `runtimeControl.agentResolveLimit` | `MEMORY_AGENT_RESOLVE_LIMIT` | `3` |
|
||||
| `runtimeControl.agentResolveTimeoutMs` | `MEMORY_AGENT_RESOLVE_TIMEOUT_MS` | `1200` |
|
||||
| `runtimeControl.promotionEnabled` | `MEMORY_PROMOTION_ENABLED` | `0` |
|
||||
| `runtimeControl.compactionV2Enabled` | `MEMORY_COMPACTION_V2_ENABLED` | `0` |
|
||||
| `runtimeControl.reflectionEnabled` | `MEMORY_REFLECTION_ENABLED` | `0` |
|
||||
| `runtimeControl.lifecycleWorkerEnabled` | `MEMORY_LIFECYCLE_WORKER_ENABLED` | `0` |
|
||||
| `runtimeControl.lifecycleRolloutMode` | `MEMORY_LIFECYCLE_ROLLOUT_MODE` | `off` |
|
||||
| `runtimeControl.lifecycleRolloutUserIds` | `MEMORY_LIFECYCLE_ROLLOUT_USER_IDS` | empty |
|
||||
|
||||
The controls are reported in `memoryV2.getStatus().runtimeControl`. Turning
|
||||
them off must leave the existing legacy conversation-memory path unchanged.
|
||||
|
||||
The additive user-scoped management API is:
|
||||
|
||||
- `GET /user-memory/v1/items` to list active (or requested-status) items.
|
||||
- `DELETE /user-memory/v1/items/:memoryId` to forget one item when lifecycle
|
||||
forgetting is enabled.
|
||||
|
||||
Lifecycle workers are disabled by default. When explicitly enabled they run
|
||||
expiration, conservative compaction observation, candidate promotion, and
|
||||
reflection observation according to the rollout mode; none of these operations
|
||||
blocks the chat path.
|
||||
|
||||
The pgvector adapter does not create tables or generate embeddings. It only defines the adapter contract for a future semantic memory backend and requires explicit `enabled: true`, an injected PostgreSQL pool, and either an input embedding or an injected `embedQuery(...)` function.
|
||||
|
||||
The server runtime uses `createMemoryV2Runtime(...)`. It keeps pgvector dormant unless all of these are true:
|
||||
|
||||
Reference in New Issue
Block a user