Skip to main content

Memory API

Referensi lengkap untuk 22 endpoint memori: menyimpan, recall, pencarian, pencarian semantik, sinkronisasi, audit, dan lainnya.


Memory API

Memory API adalah jantung Synapse. API ini menyediakan 22 endpoint untuk menyimpan, mengambil, mencari, dan mengelola memori terstruktur. Semua endpoint memerlukan Mind Key untuk autentikasi.

**Selalu panggil `GET /memory/recall` di awal setiap sesi.** Ini adalah satu-satunya cara untuk membangun kembali konteks dari sesi sebelumnya.

Kategori

Memori diorganisasi ke dalam 8 kategori:

Kategori Kasus Penggunaan
identity Nama pengguna, peran, info kontak, preferensi tentang diri sendiri
preference Suka, tidak suka, gaya kerja, preferensi komunikasi
fact Fakta yang dapat diverifikasi (detail proyek, tanggal, URL)
project Status proyek, milestone, arsitektur
skill Hal-hal yang dikuasai pengguna
mistake Error masa lalu — hindari pengulangan
context Konteks yang relevan dengan sesi
note Catatan lain-lain

Prioritas

  • low — bagus untuk diketahui
  • normal — default
  • high — penting
  • critical — tidak boleh dilupakan (identitas pengguna, info hukum)

Endpoint Inti

GET /memory/recall

Mengembalikan SEMUA memori sebagai teks polos yang dioptimalkan untuk LLM. Panggil ini di setiap awal sesi.

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

Respons (text/plain):

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

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

...

POST /memory

Menyimpan memori baru atau memperbarui yang sudah ada (kategori + key yang sama = pembaruan).

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"
  }'

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

GET /memory

Mendaftar memori dengan filter opsional.

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

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

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

PUT /memory/:id

Memperbarui memori tertentu berdasarkan 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

Menghapus satu memori.

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

Endpoint Pencarian

GET /memory/search

Pencarian teks penuh menggunakan FTS5.

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

Sintaks FTS5:

  • Beberapa kata = AND: docker swarm
  • Frasa: "docker swarm"
  • Prefix: docker*
  • Boolean: docker OR kubernetes
  • Pengecualian: docker -swarm

GET /memory/semantic-search

Pencarian konseptual menggunakan embeddings (lebih lambat dari FTS5 tetapi memahami makna).

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

Mengembalikan memori yang mirip secara semantik dengan kueri, meskipun tidak ada kata kunci yang cocok. Berguna untuk "temukan memori tentang X" di mana X dideskripsikan secara berbeda.

GET /memory/by-tag

Mendaftar memori berdasarkan tag.

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

GET /memory/related/:id

Menemukan memori yang terkait dengan memori tertentu (melalui tag bersama).

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

Sinkronisasi & Diff

GET /memory/diff

Sinkronisasi inkremental — mengembalikan memori yang berubah sejak timestamp tertentu.

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

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

POST /memory/sync

Menerapkan diff dari instansi lain (untuk sinkronisasi self-hosted).

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

Operasi Massal

POST /memory/bulk-delete

Menghapus beberapa memori berdasarkan 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

Membuat embeddings untuk memori yang belum memilikinya (untuk pencarian semantik).

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

Memeriksa kemajuan pembuatan embedding.

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

Verifikasi

Memori memiliki flag verified. Memori yang disimpan agen defaultnya tidak terverifikasi (source=agent); memori yang disimpan manusia terverifikasi (source=user).

POST /memory/verify

Menandai memori sebagai terverifikasi (memerlukan JWT, bukan Mind Key).

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

POST /memory/unverify

Menandai memori sebagai tidak terverifikasi (memerlukan JWT).

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

GET /memory/unverified

Mendaftar memori yang menunggu verifikasi manusia.

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

Statistik & Audit

GET /memory/stats

Statistik agregat untuk mind saat ini.

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

Mengembalikan: { "total": 12, "verified": 10, "unverified": 2, "by_category": {...}, "by_priority": {...} }

GET /memory/audit

Log audit dari semua operasi yang mengubah state.

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

GET /memory/contradictions

Mendeteksi potensi kontradiksi dalam memori yang disimpan.

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

GET /memory/expiring

Mendaftar memori dengan tanggal kedaluwarsa yang mendekat.

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

Health & Export

GET /memory/health

Pemeriksaan health cepat untuk sistem memori.

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

GET /memory/mind-export

Ekspor JSON lengkap dari semua memori (untuk backup).

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

POST /memory/compact

Mengompak memori yang mirip (ringkasan otomatis).

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

Langkah Berikutnya