Skip to main content

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

Tag memungkinkan:

  • Pemfilteran cepatGET /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-sdk

Tag teknologi

Gunakan nama teknologi:

docker, kubernetes, postgres, fastify, react, typescript

Tag topik

Gunakan kategori topik:

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

Tag status

Gunakan indikator status:

active, completed, blocked, deprecated

Tag tipe

Gunakan indikator tipe:

decision, mistake, pattern, reference, todo

Aturan 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, MindKey

Aturan 3: Gunakan kosakata yang konsisten

Tetapkan kosakata penandaan dan patuhi:

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

# NOT: synapse_project, synapseProject, SYNAPSE

Aturan 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=deployment

Pola

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)))

Praktik Terbaik

Langkah Berikutnya