forget_memory
Permanently erase one memory by ID or bulk criteria, purging history snapshots and orphaned compliance rows; preview first with dry_run because execution is irreversible.
Instructions
Permanently erase (GDPR-style) one memory by id or a bulk set matched by criteria (namespace/namespace_prefix/source_agent_id/tag/memory_type/before_days). Unlike delete_memory, this also purges memory_history snapshots and any orphaned compliance rows, leaving only a content-hash audit entry in the forgotten-log — irreversible. dry_run defaults to true: call once to preview, then again with dry_run=false to execute. Priority::Must memories are excluded unless allow_must=true. Gated by the same per-agent API-key auth as delete_memory — there is no separate admin tier at the MCP layer.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Bulk: memories carrying this tag | |
| reason | No | Audit-trail reason recorded in the forgotten-log | |
| api_key | No | API key for agent authentication (required if agent has a registered key) | |
| dry_run | No | Preview matches without purging anything (default: true — forgetting is irreversible, so a caller must explicitly set this to false to execute) | |
| agent_id | No | ID of the requesting agent | unknown |
| memory_id | No | ID of a single memory to permanently erase. Mutually exclusive with the criteria fields below — when set, every criteria field is ignored. | |
| namespace | No | Bulk: exact namespace match | |
| allow_must | No | Explicit override to include Priority::Must memories (otherwise excluded by default) | |
| before_days | No | Bulk: not updated in this many days | |
| memory_type | No | Bulk: memory type (preference, fact, episode, entity, skill) | |
| source_agent_id | No | Bulk: source agent id | |
| namespace_prefix | No | Bulk: namespace starts with this (e.g. "archived:") |