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=dockerTaggar möjliggör:
- Snabb filtrering —
GET /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-sdkTeknologitaggar
Använd teknologinamn:
docker, kubernetes, postgres, fastify, react, typescriptÄmnestaggar
Använd ämneskategorier:
deployment, ci-cd, auth, database, frontend, backend, securityStatustaggar
Använd statusindikatorer:
active, completed, blocked, deprecatedTypetaggar
Använd typindikatorer:
decision, mistake, pattern, reference, todoTaggningsregler
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, MindKeyRegel 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, SYNAPSERegel 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=deploymentMö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)))