Memory-Tagging-Strategie
Wie du Memories für effektive Suche und Filterung taggst — das Tagging-System, das skaliert.
Memory-Tagging-Strategie
Tags sind das Geheimnis skalierbaren Memory-Retrievals. Dieser Guide zeigt, wie du Memories taggst, damit die richtigen zur richtigen Zeit zurückkommen.
Warum Tags wichtig sind
Ohne Tags hast du flache Volltextsuche. Mit Tags hast du strukturierte Navigation:
# Without tags: search everything
GET /memory/search?q=docker
# With tags: filter by project + technology
GET /memory/search?q=deployment&tag=synapse&tag=dockerTags ermöglichen:
- Schnelle Filterung —
GET /memory/by-tag?tag=production - Scoped Suche —
?q=auth&tag=project-x - Gruppierung — alle „mistake"-Memories für ein Projekt finden
- Querverweise — Memories, die Tags teilen, sind verwandt
Tagging-Schema
Projekt-Tags
Verwende Projektnamen als Tags:
synapse, synapse-mcp, synapse-chat, synapse-sdkTechnologie-Tags
Verwende Technologienamen:
docker, kubernetes, postgres, fastify, react, typescriptThemen-Tags
Verwende Themen-Kategorien:
deployment, ci-cd, auth, database, frontend, backend, securityStatus-Tags
Verwende Status-Indikatoren:
active, completed, blocked, deprecatedTyp-Tags
Verwende Typ-Indikatoren:
decision, mistake, pattern, reference, todoTagging-Regeln
Regel 1: 2-5 Tags pro Memory
Zu wenige Tags = schlechte Auffindbarkeit. Zu viele = Noise.
// 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: Kleinschreibung, Bindestriche
✅ ci-cd, api-key, mind-key
❌ CI-CD, APIKey, MindKeyRegel 3: Konsistentes Vokabular verwenden
Etabliere ein Tagging-Vokabular und bleib dabei:
# Project vocabulary
synapse, synapse-mcp, synapse-chat
# NOT: synapse_project, synapseProject, SYNAPSERegel 4: Mit Such-Intention taggen
Frag dich: „Wie werde ich nach diesem Memory suchen?"
// 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=deploymentPatterns
Pattern 1: Projekt + Thema
{ "tags": ["synapse", "deployment"] }
{ "tags": ["synapse", "auth"] }
{ "tags": ["synapse-mcp", "tools"] }Suche: ?tag=synapse (alle Synapse-Projekt-Memories)
Suche: ?tag=synapse&q=deployment (Deployment-Memories in Synapse)
Pattern 2: Typ + Domäne
{ "tags": ["mistake", "deployment"] }
{ "tags": ["decision", "database"] }
{ "tags": ["pattern", "auth"] }Suche: ?tag=mistake (alle Fehler)
Suche: ?tag=mistake&q=deployment (Deployment-Fehler)
Pattern 3: Hierarchisch
Für Sub-Projekte innerhalb eines Projekts:
{ "tags": ["synapse", "synapse-docs", "markdown"] }
{ "tags": ["synapse", "synapse-mcp", "mcp"] }
{ "tags": ["synapse", "synapse-admin", "ui"] }Suche: ?tag=synapse (alle Synapse)
Suche: ?tag=synapse-docs (nur Docs-Subprojekt)
Pattern 4: Status-Tracking
// Active project
{ "tags": ["synapse", "active"], "priority": "high" }
// Completed project
{ "tags": ["synapse-v1", "completed"], "priority": "low" }
// Blocked
{ "tags": ["synapse-v2", "blocked"], "priority": "high" }Häufige Anwendungsfälle
Alle Entscheidungen über ein Projekt finden
curl -H "Authorization: Bearer $KEY" \
".../memory/search?q=decision&tag=synapse"Alle Fehler in einer Domäne finden
curl -H "Authorization: Bearer $KEY" \
".../memory/search?q=mistake&tag=deployment"Aktive Arbeit finden
curl -H "Authorization: Bearer $KEY" \
".../memory/by-tag?tag=active"Memories über eine Technologie finden
curl -H "Authorization: Bearer $KEY" \
".../memory/search?q=postgres+performance&tag=database"Tag-Wartung
Periodische Überprüfung
# 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)")Tags mergen
Bei inkonsistenten Tags (docker und Docker) mergen:
# 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)))