Skip to main content

Taggningsstrategi för minne

Hur man taggar minnen för effektiv sökning och filtrering — taggningssystemet som skalar.


Taggningsstrategi för minne

Taggar är hemligheten bakom skalbar minnesåtkomst. Den här guiden visar hur man taggar minnen så att rätt minnen kommer tillbaka vid rätt tidpunkt.

Varför taggar spelar roll

Utan taggar har ni platt fulltextssökning. Med taggar har ni strukturerad navigation:

# Without tags: search everything
GET /memory/search?q=docker

# With tags: filter by project + technology
GET /memory/search?q=deployment&tag=synapse&tag=docker

Taggar möjliggör:

  • Snabb filtreringGET /memory/by-tag?tag=production
  • Avgränsad sökning?q=auth&tag=project-x
  • Gruppering — hitta alla "misstag"-minnen för ett projekt
  • Korsreferens — minnen som delar taggar är relaterade

Taggningsschema

Projekttaggar

Använd projektnamn som taggar:

synapse, synapse-mcp, synapse-chat, synapse-sdk

Teknologitaggar

Använd teknologinamn:

docker, kubernetes, postgres, fastify, react, typescript

Ämnestaggar

Använd ämneskategorier:

deployment, ci-cd, auth, database, frontend, backend, security

Statustaggar

Använd statusindikatorer:

active, completed, blocked, deprecated

Typetaggar

Använd typindikatorer:

decision, mistake, pattern, reference, todo

Taggningsregler

Regel 1: 2–5 taggar per minne

För få taggar = dålig upptäckbarhet. För många = brus.

// Good: 3 relevant tags
{ "tags": ["synapse", "deployment", "docker"] }

// Bad: 1 tag (too narrow)
{ "tags": ["synapse"] }

// Bad: 10 tags (noise)
{ "tags": ["synapse", "deployment", "docker", "vps1", "2026", "june", "ssh", "git", "main", "production"] }

Regel 2: Gemener, bindestreck

✅ ci-cd, api-key, mind-key
❌ CI-CD, APIKey, MindKey

Regel 3: Använd konsekvent vokabulär

Etablera en taggvokabulär och håll er till den:

# Project vocabulary
synapse, synapse-mcp, synapse-chat

# NOT: synapse_project, synapseProject, SYNAPSE

Regel 4: Tagga med sökintention

Fråga: "Hur kommer jag att söka efter detta minne?"

// Storing a deployment decision
{
  "content": "Decided to use Docker Swarm for Synapse deployment",
  "tags": ["synapse", "deployment", "docker", "swarm", "decision"]
}

// You'll likely search: ?q=docker+swarm or ?tag=deployment

Mönster

Mönster 1: Projekt + ämne

{ "tags": ["synapse", "deployment"] }
{ "tags": ["synapse", "auth"] }
{ "tags": ["synapse-mcp", "tools"] }

Sök: ?tag=synapse (alla Synapse-projektminnen) Sök: ?tag=synapse&q=deployment (driftsättningsminnen i Synapse)

Mönster 2: Typ + domän

{ "tags": ["mistake", "deployment"] }
{ "tags": ["decision", "database"] }
{ "tags": ["pattern", "auth"] }

Sök: ?tag=mistake (alla misstag) Sök: ?tag=mistake&q=deployment (driftsättningsmisstag)

Mönster 3: Hierarkisk

För delprojekt inom ett projekt:

{ "tags": ["synapse", "synapse-docs", "markdown"] }
{ "tags": ["synapse", "synapse-mcp", "mcp"] }
{ "tags": ["synapse", "synapse-admin", "ui"] }

Sök: ?tag=synapse (hela Synapse) Sök: ?tag=synapse-docs (bara docs-delprojekt)

Mönster 4: Statusspårning

// Active project
{ "tags": ["synapse", "active"], "priority": "high" }

// Completed project
{ "tags": ["synapse-v1", "completed"], "priority": "low" }

// Blocked
{ "tags": ["synapse-v2", "blocked"], "priority": "high" }

Vanliga användningsområden

Hitta alla beslut om ett projekt

curl -H "Authorization: Bearer $KEY" \
     ".../memory/search?q=decision&tag=synapse"

Hitta alla misstag i en domän

curl -H "Authorization: Bearer $KEY" \
     ".../memory/search?q=mistake&tag=deployment"

Hitta aktivt arbete

curl -H "Authorization: Bearer $KEY" \
     ".../memory/by-tag?tag=active"

Hitta minnen om en teknologi

curl -H "Authorization: Bearer $KEY" \
     ".../memory/search?q=postgres+performance&tag=database"

Taggunderhåll

Periodisk granskning

# Find rarely-used tags (candidates for cleanup)
tags = requests.get(f"{URL}/memory/tags",
    headers={"Authorization": f"Bearer {KEY}"}).json()

for tag, count in tags.items():
    if count < 2:
        print(f"Rare tag: {tag} ({count} memories)")

Slå ihop taggar

Om ni har inkonsekventa taggar (docker och Docker), slå ihop dem:

# Find all memories with "Docker" tag
mems = requests.get(f"{URL}/memory/by-tag?tag=Docker",
    headers={"Authorization": f"Bearer {KEY}"}).json()

# Update each to use "docker" instead
for mem in mems["results"]:
    tags = [t.lower() for t in mem["tags"]]
    update_memory(mem["id"], tags=list(set(tags)))

Bästa praxis

Nästa steg