Skip to main content

मेमोरी मॉडल

मेमोरीज़ कैसे संरचित हैं — श्रेणियाँ, कुंजी, टैग्स, प्राथमिकताएँ, स्रोत, सत्यापन।


मेमोरी मॉडल

Synapse का मेमोरी मॉडल LLM एजेंट्स के लिए डिज़ाइन किया गया है — विश्वसनीय रिकॉल के लिए पर्याप्त संरचित, किसी भी डोमेन के लिए पर्याप्त लचीला।

मेमोरी शरीर रचना

{
  "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..."
}

फ़ील्ड्स

फ़ील्ड प्रकार आवश्यक विवरण
id string auto अद्वितीय ID (mem_xxx)
category enum 8 श्रेणियों में से एक
key string स्थिर पहचानकर्ता (अपडेट के लिए उपयोग)
content string मेमोरी सामग्री (कोई भी टेक्स्ट)
tags string[] खोज और फ़िल्टरिंग के लिए
priority enum low, normal, high, critical (डिफ़ॉल्ट: normal)
source enum auto user, agent (किसने स्टोर किया)
verified bool auto क्या किसी मानव ने इसे सत्यापित किया?
confidence float 0.0 से 1.0 (डिफ़ॉल्ट: user के लिए 1.0, agent के लिए 0.7)
expires_at timestamp यह मेमोरी कब भूलनी है
mind_id string auto कौन सा mind इसका मालिक है
created_at timestamp auto पहले स्टोर किया गया
updated_at timestamp auto अंतिम बार संशोधित

श्रेणियाँ

आठ श्रेणियाँ सामान्य LLM एजेंट उपयोग के मामलों को कवर करती हैं:

श्रेणी उद्देश्य उदाहरण सामग्री
identity उपयोगकर्ता कौन है "User is Michael Schäfer, software engineer in Berlin"
preference उपयोगकर्ता प्राथमिकताएँ "Prefers concise technical responses"
fact सत्यापित योग्य तथ्य "Office is in Berlin, timezone Europe/Berlin"
project परियोजना स्थिति "Synapse v1.5.0 deployed, working on v1.6.0 docs"
skill उपयोगकर्ता के कौशल "Advanced Python, 10+ years"
mistake पिछली त्रुटियाँ "Forgot to bump npm version — CI failed"
context सत्र संदर्भ "Currently reviewing PR #42"
note विविध नोट्स "Try Redis for caching next sprint"

कुंजी: स्थिर पहचानकर्ता

key फ़ील्ड महत्वपूर्ण है — यह डुप्लिकेट बनाए बिना मेमोरीज़ अपडेट करने का तरीका है।

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

कुंजी नियम:

  • (category, mind) के भीतर अद्वितीय होनी चाहिए
  • snake_case का उपयोग करें
  • स्पष्टता के लिए श्रेणी के साथ उपसर्ग: preference_communication, mistake_npm_version
  • स्थिर रखें — निर्माण के बाद कुंजी न बदलें

टैग्स: खोज के लिए

टैग्स तेज़ फ़िल्टरिंग और खोज सक्षम बनाते हैं:

# Find all memories with tag "docker"
GET /memory/by-tag?tag=docker

# FTS5 search within tagged subset
GET /memory/search?q=swarm&tag=docker

टैग सर्वोत्तम प्रथाएँ:

  • प्रति मेमोरी 2-5 टैग्स (अधिक टैग न करें)
  • निरंतरता के लिए लोअरकेस
  • परियोजना नाम, विषय, तकनीकों का उपयोग करें
  • टैग्स केस-असंवेदनशील हैं

प्राथमिकता स्तर

प्राथमिकता कब उपयोग करें रिकॉल व्यवहार
critical पहचान, कानूनी, अपरिवर्तनीय हमेशा रिकॉल के शीर्ष पर
high सक्रिय परियोजनाएँ, मुख्य प्राथमिकताएँ रिकॉल में प्रमुख
normal अधिकांश मेमोरीज़ (डिफ़ॉल्ट) मानक रिकॉल क्रम
low क्षणिक, जानना-अच्छा सारांशित हो सकता है

/memory/recall प्राथमिकता द्वारा (critical पहले), फिर नवीनता द्वारा क्रमबद्ध करता है।

स्रोत: User बनाम Agent

मेमोरीज़ को source के साथ टैग किया जाता है:

  • user — किसी मानव द्वारा स्टोर किया गया (JWT या human UI के माध्यम से)
  • agent — किसी LLM एजेंट द्वारा स्टोर किया गया (Mind Key के माध्यम से)

यह प्रभावित करता है:

  • सत्यापन: user मेमोरीज़ ऑटो-सत्यापित हैं, agent मेमोरीज़ नहीं
  • विश्वास्यता: user का डिफ़ॉल्ट 1.0, agent का 0.7
  • रिकॉल: /memory/recall असत्यापित मेमोरीज़ को "(unverified)" से चिह्नित करता है
`agent`-स्रोत मेमोरीज़ के प्रति उचित संदेह रखें। ये सीधे उपयोगकर्ता द्वारा बताई गई नहीं, बल्कि अनुमानित या मानी गई हो सकती हैं।

सत्यापन

verified फ़्लैग दर्शाता है कि किसी मानव ने मेमोरी की पुष्टि की है:

  • user मेमोरीज़: ऑटो-सत्यापित (true)
  • agent मेमोरीज़: डिफ़ॉल्ट असत्यापित (false)

मेमोरीज़ इसके माध्यम से सत्यापित करें:

curl -X POST https://synapse.schaefer.zone/memory/mem_001/verify \
  -H "Authorization: Bearer YOUR_JWT"
सत्यापन के लिए Mind Key (एजेंट प्रमाणीकरण) नहीं, JWT (मानव प्रमाणीकरण) आवश्यक है। यह सुनिश्चित करता है कि केवल मानव ही मेमोरीज़ को सत्यापित के रूप में चिह्नित कर सकें।

विश्वास्यता

confidence फ़ील्ड (0.0 से 1.0) दर्शाता है कि मेमोरी कितनी विश्वसनीय है:

  • 1.0 — उपयोगकर्ता द्वारा सीधे बताई गई
  • 0.7 — एजेंट द्वारा अनुमानित
  • 0.5 — अनिश्चित, सत्यापन चाहिए
  • 0.0 — स्पष्ट रूप से संदिग्ध

स्टोर करते समय विश्वास्यता सेट करें:

{
  "category": "preference",
  "key": "prefers_dark_mode",
  "content": "User seems to prefer dark mode (based on their IDE screenshots)",
  "confidence": 0.5,
  "source": "agent"
}

समाप्ति

समय-संवेदनशील मेमोरीज़ के लिए expires_at सेट करें:

{
  "category": "context",
  "key": "current_meeting_topic",
  "content": "Discussing Q3 roadmap",
  "expires_at": "2026-06-28T00:00:00Z"
}

समाप्त मेमोरीज़ /memory/recall द्वारा लौटाई नहीं जातीं (लेकिन DB में अभी भी मौजूद हैं)। जल्द ही समाप्त होने वाली मेमोरीज़ देखने के लिए /memory/expiring?within=7d का उपयोग करें।

मेमोरी जीवनचक्र

                  ┌─────────────────┐
                  │     Create      │
                  │  POST /memory   │
                  └────────┬────────┘
                           │
                           ▼
                  ┌─────────────────┐
                  │     Active      │ ◀──── PUT /memory/:id (update)
                  │  (in recall)    │
                  └────────┬────────┘
                           │
              ┌────────────┼────────────┐
              │            │            │
              ▼            ▼            ▼
        ┌──────────┐ ┌──────────┐ ┌──────────┐
        │ Expired  │ │ Verified │ │ Deleted  │
        │ (in DB)  │ │ (flag)   │ │ (gone)   │
        └──────────┘ └──────────┘ └──────────┘

रिकॉल व्यवहार

GET /memory/recall LLM संदर्भ के लिए अनुकूलित सादे-टेक्स्ट सारांश लौटाता है:

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

...
  • प्राथमिकता द्वारा क्रमबद्ध (critical → low), फिर नवीनता द्वारा
  • असत्यापित मेमोरीज़ [unverified] से चिह्नित
  • संदर्भ के लिए टैग्स शामिल
  • सादा टेक्स्ट (कोई JSON पार्सिंग आवश्यक नहीं)

अगले कदम