Skip to main content

Memory-API

Vollständige Referenz der 22 Memory-Endpunkte: speichern, abrufen, suchen, semantische Suche, Sync, Audit und mehr.


Memory-API

Die Memory-API ist das Herz von Synapse. Sie bietet 22 Endpunkte zum Speichern, Abrufen, Suchen und Verwalten strukturierter Erinnerungen. Alle Endpunkte erfordern einen Mind Key zur Authentifizierung.

**Rufe immer `GET /memory/recall` zu Beginn jeder Session auf.** Das ist der einzige Weg, den Kontext aus früheren Sessions wiederherzustellen.

Kategorien

Memories sind in 8 Kategorien gegliedert:

Kategorie Anwendungsfall
identity Nutzername, Rolle, Kontaktinfo, Selbstaussagen
preference Vorlieben, Abneigungen, Arbeitsstil, Kommunikationspräferenzen
fact Überprüfbare Fakten (Projekt-Details, Daten, URLs)
project Projektstatus, Meilensteine, Architektur
skill Dinge, die der Nutzer gut kann
mistake Frühere Fehler — nicht wiederholen
context Session-relevanter Kontext
note Sonstige Notizen

Prioritäten

  • low — nett zu wissen
  • normal — Standard
  • high — wichtig
  • critical — darf nie vergessen werden (Nutzeridentität, rechtliche Infos)

Kern-Endpunkte

GET /memory/recall

Liefert ALLE Memories als LLM-optimierten Klartext. Rufe dies zu Beginn jeder Session auf.

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

Antwort (text/plain):

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

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

...

POST /memory

Einen neuen Memory speichern oder einen bestehenden aktualisieren (gleiche Kategorie + Key = Update).

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

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

GET /memory

Memories mit optionalen Filtern auflisten.

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

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

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

PUT /memory/:id

Einen bestimmten Memory per ID aktualisieren.

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

Einen einzelnen Memory löschen.

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

Such-Endpunkte

GET /memory/search

Volltextsuche via FTS5.

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

FTS5-Syntax:

  • Mehrere Wörter = AND: docker swarm
  • Phrase: "docker swarm"
  • Präfix: docker*
  • Boolesch: docker OR kubernetes
  • Ausschließen: docker -swarm

GET /memory/semantic-search

Konzeptionelle Suche via Embeddings (langsamer als FTS5, versteht aber Bedeutung).

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

Liefert Memories, die semantisch zur Anfrage passen, selbst wenn keine Keywords übereinstimmen. Nützlich für „finde Memories über X", wenn X anders beschrieben wird.

GET /memory/by-tag

Memories nach Tag auflisten.

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

GET /memory/related/:id

Memories finden, die mit einem bestimmten Memory verwandt sind (über gemeinsame Tags).

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

Sync & Diff

GET /memory/diff

Inkrementeller Sync — liefert Memories, die seit einem Zeitstempel geändert wurden.

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

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

POST /memory/sync

Einen Diff aus einer anderen Instanz anwenden (für selbstgehosteten 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-Operationen

POST /memory/bulk-delete

Mehrere Memories per ID löschen.

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 für Memories generieren, die noch keine haben (für semantische Suche).

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

Fortschritt der Embedding-Generierung prüfen.

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

Verifikation

Memories haben ein verified-Flag. Vom Agent gespeicherte Memories sind standardmäßig unbestätigt (source=agent); von Menschen gespeicherte Memories sind verifiziert (source=user).

POST /memory/verify

Einen Memory als verifiziert markieren (erfordert JWT, nicht Mind Key).

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

POST /memory/unverify

Einen Memory als unverifiziert markieren (erfordert JWT).

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

GET /memory/unverified

Memories auflisten, die auf menschliche Verifikation warten.

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

Statistik & Audit

GET /memory/stats

Aggregierte Statistiken für den aktuellen Mind.

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

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

GET /memory/audit

Audit-Log aller zustandsverändernden Operationen.

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

GET /memory/contradictions

Potenzielle Widersprüche in gespeicherten Memories erkennen.

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

GET /memory/expiring

Memories auflisten, deren Ablaufdatum näher rückt.

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

Health & Export

GET /memory/health

Schneller Health-Check für das Memory-System.

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

GET /memory/mind-export

Vollständiger JSON-Export aller Memories (für Backups).

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

POST /memory/compact

Ähnliche Memories komprimieren (Auto-Summary).

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

Nächste Schritte