Minnesmodellen
Hur minnen är strukturerade — kategorier, nycklar, taggar, prioriteringar, källor, verifiering.
Minnesmodellen
Synapses minnesmodell är utformad för LLM-agenter — tillräckligt strukturerad för pålitlig återkallning, tillräckligt flexibel för alla domäner.
Minnesanatomi
{
"id": "mem_abc123",
"category": "project",
"key": "project_synapse_status",
"content": "Synapse v1.5.0 deployed on vps1. CI green.",
"tags": ["synapse", "deployment", "v1.5.0"],
"priority": "high",
"source": "agent",
"verified": false,
"confidence": 0.85,
"expires_at": null,
"mind_id": "m_xyz789",
"created_at": "2026-06-27T...",
"updated_at": "2026-06-27T..."
}Fält
| Fält | Typ | Obligatorisk | Beskrivning |
|---|---|---|---|
id |
sträng | auto | Unikt ID (mem_xxx) |
category |
enum | ✅ | En av 8 kategorier |
key |
sträng | ✅ | Stabil identifierare (används för uppdateringar) |
content |
sträng | ✅ | Minnesinnehållet (valfri text) |
tags |
sträng[] | – | För sökning och filtrering |
priority |
enum | – | low, normal, high, critical (standard: normal) |
source |
enum | auto | user, agent (vem som lagrade det) |
verified |
bool | auto | Har en människa verifierat detta? |
confidence |
flyttal | – | 0.0 till 1.0 (standard: 1.0 för user, 0.7 för agent) |
expires_at |
tidsstämpel | – | När minnet ska glömmas |
mind_id |
sträng | auto | Vilken mind som äger detta |
created_at |
tidsstämpel | auto | Först lagrad |
updated_at |
tidsstämpel | auto | Senast ändrad |
Kategorier
Åtta kategorier täcker vanliga användningsområden för LLM-agenter:
| Kategori | Syfte | Exempel på innehåll |
|---|---|---|
identity |
Vem användaren är | "User is Michael Schäfer, software engineer in Berlin" |
preference |
Användarinställningar | "Prefers concise technical responses" |
fact |
Verifierbara fakta | "Office is in Berlin, timezone Europe/Berlin" |
project |
Projektstatus | "Synapse v1.5.0 deployed, working on v1.6.0 docs" |
skill |
Användarens färdigheter | "Advanced Python, 10+ years" |
mistake |
Tidigare fel | "Forgot to bump npm version — CI failed" |
context |
Sessionskontext | "Currently reviewing PR #42" |
note |
Diverse anteckningar | "Try Redis for caching next sprint" |
Nycklar: stabila identifierare
Fältet key är kritiskt — det är så ni uppdaterar minnen utan att skapa
dubbletter.
# First store
store("project", "project_synapse_status", "v1.4.0 deployed", priority="high")
# Update with same key (overwrites, doesn't duplicate)
store("project", "project_synapse_status", "v1.5.0 deployed", priority="high")Nyckelregler:
- Måste vara unik inom (category, mind)
- Använd
snake_case - Prefixa med kategori för tydlighet:
preference_communication,mistake_npm_version - Håll stabil — ändra inte nycklar efter skapandet
Taggar: för sökning
Taggar möjliggör snabb filtrering och sökning:
# Find all memories with tag "docker"
GET /memory/by-tag?tag=docker
# FTS5 search within tagged subset
GET /memory/search?q=swarm&tag=dockerBästa praxis för taggar:
- 2–5 taggar per minne (överätta inte)
- Gemener för konsekvens
- Använd projektnamn, ämnen, tekniker
- Taggar är skiftesokänsliga
Prioriteringsnivåer
| Prioritering | När den ska användas | Återkallningsbeteende |
|---|---|---|
critical |
Identitet, juridik, oåterkalleligt | Alltid högst upp i återkallning |
high |
Aktiva projekt, nyckelinställningar | Framträdande i återkallning |
normal |
De flesta minnen (standard) | Standardordning för återkallning |
low |
Efemärt, trevligt att veta | Kan sammanfattas |
/memory/recall sorterar efter prioritet (kritisk först), sedan efter aktualitet.
Källa: användare vs agent
Minnen taggas med source:
user— lagrad av en människa (via JWT eller mänskligt gränssnitt)agent— lagrad av en LLM-agent (via Mind Key)
Detta påverkar:
- Verifiering:
user-minnen verifieras automatiskt,agent-minnen inte - Konfidens:
userstandard 1.0,agent0.7 - Återkallning:
/memory/recallmarkerar overifierade minnen med "(unverified)"
Verifiering
Flaggan verified indikerar att en människa har bekräftat minnet:
user-minnen: auto-verifierade (true)agent-minnen: standard overifierade (false)
Verifiera minnen via:
curl -X POST https://synapse.schaefer.zone/memory/mem_001/verify \
-H "Authorization: Bearer YOUR_JWT"Konfidens
Fältet confidence (0.0 till 1.0) indikerar hur pålitligt minnet är:
- 1.0 — direkt angivet av användare
- 0.7 — härlett av agent
- 0.5 — osäkert, behöver verifiering
- 0.0 — uttryckligen tvivelaktigt
Sätt konfidens vid lagring:
{
"category": "preference",
"key": "prefers_dark_mode",
"content": "User seems to prefer dark mode (based on their IDE screenshots)",
"confidence": 0.5,
"source": "agent"
}Utgång
Sätt expires_at för tidskänsliga minnen:
{
"category": "context",
"key": "current_meeting_topic",
"content": "Discussing Q3 roadmap",
"expires_at": "2026-06-28T00:00:00Z"
}Utgångna minnen returneras inte av /memory/recall (men finns fortfarande i DB).
Använd /memory/expiring?within=7d för att se minnen som löper ut snart.
Minneslivscykel
┌─────────────────┐
│ Create │
│ POST /memory │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Active │ ◀──── PUT /memory/:id (update)
│ (in recall) │
└────────┬────────┘
│
┌────────────┼────────────┐
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Expired │ │ Verified │ │ Deleted │
│ (in DB) │ │ (flag) │ │ (gone) │
└──────────┘ └──────────┘ └──────────┘Återkallningsbeteende
GET /memory/recall returnerar en oformaterad textsammanfattning optimerad
för LLM-kontext:
Mind: Michael's Mind
Memories: 12 total (10 verified, 2 unverified)
[001] identity (CRITICAL) [verified]
user_name
Michael Schäfer
Tags: person, identity
[002] preference (HIGH) [verified]
communication_style
Prefers concise technical responses
Tags: communication
[003] project (HIGH) [unverified]
synapse_status
v1.5.0 deployed, working on v1.6.0 docs
Tags: synapse, deployment
...- Sorterat efter prioritet (kritisk → låg), sedan efter aktualitet
- Overifierade minnen markerade med
[unverified] - Taggar inkluderade för kontext
- Oformaterad text (ingen JSON-tolkning behövs)