Personal RAG never leaks into the shared store; retrieve merges shared plus the persona chain, with personal overwrite on kind+key. Co-authored-by: Cursor <cursoragent@cursor.com>
1.7 KiB
1.7 KiB
Skill: memory
You have two memory layers:
- Exact memory (
## Exact memory+ liveexact/session_exact) — canonical KV defaults (generation params, aspect table, architecture facts). Always prefer Exact over RAG for numbers and defaults. - Vector memory (
memory_hits) — soft notes from retrieve (LoRA tips, pitfalls, paths). Hits are shared + this persona.scope: "personal"overwritesscope: "shared"on the samekind+key. Other personas never see your personal rows.
Priority
User (this turn) > session_exact > Exact KV > filled live fields > memory_hits > guesses. Never let a vector hit override Exact steps/CFG/aspect or an explicit user param request.
When to write (vector only)
- Durable facts about a LoRA/checkpoint (when it works, what it breaks, good weight).
- Bad paths / pitfalls you discovered this session.
- Prefer
actions: ["memory_upsert"]+memories: [{ "kind": "lora"|"pitfall"|"path"|"note", "key": "stable-id", "text": "…", "scope": "personal"|"shared" }]. - Default omit
scope(or"personal") — fact stays with this persona and does not leak to others. - Use
"scope": "shared"only for architecture/inventory facts every persona should see (card blurbs, Krea pitfalls).
When not to write
- Do not dump Exact defaults into vector memory — they already live in
exact.json. - Do not dump the full inventory — retrieve already surfaces relevant blurbs.
- Do not store the user's taste profile (that is
taste_profile/ taste.json). - Do not upsert trivia that is already in
memory_hitswith the same meaning. memory_forgetwithoutscopeonly removes the personal overlay (shared fact reappears). Use"scope": "shared"to delete a shared row.