Skip to main content

Memory API

อ้างอิงครบถ้วนสำหรับ 22 memory endpoint: store, recall, search, semantic search, sync, audit และอื่น ๆ


Memory API

Memory API เป็นหัวใจของ Synapse ให้บริการ 22 endpoint สำหรับจัดเก็บ, ดึง, ค้นหา, และจัดการ memory ที่มีโครงสร้าง endpoint ทั้งหมดต้องใช้ Mind Key สำหรับการยืนยันตัวตน

**เรียก `GET /memory/recall` เสมอที่จุดเริ่มต้นของทุก session** นี่เป็นวิธีเดียวที่จะ rebuild context จาก session ก่อนหน้า

Categories

memory ถูกจัดเป็น 8 category:

Category กรณีใช้งาน
identity ชื่อผู้ใช้, role, ข้อมูลติดต่อ, ค่ากำหนดเกี่ยวกับตนเอง
preference สิ่งที่ชอบ/ไม่ชอบ, สไตล์การทำงาน, ค่ากำหนดการสื่อสาร
fact fact ที่ตรวจสอบได้ (รายละเอียดโปรเจกต์, วันที่, URL)
project สถานะโปรเจกต์, milestone, architecture
skill สิ่งที่ผู้ใช้ทำได้ดี
mistake error ในอดีต — หลีกเลี่ยงการทำซ้ำ
context context ที่เกี่ยวข้องกับ session
note note อื่น ๆ

Priorities

  • low — รู้ไว้ก็ดี
  • normal — ค่าเริ่มต้น
  • high — สำคัญ
  • critical — ต้องไม่ลืมเด็ดขาด (ตัวตนผู้ใช้, ข้อมูลทางกฎหมาย)

Core Endpoints

GET /memory/recall

ส่งกลับ memory ทั้งหมดในรูปแบบ plain text ที่ปรับให้เหมาะกับ LLM เรียกสิ่งนี้ที่จุดเริ่มต้นของทุก session

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/recall

Response (text/plain):

Mind: Michael's Mind
Memories: 12 total (10 verified)

[001] identity (CRITICAL)
  user_name
  Michael Schäfer
  Tags: person, identity

...

POST /memory

จัดเก็บ memory ใหม่หรืออัปเดต memory ที่มีอยู่ (category + key เดียวกัน = อัปเดต)

curl -X POST https://synapse.schaefer.zone/memory \
  -H "Authorization: Bearer YOUR_MIND_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "category": "fact",
    "key": "user_name",
    "content": "The user's name is Michael Schäfer",
    "tags": ["person", "identity"],
    "priority": "critical"
  }'

Response: { "id": "mem_001", "status": "stored" }

GET /memory

รายการ memory พร้อม filter ที่เลือกได้

# All memories (JSON)
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory?limit=50&offset=0"

# Filter by category
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory?category=project"

# Filter by tag
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory?tag=docker"

PUT /memory/:id

อัปเดต memory เฉพาะตาม ID

curl -X PUT https://synapse.schaefer.zone/memory/mem_001 \
  -H "Authorization: Bearer YOUR_MIND_KEY" \
  -H "Content-Type: application/json" \
  -d '{"content": "Updated content", "priority": "high"}'

DELETE /memory/:id

ลบ memory เดียว

curl -X DELETE -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/mem_001

Search Endpoints

GET /memory/search

Full-text search โดยใช้ FTS5

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory/search?q=docker+swarm"

ไวยากรณ์ FTS5:

  • หลายคำ = AND: docker swarm
  • Phrase: "docker swarm"
  • Prefix: docker*
  • Boolean: docker OR kubernetes
  • Exclude: docker -swarm

GET /memory/semantic-search

การค้นหาเชิงแนวคิดโดยใช้ embeddings (ช้ากว่า FTS5 แต่เข้าใจความหมาย)

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory/semantic-search?q=container+orchestration"

ส่งกลับ memory ที่คล้ายเชิง semantic กับ query แม้ไม่มี keyword ตรงกัน มีประโยชน์สำหรับ "ค้นหา memory เกี่ยวกับ X" โดยที่ X ถูกอธิบายต่างกัน

GET /memory/by-tag

รายการ memory ตาม tag

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/by-tag?tag=docker

GET /memory/related/:id

ค้นหา memory ที่เกี่ยวข้องกับ memory เฉพาะ (ผ่าน tag ที่ใช้ร่วมกัน)

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/related/mem_001

Sync & Diff

GET /memory/diff

Sync แบบ incremental — ส่งกลับ memory ที่เปลี่ยนแปลงตั้งแต่ timestamp

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory/diff?since=1700000000"

Response: { "added": [...], "updated": [...], "deleted": [...] }

POST /memory/sync

นำ diff จาก instance อื่นมาใช้ (สำหรับ self-hosted sync)

curl -X POST https://synapse.schaefer.zone/memory/sync \
  -H "Authorization: Bearer YOUR_MIND_KEY" \
  -H "Content-Type: application/json" \
  -d '{"added": [...], "updated": [...], "deleted": [...]}'

การดำเนินการแบบ Bulk

POST /memory/bulk-delete

ลบ memory หลายรายการตาม ID

curl -X POST https://synapse.schaefer.zone/memory/bulk-delete \
  -H "Authorization: Bearer YOUR_MIND_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ids": ["mem_001", "mem_002", "mem_003"]}'

POST /memory/embed-batch

สร้าง embeddings สำหรับ memory ที่ยังไม่มี (สำหรับ semantic search)

curl -X POST https://synapse.schaefer.zone/memory/embed-batch \
  -H "Authorization: Bearer YOUR_MIND_KEY" \
  -H "Content-Type: application/json" \
  -d '{"limit": 100}'

GET /memory/embed-batch-status

ตรวจสอบความคืบหน้าการสร้าง embedding

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/embed-batch-status

การยืนยัน

memory มี flag verified memory ที่จัดเก็บโดย agent จะเป็น unverified โดยค่าเริ่มต้น (source=agent); memory ที่จัดเก็บโดย human จะเป็น verified (source=user)

POST /memory/verify

ทำเครื่องหมาย memory ว่า verified (ต้องใช้ JWT ไม่ใช่ Mind Key)

curl -X POST https://synapse.schaefer.zone/memory/mem_001/verify \
  -H "Authorization: Bearer YOUR_JWT"

POST /memory/unverify

ทำเครื่องหมาย memory ว่า unverified (ต้องใช้ JWT)

curl -X POST https://synapse.schaefer.zone/memory/mem_001/unverify \
  -H "Authorization: Bearer YOUR_JWT"

GET /memory/unverified

รายการ memory ที่รอการยืนยันจาก human

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory/unverified?limit=100"

Statistics & Audit

GET /memory/stats

สถิติรวมสำหรับ mind ปัจจุบัน

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/stats

ส่งกลับ: { "total": 12, "verified": 10, "unverified": 2, "by_category": {...}, "by_priority": {...} }

GET /memory/audit

Audit log ของการดำเนินการที่เปลี่ยนแปลงสถานะทั้งหมด

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory/audit?limit=100&action=store"

GET /memory/contradictions

ตรวจหา contradiction ที่อาจเกิดขึ้นใน memory ที่จัดเก็บไว้

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/contradictions

GET /memory/expiring

รายการ memory ที่มีวันหมดอายุใกล้เข้ามา

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory/expiring?within=7d"

Health & Export

GET /memory/health

Health check อย่างรวดเร็วสำหรับระบบ memory

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/health

GET /memory/mind-export

JSON export แบบเต็มของ memory ทั้งหมด (สำหรับสำรองข้อมูล)

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/mind-export > backup.json

POST /memory/compact

รวบรวม memory ที่คล้ายกัน (auto-summarization)

curl -X POST https://synapse.schaefer.zone/memory/compact \
  -H "Authorization: Bearer YOUR_MIND_KEY" \
  -H "Content-Type: application/json" \
  -d '{"dry_run": true}'

ขั้นตอนถัดไป