File size: 1,606 Bytes
57d4e72
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
## memory tools
use when durable recall or storage is useful
- `memory_load`: args `query`, optional `threshold`, `limit`, `filter`; search by meaning and metadata
- `memory_save`: args `text`, optional `area` and metadata; store durable information; returns a memory ID on success
- `memory_delete`: arg comma-separated `ids`; delete memories by exact ID
- `memory_forget`: args `query`, optional `threshold`, `filter`; find and remove matching memories

notes:
- `threshold` is similarity from `0` to `1`
- `filter` is a metadata expression (e.g. `area=='main'`)
- confirm destructive changes when accuracy matters
- memories usually include timestamp metadata; use it as a soft recency signal, not a hard TTL
- when the user updates a durable fact/preference, load related memories first, forget/delete superseded versions, then save one complete current version
- do not append a second memory for the same mutable subject when the new statement replaces the old one
- do not forget a memory only because it is old; forget it when current evidence shows it is stale, false, superseded, duplicated, or unwanted
- `memory_forget` also cleans exact matches and derived fragment/solution records related to removed memories
- use `memory_save` for stable current facts, not short-lived test markers, greetings, or one-off conversation events

example:
~~~json
{
  "thoughts": ["I should search memory for relevant prior guidance."],
  "headline": "Loading related memories",
  "tool_name": "memory_load",
  "tool_args": {
    "query": "tool argument format",
    "threshold": 0.7,
    "limit": 3
  }
}
~~~