Strategi Penandaan Memori
Cara menandai memori untuk pencarian dan pemfilteran efektif — sistem penandaan yang skalabel.
Strategi Penandaan Memori
Tag adalah rahasia untuk pengambilan memori yang skalabel. Panduan ini menunjukkan cara menandai memori sehingga yang tepat kembali pada waktu yang tepat.
Mengapa Tag Penting
Tanpa tag, Anda memiliki pencarian teks penuh datar. Dengan tag, Anda memiliki navigasi terstruktur:
# Without tags: search everything
GET /memory/search?q=docker
# With tags: filter by project + technology
GET /memory/search?q=deployment&tag=synapse&tag=dockerTag memungkinkan:
- Pemfilteran cepat —
GET /memory/by-tag?tag=production - Pencarian tercakup —
?q=auth&tag=project-x - Pengelompokan — temukan semua memori "mistake" untuk sebuah proyek
- Referensi silang — memori yang berbagi tag terkait
Skema Penandaan
Tag proyek
Gunakan nama proyek sebagai tag:
synapse, synapse-mcp, synapse-chat, synapse-sdkTag teknologi
Gunakan nama teknologi:
docker, kubernetes, postgres, fastify, react, typescriptTag topik
Gunakan kategori topik:
deployment, ci-cd, auth, database, frontend, backend, securityTag status
Gunakan indikator status:
active, completed, blocked, deprecatedTag tipe
Gunakan indikator tipe:
decision, mistake, pattern, reference, todoAturan Penandaan
Aturan 1: 2-5 tag per memori
Terlalu sedikit tag = discoverability buruk. Terlalu banyak = kebisingan.
// 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"] }Aturan 2: Huruf kecil, dipisahkan tanda hubung
✅ ci-cd, api-key, mind-key
❌ CI-CD, APIKey, MindKeyAturan 3: Gunakan kosakata yang konsisten
Tetapkan kosakata penandaan dan patuhi:
# Project vocabulary
synapse, synapse-mcp, synapse-chat
# NOT: synapse_project, synapseProject, SYNAPSEAturan 4: Tandai dengan niat pencarian
Tanyakan: "Bagaimana saya akan mencari memori ini?"
// 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=deploymentPola
Pola 1: Proyek + Topik
{ "tags": ["synapse", "deployment"] }
{ "tags": ["synapse", "auth"] }
{ "tags": ["synapse-mcp", "tools"] }Pencarian: ?tag=synapse (semua memori proyek Synapse)
Pencarian: ?tag=synapse&q=deployment (memori deployment di Synapse)
Pola 2: Tipe + Domain
{ "tags": ["mistake", "deployment"] }
{ "tags": ["decision", "database"] }
{ "tags": ["pattern", "auth"] }Pencarian: ?tag=mistake (semua kesalahan)
Pencarian: ?tag=mistake&q=deployment (kesalahan deployment)
Pola 3: Hierarkis
Untuk sub-proyek dalam proyek:
{ "tags": ["synapse", "synapse-docs", "markdown"] }
{ "tags": ["synapse", "synapse-mcp", "mcp"] }
{ "tags": ["synapse", "synapse-admin", "ui"] }Pencarian: ?tag=synapse (semua Synapse)
Pencarian: ?tag=synapse-docs (hanya sub-proyek docs)
Pola 4: Pelacakan status
// Active project
{ "tags": ["synapse", "active"], "priority": "high" }
// Completed project
{ "tags": ["synapse-v1", "completed"], "priority": "low" }
// Blocked
{ "tags": ["synapse-v2", "blocked"], "priority": "high" }Kasus Penggunaan Umum
Temukan semua keputusan tentang sebuah proyek
curl -H "Authorization: Bearer $KEY" \
".../memory/search?q=decision&tag=synapse"Temukan semua kesalahan dalam sebuah domain
curl -H "Authorization: Bearer $KEY" \
".../memory/search?q=mistake&tag=deployment"Temukan pekerjaan aktif
curl -H "Authorization: Bearer $KEY" \
".../memory/by-tag?tag=active"Temukan memori tentang sebuah teknologi
curl -H "Authorization: Bearer $KEY" \
".../memory/search?q=postgres+performance&tag=database"Pemeliharaan Tag
Tinjauan berkala
# 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)")Menggabungkan tag
Jika Anda memiliki tag yang tidak konsisten (docker dan Docker), gabungkan:
# 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)))