# Bellek Modeli Synapse'in bellek modeli LLM ajanları için tasarlanmıştır — güvenilir geri çağırma için yeterince yapılandırılmış, her alan için yeterince esnek. ## Bellek Anatomisi ```json { "id": "mem_abc123", "category": "project", "key": "project_synapse_status", "content": "Synapse v1.5.0 deployed on vps1. CI green.", "tags": ["synapse", "deployment", "v1.5.0"], "priority": "high", "source": "agent", "verified": false, "confidence": 0.85, "expires_at": null, "mind_id": "m_xyz789", "created_at": "2026-06-27T...", "updated_at": "2026-06-27T..." } ``` ## Alanlar | Alan | Tip | Gerekli | Açıklama | |-------|------|----------|-------------| | `id` | string | otomatik | Benzersiz ID (mem_xxx) | | `category` | enum | ✅ | 8 kategoriden biri | | `key` | string | ✅ | Kararlı tanımlayıcı (güncellemeler için kullanılır) | | `content` | string | ✅ | Bellek içeriği (herhangi bir metin) | | `tags` | string[] | – | Arama ve filtreleme için | | `priority` | enum | – | low, normal, high, critical (varsayılan: normal) | | `source` | enum | otomatik | user, agent (kim sakladı) | | `verified` | bool | otomatik | Bir insan bunu doğruladı mı? | | `confidence` | float | – | 0.0 - 1.0 (varsayılan: user için 1.0, agent için 0.7) | | `expires_at` | timestamp | – | Bu bellek ne zaman unutulur | | `mind_id` | string | otomatik | Bu hangi mind'e ait | | `created_at` | timestamp | otomatik | İlk saklandığı zaman | | `updated_at` | timestamp | otomatik | Son değişiklik | ## Kategoriler Sekiz kategori, yaygın LLM ajan kullanım senaryolarını kapsar: | Kategori | Amaç | Örnek İçerik | |----------|---------|-----------------| | `identity` | Kullanıcı kim | "Kullanıcı Michael Schäfer, Berlin'de yazılım mühendisi" | | `preference` | Kullanıcı tercihleri | "Öz ve teknik yanıtları tercih eder" | | `fact` | Doğrulanabilir bilgiler | "Ofis Berlin'de, saat dilimi Europe/Berlin" | | `project` | Proje durumu | "Synapse v1.5.0 dağıtıldı, v1.6.0 docs üzerinde çalışılıyor" | | `skill` | Kullanıcının becerileri | "İleri Python, 10+ yıl" | | `mistake` | Geçmiş hatalar | "npm sürümünü yükseltmeyi unuttum — CI başarısız oldu" | | `context` | Oturum bağlamı | "Şu anda PR #42 inceleniyor" | | `note` | Çeşitli notlar | "Bir sonraki sprint için önbellekleme için Redis'i dene" | ## Anahtarlar: Kararlı Tanımlayıcılar `key` alanı kritiktir — yinelenen oluşturmadan bellekleri nasıl güncelleyeceğinizdir. ```python # First store store("project", "project_synapse_status", "v1.4.0 deployed", priority="high") # Update with same key (overwrites, doesn't duplicate) store("project", "project_synapse_status", "v1.5.0 deployed", priority="high") ``` **Anahtar kuralları:** - (category, mind) içinde benzersiz olmalı - `snake_case` kullanın - Netlik için kategori ile önekleyin: `preference_communication`, `mistake_npm_version` - Kararlı tutun — oluşturduktan sonra anahtarları değiştirmeyin ## Etiketler: Arama İçin Etiketler hızlı filtreleme ve arama sağlar: ```bash # Find all memories with tag "docker" GET /memory/by-tag?tag=docker # FTS5 search within tagged subset GET /memory/search?q=swarm&tag=docker ``` **Etiket en iyi uygulamaları:** - Bellek başına 2-5 etiket (aşırı etiketlemeyin) - Tutarlılık için küçük harf - Proje adları, konular, teknolojiler kullanın - Etiketler büyük/küçük harf duyarsızdır ## Öncelik Düzeyleri | Öncelik | Ne Zaman Kullanılır | Geri Çağırma Davranışı | |----------|-------------|-----------------| | `critical` | Kimlik, yasal, geri alınamaz | Geri çağırmada her zaman en üstte | | `high` | Aktif projeler, temel tercihler | Geri çağırmada öne çıkan | | `normal` | Çoğu bellek (varsayılan) | Standart geri çağırma sırası | | `low` | Geçici, bilmek güzel | Özetlenebilir | `/memory/recall` önceliğe göre (önce critical), sonra yeniliğe göre sıralar. ## Kaynak: User ve Agent Bellekler `source` ile etiketlenir: - `user` — bir insan tarafından saklandı (JWT veya insan arayüzü ile) - `agent` — bir LLM ajanı tarafından saklandı (Mind Key ile) Bu şunları etkiler: - **Doğrulama**: `user` bellekleri otomatik doğrulanır, `agent` bellekleri doğrulanmaz - **Güven**: `user` varsayılan 1.0, `agent` 0.7 - **Geri çağırma**: `/memory/recall` doğrulanmamış bellekleri "(unverified)" ile işaretler > [!NOTE] > `agent` kaynaklı bellekleri uygun şüpheyle ele alın. Bunlar kullanıcı tarafından doğrudan belirtilmekten ziyade çıkarılmış veya varsayılmış olabilir. ## Doğrulama `verified` bayrağı, bir insanın belleği onayladığını gösterir: - `user` bellekleri: otomatik doğrulanır (`true`) - `agent` bellekleri: varsayılan doğrulanmamış (`false`) Bellekleri şununla doğrulayın: ```bash curl -X POST https://synapse.schaefer.zone/memory/mem_001/verify \ -H "Authorization: Bearer YOUR_JWT" ``` > [!NOTE] > Doğrulama JWT (insan kimlik doğrulaması) gerektirir, Mind Key (ajan kimlik doğrulaması) değil. Bu, yalnızca insanların bellekleri doğrulanmış olarak işaretleyebilmesini sağlar. ## Güven `confidence` alanı (0.0 - 1.0) belleğin ne kadar güvenilir olduğunu gösterir: - 1.0 — kullanıcı tarafından doğrudan belirtilmiş - 0.7 — ajan tarafından çıkarılmış - 0.5 — belirsiz, doğrulama gerekiyor - 0.0 — açıkça şüpheli Saklarken güveni ayarlayın: ```json { "category": "preference", "key": "prefers_dark_mode", "content": "User seems to prefer dark mode (based on their IDE screenshots)", "confidence": 0.5, "source": "agent" } ``` ## Son Kullanma Zamana duyarlı bellekler için `expires_at` ayarlayın: ```json { "category": "context", "key": "current_meeting_topic", "content": "Discussing Q3 roadmap", "expires_at": "2026-06-28T00:00:00Z" } ``` Süresi dolmuş bellekler `/memory/recall` tarafından döndürülmez (ama veritabanında hala mevcut). Yakında süresi dolacak bellekleri görmek için `/memory/expiring?within=7d` kullanın. ## Bellek Yaşam Döngüsü ``` ┌─────────────────┐ │ Create │ │ POST /memory │ └────────┬────────┘ │ ▼ ┌─────────────────┐ │ Active │ ◀──── PUT /memory/:id (update) │ (in recall) │ └────────┬────────┘ │ ┌────────────┼────────────┐ │ │ │ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ Expired │ │ Verified │ │ Deleted │ │ (in DB) │ │ (flag) │ │ (gone) │ └──────────┘ └──────────┘ └──────────┘ ``` ## Geri Çağırma Davranışı `GET /memory/recall`, LLM bağlamı için optimize edilmiş düz metin özeti döndürür: ``` Mind: Michael's Mind Memories: 12 total (10 verified, 2 unverified) [001] identity (CRITICAL) [verified] user_name Michael Schäfer Tags: person, identity [002] preference (HIGH) [verified] communication_style Prefers concise technical responses Tags: communication [003] project (HIGH) [unverified] synapse_status v1.5.0 deployed, working on v1.6.0 docs Tags: synapse, deployment ... ``` - Önceliğe göre sıralanır (critical → low), sonra yeniliğe göre - Doğrulanmamış bellekler `[unverified]` ile işaretlenir - Bağlam için etiketler dahil edilir - Düz metin (JSON ayrıştırma gerekmez) ## Sonraki Adımlar - [Memory API](/docs/api/memory) - [Bellek En İyi Uygulamaları](/docs/guides/memory-best-practices) - [FTS5 Arama](/docs/concepts/fts5-search)