Chiến lược gắn tag bộ nhớ
Cách gắn tag bộ nhớ cho tìm kiếm và lọc hiệu quả — hệ thống tag có khả năng mở rộng.
Chiến lược gắn tag bộ nhớ
Tag là bí mật cho thu hồi bộ nhớ có khả năng mở rộng. Hướng dẫn này cho thấy cách gắn tag bộ nhớ để đúng cái quay lại đúng thời điểm.
Tại sao Tag quan trọng
Không có tag, bạn có tìm kiếm toàn văn phẳng. Với tag, bạn có điều hướng có cấu trúc:
# Without tags: search everything
GET /memory/search?q=docker
# With tags: filter by project + technology
GET /memory/search?q=deployment&tag=synapse&tag=dockerTag cho phép:
- Lọc nhanh —
GET /memory/by-tag?tag=production - Tìm kiếm phạm vi —
?q=auth&tag=project-x - Nhóm — tìm tất cả bộ nhớ "mistake" cho một dự án
- Tham chiếu chéo — bộ nhớ chia sẻ tag liên quan
Lược đồ tag
Tag dự án
Sử dụng tên dự án làm tag:
synapse, synapse-mcp, synapse-chat, synapse-sdkTag công nghệ
Sử dụng tên công nghệ:
docker, kubernetes, postgres, fastify, react, typescriptTag chủ đề
Sử dụng danh mục chủ đề:
deployment, ci-cd, auth, database, frontend, backend, securityTag trạng thái
Sử dụng chỉ báo trạng thái:
active, completed, blocked, deprecatedTag loại
Sử dụng chỉ báo loại:
decision, mistake, pattern, reference, todoQuy tắc tag
Quy tắc 1: 2-5 tag mỗi bộ nhớ
Quá ít tag = khả năng khám phá kém. Quá nhiều = nhiễu.
// 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"] }Quy tắc 2: Chữ thường, gạch nối
✅ ci-cd, api-key, mind-key
❌ CI-CD, APIKey, MindKeyQuy tắc 3: Sử dụng từ vựng nhất quán
Thiết lập từ vựng tag và bám sát nó:
# Project vocabulary
synapse, synapse-mcp, synapse-chat
# NOT: synapse_project, synapseProject, SYNAPSEQuy tắc 4: Gắn tag với ý định tìm kiếm
Hỏi: "Làm thế nào tôi sẽ tìm kiếm bộ nhớ này?"
// 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ẫu
Mẫu 1: Dự án + Chủ đề
{ "tags": ["synapse", "deployment"] }
{ "tags": ["synapse", "auth"] }
{ "tags": ["synapse-mcp", "tools"] }Tìm: ?tag=synapse (tất cả bộ nhớ dự án Synapse)
Tìm: ?tag=synapse&q=deployment (bộ nhớ deployment trong Synapse)
Mẫu 2: Loại + Lĩnh vực
{ "tags": ["mistake", "deployment"] }
{ "tags": ["decision", "database"] }
{ "tags": ["pattern", "auth"] }Tìm: ?tag=mistake (tất cả lỗi)
Tìm: ?tag=mistake&q=deployment (lỗi deployment)
Mẫu 3: Phân cấp
Cho dự án con trong một dự án:
{ "tags": ["synapse", "synapse-docs", "markdown"] }
{ "tags": ["synapse", "synapse-mcp", "mcp"] }
{ "tags": ["synapse", "synapse-admin", "ui"] }Tìm: ?tag=synapse (tất cả Synapse)
Tìm: ?tag=synapse-docs (chỉ dự án con docs)
Mẫu 4: Theo dõi trạng thái
// Active project
{ "tags": ["synapse", "active"], "priority": "high" }
// Completed project
{ "tags": ["synapse-v1", "completed"], "priority": "low" }
// Blocked
{ "tags": ["synapse-v2", "blocked"], "priority": "high" }Trường hợp sử dụng phổ biến
Tìm tất cả quyết định về một dự án
curl -H "Authorization: Bearer $KEY" \
".../memory/search?q=decision&tag=synapse"Tìm tất cả lỗi trong một lĩnh vực
curl -H "Authorization: Bearer $KEY" \
".../memory/search?q=mistake&tag=deployment"Tìm công việc đang hoạt động
curl -H "Authorization: Bearer $KEY" \
".../memory/by-tag?tag=active"Tìm bộ nhớ về một công nghệ
curl -H "Authorization: Bearer $KEY" \
".../memory/search?q=postgres+performance&tag=database"Bảo trì tag
Xem xét định kỳ
# 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)")Hợp nhất tag
Nếu bạn có tag không nhất quán (docker và Docker), hợp nhất chúng:
# 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)))