Skip to main content

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=docker

Bä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: user standard 1.0, agent 0.7
  • Återkallning: /memory/recall markerar overifierade minnen med "(unverified)"
Behandla `agent`-källade minnen med lämplig skepsis. De kan vara härledda eller antagna snarare än direkt angivna av användaren.

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"
Verifiering kräver JWT (mänsklig autentisering), inte Mind Key (agent-autentisering). Detta säkerställer att endast människor kan markera minnen som verifierade.

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)

Nästa steg