मेमोरी मॉडल
मेमोरीज़ कैसे संरचित हैं — श्रेणियाँ, कुंजी, टैग्स, प्राथमिकताएँ, स्रोत, सत्यापन।
मेमोरी मॉडल
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)" से चिह्नित करता है
सत्यापन
verified फ़्लैग दर्शाता है कि किसी मानव ने मेमोरी की पुष्टि की है:
userमेमोरीज़: ऑटो-सत्यापित (true)agentमेमोरीज़: डिफ़ॉल्ट असत्यापित (false)
मेमोरीज़ इसके माध्यम से सत्यापित करें:
curl -X POST https://synapse.schaefer.zone/memory/mem_001/verify \
-H "Authorization: Bearer YOUR_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 पार्सिंग आवश्यक नहीं)