# Bellek Etiketleme Stratejisi Etiketler, ölçeklenebilir bellek alımının sırrıdır. Bu rehber, doğru olanların doğru zamanda geri gelmesi için bellekleri nasıl etiketleyeceğinizi gösterir. ## Etiketler Neden Önemli Etiketler olmadan düz tam metin aramanız vardır. Etiketlerle, yapılandırılmış gezinmeniz vardır: ```bash # Without tags: search everything GET /memory/search?q=docker # With tags: filter by project + technology GET /memory/search?q=deployment&tag=synapse&tag=docker ``` Etiketler şunları sağlar: - **Hızlı filtreleme** — `GET /memory/by-tag?tag=production` - **Kapsamlı arama** — `?q=auth&tag=project-x` - **Gruplama** — bir proje için tüm "mistake" belleklerini bulma - **Çapraz referans** — etiket paylaşan bellekler ilişkilidir ## Etiketleme Şeması ### Proje etiketleri Proje adlarını etiket olarak kullanın: ``` synapse, synapse-mcp, synapse-chat, synapse-sdk ``` ### Teknoloji etiketleri Teknoloji adları kullanın: ``` docker, kubernetes, postgres, fastify, react, typescript ``` ### Konu etiketleri Konu kategorileri kullanın: ``` deployment, ci-cd, auth, database, frontend, backend, security ``` ### Durum etiketleri Durum göstergeleri kullanın: ``` active, completed, blocked, deprecated ``` ### Tip etiketleri Tip göstergeleri kullanın: ``` decision, mistake, pattern, reference, todo ``` ## Etiketleme Kuralları ### Kural 1: Bellek başına 2-5 etiket Çok az etiket = zayıf keşfedilebilirlik. Çok fazla = gürültü. ```json // 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"] } ``` ### Kural 2: Küçük harf, tireli ``` ✅ ci-cd, api-key, mind-key ❌ CI-CD, APIKey, MindKey ``` ### Kural 3: Tutarlı kelime dağarcığı kullanın Bir etiketleme kelime dağarcığı oluşturun ve ona sadık kalın: ``` # Project vocabulary synapse, synapse-mcp, synapse-chat # NOT: synapse_project, synapseProject, SYNAPSE ``` ### Kural 4: Arama niyetiyle etiketleyin Sorun: "Bu belleği nasıl arayacağım?" ```json // 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 ``` ## Desenler ### Desen 1: Proje + Konu ```json { "tags": ["synapse", "deployment"] } { "tags": ["synapse", "auth"] } { "tags": ["synapse-mcp", "tools"] } ``` Arama: `?tag=synapse` (tüm Synapse proje bellekleri) Arama: `?tag=synapse&q=deployment` (Synapse'ta dağıtım bellekleri) ### Desen 2: Tip + Alan ```json { "tags": ["mistake", "deployment"] } { "tags": ["decision", "database"] } { "tags": ["pattern", "auth"] } ``` Arama: `?tag=mistake` (tüm hatalar) Arama: `?tag=mistake&q=deployment` (dağıtım hataları) ### Desen 3: Hiyerarşik Bir proje içindeki alt projeler için: ```json { "tags": ["synapse", "synapse-docs", "markdown"] } { "tags": ["synapse", "synapse-mcp", "mcp"] } { "tags": ["synapse", "synapse-admin", "ui"] } ``` Arama: `?tag=synapse` (tüm Synapse) Arama: `?tag=synapse-docs` (sadece docs alt projesi) ### Desen 4: Durum izleme ```json // Active project { "tags": ["synapse", "active"], "priority": "high" } // Completed project { "tags": ["synapse-v1", "completed"], "priority": "low" } // Blocked { "tags": ["synapse-v2", "blocked"], "priority": "high" } ``` ## Yaygın Kullanım Senaryoları ### Bir proje hakkındaki tüm kararları bul ```bash curl -H "Authorization: Bearer $KEY" \ ".../memory/search?q=decision&tag=synapse" ``` ### Bir alandaki tüm hataları bul ```bash curl -H "Authorization: Bearer $KEY" \ ".../memory/search?q=mistake&tag=deployment" ``` ### Aktif çalışmayı bul ```bash curl -H "Authorization: Bearer $KEY" \ ".../memory/by-tag?tag=active" ``` ### Bir teknoloji hakkındaki bellekleri bul ```bash curl -H "Authorization: Bearer $KEY" \ ".../memory/search?q=postgres+performance&tag=database" ``` ## Etiket Bakımı ### Periyodik inceleme ```python # 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)") ``` ### Etiketleri birleştirme Tutarsız etiketleriniz varsa (`docker` ve `Docker`), bunları birleştirin: ```python # 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))) ``` ## En İyi Uygulamalar > [!TIP] > - **Kelime dağarcığını erken oluşturun** — 1. günden itibaren tutarlı etiketler > - **Arama niyetiyle etiketleyin** — bunu daha sonra nasıl bulacaksınız? > - **2-5 etiket tatlı noktadır** — çok az veya çok fazla kötüdür > - **Küçük harf + tireler** — `CI/CD` değil `ci-cd` > - **Periyodik olarak inceleyin** — yinelenenleri birleştirin, kullanılmayanları kaldırın ## Sonraki Adımlar - [Bellek En İyi Uygulamaları](/docs/guides/memory-best-practices) - [FTS5 Arama](/docs/concepts/fts5-search) - [Görev Odaklı İş Akışı](/docs/llm-cookbook/task-driven-workflow)