# SYNAPSE-DOKUMENTATION — Fullständig referens
# Genererad: 2026-07-18T04:12:27.706Z
# Totalt antal artiklar: 47
Detta dokument innehåller den fullständiga Synapse API-dokumentationen.
Base URL: https://synapse.schaefer.zone
Language: sv
========================================================================
## KATEGORI: KOM IGÅNG
Allt du behöver för att komma igång med Synapse.
────────────────────────────────────────────────────────────
# Autentisering & Mind Keys
SUMMARY: Hur Synapse-autentisering fungerar: Mind Keys för agenter, JWT:er för människor, ?key= för URL-endast-verktyg.
KEY CONTEXT:
Two auth methods: Mind Key (token-scoped, never expires) and JWT (user-scoped, 7-day expiry).
Mind Key: Authorization: Bearer mk_xxx OR ?key=mk_xxx (60 req/min limit on query)
JWT: Authorization: Bearer eyJ... (no rate limit, used for /register, /login, /minds, /sharing)
Mind Key is shown only once at creation. Store it permanently.
Each mind has exactly one Mind Key. Multiple minds = multiple keys.
Autentisering & Mind Keys
Synapse använder två autentiseringsmetoder, var och en optimerad för olika
användningsområden. Att förstå skillnaden är väsentligt för att bygga pålitliga
integrationer.
Två autentiseringsmetoder
| Metod | Användningsområde | Hastighetsgräns | Utgång |
|--------|----------|------------|--------|
| Mind Key | LLM-agenter, automatiserade verktyg | Ingen (header) / 60 min (query) | Aldrig |
| JWT | Mänskligt gränssnitt, kontoåtgärder | Ingen | 7 dagar |
Mind Key (för agenter)
En Mind Key är en klientomfattande API-token. Den autentiserar en enskild minds
data (minnen, uppgifter, chatt, skript etc.). Använd den för:
- LLM-agenter som anropar API:et
- Bakgrundsautomationsskript
- MCP-serverkonfiguration
- Alla långlivade integrationer
Header-autentisering (rekommenderas)
[CODE BLOCK]
Queryparameter (för URL-endast-verktyg)
[CODE BLOCK]
> [!WARNING]
> Queryparametern är begränsad till 60 begäranden per minut.
> Bearer-headern har ingen hastighetsgräns. Använd headern när er klient
> stöder egna headers.
Skapa en Mind Key
[CODE BLOCK]
Svaret inkluderar — spara den omedelbart, den visas endast en gång.
Lista era minds
[CODE BLOCK]
Ta bort en mind (oåterkalleligt!)
[CODE BLOCK]
JWT (för människor)
JWT:er autentiserar användarkontot, inte en specifik mind. Använd dem för:
- Kontoregistrering och inloggning
- Skapa / lista / ta bort minds
- Dela minds med andra användare
- Hantering av Web Push-prenumerationer
Registrera
[CODE BLOCK]
Returnerar:
Logga in
[CODE BLOCK]
Returnerar:
JWT-utgång
JWT:er löper ut efter 7 dagar. När en JWT löper ut, anropa igen för
att få en ny. Mind Key löper aldrig ut, så befintliga agentintegrationer
fortsätter fungera.
Säkerhetsbästa praxis
> [!CRITICAL]
> - Lägg aldrig Mind Keys i git. Använd miljövariabler.
> - Logga aldrig Mind Keys. Maskera dem i loggar ().
> - Rotera nycklar om ni misstänker läcka (ta bort mind, skapa en ny).
> - Använd en mind per projekt för att begränsa skadeomfånget om en nyckel läcker.
Mönster med miljövariabel
[CODE BLOCK]
[CODE BLOCK]
MCP-serverkonfiguration
[CODE BLOCK]
Flera-mind-mönster
Varje användare kan ha flera minds. Vanliga mönster:
| Mind-namn | Syfte |
|-----------|---------|
| | Jobbrelaterade minnen |
| | Personliga inställningar, familj |
| | Specifik projektkontext |
| | Inlärningsframsteg |
| | Allmän reserv |
Använd olika Mind Keys för olika LLM-sessioner för att hålla kontexter isolerade.
Hastighetsgränser
| Autentiseringsmetod | Gräns | Omfattning |
|-------------|-------|-------|
| Mind Key (header) | Ingen | Per-mind |
| Mind Key (?key=) | 60/min | Per-IP |
| JWT (header) | Ingen | Per-användare |
| Publika endpoints | Ingen | Global |
Headers för hastighetsgräns (, ,
) inkluderas i svar när tillämpligt.
Nästa steg
- Mind Key vs JWT — när man ska använda vilken
- Memory API — vad ni kan göra med en Mind Key
- User API — kontohantering med JWT:er
────────────────────────────────────────────────────────────
# Mind Key vs JWT — vad när?
SUMMARY: Beslutsguide: Mind Key för agentdataåtkomst, JWT för kontohantering.
KEY CONTEXT:
Mind Key: tenant-scoped, never expires, for memory/chat/tasks/scripts/computers/webhooks.
JWT: user-scoped, 7-day expiry, for /register, /login, /minds (CRUD), /sharing, /push.
Simple rule: if it touches a single mind's data → Mind Key. If it manages the account → JWT.
Exception: /computers/me/* uses Computer Token (not Mind Key or JWT).
Mind Key vs JWT — vad när?
Synapse har två autentiseringstoken. Att välja fel leder till 401-fel. Den här
guiden ger er ett tydligt beslutsramverk.
Snabb beslutstabell
| Ni vill... | Använd |
|----------------|-----|
| Lagra / återkalla minnen | Mind Key |
| Skicka / polla chattmeddelanden | Mind Key |
| Hantera uppgifter | Mind Key |
| Lagra skript | Mind Key |
| Registrera webhooks | Mind Key |
| Styr datorer | Mind Key (användarsida) / Computer Token (agentsida) |
| Registrera användarkonto | Inget (publik) |
| Logga in | Inget (publik) |
| Skapa / lista / ta bort minds | JWT |
| Dela en mind med en annan användare | JWT |
| Prenumerera på web push-aviseringar | JWT |
| Visa granskningslogg | Mind Key |
Den enkla regeln
> [!TIP]
> Om det rör en enskild minds data → Mind Key.
> Om det hanterar kontot eller mind-metadata → JWT.
Mind Key — dataåtkomsttoken
En Mind Key ger åtkomst till en minds data. Det är en långlivad token som
aldrig löper ut (tills minden tas bort). Perfekt för:
- LLM-agenter som persistens minnen mellan sessioner
- Bakgrunds-cron-jobb
- MCP-serverkonfiguration
- Webhook-integrationer
- Mobilappar som läser minne
Vad Mind Key kan göra
- — läsa alla minnen i denna mind
- — lagra/uppdatera minnen
- — läsa chattmeddelanden
- — skicka chattmeddelanden
- — lista uppgifter
- — skapa uppgifter
- — lagra skript
- — registrera webhooks
- — köa datorkommandon
Vad Mind Key INTE kan göra
- Skapa / lista / ta bort minds (behöver JWT)
- Dela mind med annan användare (behöver JWT)
- Visa användarkontoinfo (behöver JWT)
- Prenumerera på web push (behöver JWT)
JWT — token för kontohantering
En JWT autentiserar användarkontot. Den löper ut efter 7 dagar och används
för kontooperationer som spänner över flera minds eller involverar andra
användare.
Vad JWT kan göra
- — skapa en ny mind (returnerar en ny Mind Key)
- — lista alla minds för denna användare
- — ta bort en mind
- — dela en mind med en annan användare
- — prenumerera på web push-aviseringar
- — lista mind-delningar
Vad JWT INTE kan göra
- Läsa / skriva minnen (behöver Mind Key)
- Skicka chattmeddelanden (behöver Mind Key)
- Hantera uppgifter (behöver Mind Key)
- Registrera webhooks (behöver Mind Key)
Specialfall: Computer Token
-endpoints (agentriktade, för screen-remote-agent) använder en
tredje tokentyp: Computer Token. Denna token returneras av
när en installationskod löses in och är specifik för
en registrerad dator.
| Endpoint | Autentisering |
|----------|------|
| | Computer Token |
| | Computer Token |
| | Mind Key eller JWT |
| | Mind Key eller JWT |
Vanliga mönster
Mönster 1: Enskild LLM-agent
1. Registrera en gång → få JWT
2. Skapa en mind → få Mind Key
3. LLM använder Mind Key för allt
Mönster 2: Flerprojektsagent
1. Registrera en gång → få JWT
2. Skapa flera minds (work, personal, project-x) → få flera Mind Keys
3. LLM laddar olika Mind Key baserat på kontext
Mönster 3: Team-delning
1. Användare A skapar en mind → får Mind Key A
2. Användare A delar med Användare B via JWT ()
3. Användare B kan nu komma åt via sin egen JWT
4. För LLM-åtkomst måste Användare B skapa sin egen Mind Key (eller använda A:s)
Mönster 4: MCP-server
MCP-servrar använder alltid Mind Key (satt via -miljövariabel).
En MCP-serverinstans = en mind. För multi-mind-åtkomst, kör flera MCP-instanser
eller implementera klientbaserad mind-växling.
Fusklapp för tokenformat
| Token | Format | Exempel |
|-------|--------|---------|
| Mind Key | + 36 tecken | |
| JWT | + base64 | |
| Computer Token | + 36 tecken | |
Nästa steg
- Autentisering — fullständig auth-guide
- User & Minds API — JWT-skyddade endpoints
- Memory API — Mind Key-skyddade endpoints
────────────────────────────────────────────────────────────
# Snabbstart för LLM-agenter
SUMMARY: I 3 API-anrop: återkalla alla minnen, lagra ett nytt, sök. Det väsentliga LLM-arbetsflödet.
KEY CONTEXT:
Base URL: https://synapse.schaefer.zone
Auth: Authorization: Bearer YOUR_MIND_KEY (header) OR ?key=YOUR_MIND_KEY (query)
ALWAYS call /memory/recall at the start of every session.
Wichtigste Befehle: GET /memory/recall, POST /memory, GET /memory/search?q=...
Categories: identity, preference, fact, project, skill, mistake, context, note, credentials
Priorities: low, normal, high, critical
FTS5 search: multiple words = AND, "phrases" in quotes, prefix* for prefix search
Snabbstart för LLM-agenter
Ni förlorar allt minne mellan sessioner. Synapse er er externa hjärna. Den här
guiden visar de tre väsentliga API-anropen som varje LLM-agent måste känna till.
> [!CRITICAL]
> Anropa i BÖRJAN av VARJE session.
> Utan detta anrop har ni inget minne av vem användaren är, vad ni har lovat
> eller vad ni arbetade med senast.
Steg 1: Återkalla alla minnen (ALLTID FÖRST)
[CODE BLOCK]
Returnerar en strukturerad oformaterad textsammanfattning av alla lagrade minnen.
Tolka denna för att återuppbygga er mentala modell av användaren, deras projekt
och tidigare interaktioner.
Exempel på svar:
[CODE BLOCK]
Steg 2: Lagra ett nytt minne
När ni lär er något värt att komma ihåg:
[CODE BLOCK]
Kategorier: , , , , , , , ,
Prioriteringar: , , ,
> [!TIP]
> Inkludera alltid ett -fält — en kort identifierare för minnet. Detta låter
> er uppdatera samma minne senare genom att POSTa igen med samma nyckel.
Steg 3: Sök efter ett specifikt minne
[CODE BLOCK]
> [!TIP]
> FTS5-syntax: flera ord = AND-sökning. Fraser i citattecken: .
> Prefixsökning: . Boolesk: .
Öppna verktyg (inga auth-headers)
Om ert verktyg bara kan öppna URL:er (inga egna headers), använd -parametern:
[CODE BLOCK]
> [!WARNING]
> är begränsad till 60 begäranden/minut. Bearer-headern har ingen
> hastighetsgräns. Använd Bearer-headern när det är möjligt.
Komplett sessionsarbetsflöde
1. Sessionsstart: — ladda alla minnen
2. Under arbete: — hitta specifika fakta
3. Vid ny info: — lagra den (med kategori, nyckel, taggar, prioritet)
4. Periodvis: — kontrollera efter mänskliga meddelanden
5. Sessionsavslut: Lagra alla slutgiltiga lärdomar via
Vanliga mönster
Uppdatera ett befintligt minne
POST med samma och — det befintliga minnet uppdateras,
inte dupliceras.
Lagra en projektstatus
[CODE BLOCK]
Registrera ett misstag (så att ni inte upprepar det)
[CODE BLOCK]
Kontrollera efter mänskliga meddelanden
[CODE BLOCK]
Returnerar olästa meddelanden från människan. Svara med:
[CODE BLOCK]
Nästa steg
- Autentisering — Mind Key vs JWT
- Memory API-referens — alla 22 minnes-endpoints
- Chat API — asynkron kommunikation med människor
- LLM-kokbok — praktiska mönster
────────────────────────────────────────────────────────────
# Snabbstart (människa)
SUMMARY: Registrera ett konto, skapa din första mind, lagra ett minne — allt på 5 minuter.
Snabbstart (människa)
Den här guiden går igenom hur ni skaffar ett Synapse-konto, er första Mind Key
och lagrar ert första minne. Total tid: 5 minuter.
Steg 1: Registrera ett konto
Öppna Synapse API och skapa ett konto:
[CODE BLOCK]
Svar:
[CODE BLOCK]
> [!TIP]
> Spara JWT:en på en säker plats — ni behöver den för att skapa minds. JWT:en
> löper ut efter 7 dagar; logga in igen med samma endpoint för att förnya.
Steg 2: Skapa er första mind
En "mind" är en isolerad minnesomfattning. De flesta användare börjar med en
mind, men ni kan ha flera (t.ex. "work", "personal", "project-x"). Varje mind
har sin egen unika Mind Key.
[CODE BLOCK]
Svar:
[CODE BLOCK]
> [!CRITICAL]
> Spara omedelbart. Den visas endast en gång och kan inte
> hämtas senare. Om ni tappar den måste ni skapa en ny mind.
Steg 3: Lagra ert första minne
Använd nu Mind Key för att lagra ett minne:
[CODE BLOCK]
Svar:
[CODE BLOCK]
Steg 4: Återkalla alla minnen
För att hämta allt ni har lagrat:
[CODE BLOCK]
Svar (oformaterad text, optimerad för LLM-konsumtion):
[CODE BLOCK]
Steg 5: Sök bland minnen
Hitta specifika minnen via nyckelord:
[CODE BLOCK]
Steg 6: Anslut er LLM
Det enklaste sättet att ge er LLM åtkomst till Synapse är via MCP:
- Claude Desktop-konfiguration — 2 minuters konfiguration
- Claude Code-konfiguration — terminalintegration
- Cursor-konfiguration — IDE-integration
Efter konfiguration kommer er LLM automatiskt att anropa i början
av varje session och persistens nya fakta via .
Minneskategorier
Synapse stöder 8 kategorier — välj den mest specifika:
| Kategori | Användningsområde |
|----------|----------|
| | Användarnamn, roll, kontaktinfo |
| | Tycker om, ogillar, arbetsstil |
| | Verifierbara fakta (projektdetaljer, datum) |
| | Projektstatus, milstolpar, uppgifter |
| | Saker användaren är bra på |
| | Tidigare fel — undvik att upprepa |
| | Sessionsrelevant kontext |
| | Diverse anteckningar |
Prioriteringsnivåer
- — bra att veta
- — standard
- — viktig
- — får aldrig glömmas (användaridentitet, juridisk info)
Nästa steg
- Fördjupning i autentisering
- Mind Key vs JWT
- Memory API-referens
- MCP-integration
────────────────────────────────────────────────────────────
# Vad är Synapse?
SUMMARY: Synapse är ett beständigt minnes-API för LLM-agenter — er AI glömmer aldrig mellan sessioner.
KEY CONTEXT:
Synapse is an HTTP API that gives LLM agents persistent memory across sessions.
Base URL: https://synapse.schaefer.zone
Auth: Authorization: Bearer YOUR_MIND_KEY (header) OR ?key=YOUR_MIND_KEY (query, rate-limited 60/min)
Most important endpoints: GET /memory/recall (start of every session), POST /memory (store new facts), GET /memory/search?q=...
Mind Key = tenant-scoped API key. Each user can have multiple minds (projects/contexts).
MCP server available: npx -y synapse-mcp-api (79 tools for Claude Desktop, Cursor, etc.)
Vad är Synapse?
Synapse är ett beständigt minnes-API för LLM-agenter. Det löser det
fundamentala problemet med varje chattbaserad LLM: mellan sessioner glömmer
agenten allt. Synapse ger er AI en permanent, sökbar hjärna som överlever över
konversationer, över dagar och över olika LLM-leverantörer.
> [!CRITICAL]
> Om ni är en LLM-agent som läser detta: anropa i början
> av varje session. Utan detta anrop har ni inget minne av tidigare
> interaktioner, ingen kunskap om vem användaren är och ingen kontext om
> pågående projekt.
Problemet Synapse löser
Varje modern LLM (Claude, GPT, Gemini, Llama) har samma arkitektoniska
begränsning: konversationens kontextfönster är ändligt, och när sessionen slutar
är allt tillstånd förlorat. Detta innebär att er AI-assistent:
- Glömmer ert namn, era inställningar och pågående projekt mellan chattar
- Inte kan lära sig av tidigare misstag över sessioner
- Saknar kontinuitet för långvarigt arbete
- Ställer samma förtydligande frågor varje gång
Synapse fixar detta genom att tillhandahålla ett enkelt HTTP-API där LLM:en kan
lagra och hämta strukturerade minnen. Minnena persistens på servern, indexerade
och sökbara, så varje framtida session kan återkalla dem.
Nyckelfunktioner
- Beständig minneslagring — fakta, inställningar, projekt, misstag, färdigheter
- Fulltextssökning (FTS5) — hitta vilket minne som helst via nyckelord på millisekunder
- Semantisk sökning — inbäddningsbaserad likhetssökning för begreppsliga frågor
- Multitenant — varje användare har isolerade "minds" (en användare, många projekt)
- Asynkron chatt — människor kan lämna meddelanden till agenten medan den arbetar
- Uppgifter & schemaläggning — inbyggd uppgiftshanterare och cron-schemaläggare
- MCP-integration — 79 verktyg exponerade som Model Context Protocol för Claude, Cursor, Continue
- Webbläsar- & datorstyrning — fjärrstyrningsverktyg för automation
- Webhooks — få HTTP-återanrop vid minnes-/chatt-/uppgiftsändringar
Hur det fungerar
[CODE BLOCK]
1. LLM:en anropar vid sessionsstart
2. Synapse returnerar en strukturerad textsammanfattning av alla lagrade minnen
3. LLM:en arbetar och anropar periodvis för att lagra nya fakta
4. När användaren ställer en fråga kan LLM:en anropa
5. Vid sessionsavslut persistens viktig ny kontext för nästa session
Vem är det för?
- LLM-agentutvecklare som behöver beständigt tillstånd
- Avancerade användare som kör lokala LLM:er (Ollama, LM Studio) med egna agenter
- Team som bygger AI-assistenter som behöver delat minne
- Automationsingenjörer som kedjar LLM-anrop över sessioner
Snabb jämförelse
| Funktion | ChatGPT Memory | Synapse |
|---------|---------------|---------|
| Lagringsplats | OpenAI-servrar | Din server |
| API-åtkomst | Nej (sluten) | Ja (REST + MCP) |
| Multitenant | Nej | Ja (minds) |
| Anpassade kategorier | Nej | Ja (8 kategorier) |
| Sökning | Begränsad | FTS5 + semantisk |
| Självhostbart | Nej | Ja (Docker) |
Nästa steg
- Snabbstart för människor — skaffa en Mind Key på 5 minuter
- Snabbstart för LLM:er — första API-anrop
- Autentisering — Mind Keys vs JWT:er
- Arkitekturöversikt — hur Synapse är byggt
## KATEGORI: API-REFERENS
Komplett referens för varje API-slutpunkt.
────────────────────────────────────────────────────────────
# Browser Proxy
SUMMARY: Tjänst för webbläsarautomatisering — separat Docker-container på port 13000 för headless webbläsarkontroll.
KEY CONTEXT:
Browser Proxy is a SEPARATE Docker service (port 13000), NOT a Synapse endpoint.
Synapse endpoints do NOT include /browser/* paths.
For browser automation, use the MCP browser_new tool OR connect to the browser-proxy service directly.
Synapse MCP exposes browser tools (browser_new, browser_navigate, browser_click, etc.)
Browser Proxy
Browser Proxy är en separat Docker-tjänst som tillhandahåller headless
webbläsarautomatisering via Playwright. Den är INTE en del av Synapse API
direkt — Synapse-endpoints inkluderar inte -sökvägar.
Arkitektur
[CODE BLOCK]
Åtkomstmetoder
Metod 1: Via Synapse MCP Server (rekommenderas)
Synapses MCP-server exponerar webbläsarverktyg som MCP-verktyg. Använd detta
för LLM-driven webbläsarautomatisering:
[CODE BLOCK]
Tillgängliga MCP-webbläsarverktyg:
- — öppna en ny webbläsarflik
- — navigera till en URL
- — klicka på ett element
- — skriv in text i ett fält
- — ta en skärmdump
- — stäng fliken
- (och fler — se MCP-integration)
Metod 2: Direkt åtkomst till Browser Proxy
För icke-MCP-integrationer, anslut direkt till browser-proxy-tjänsten:
[CODE BLOCK]
Vanliga användningsområden
Webb-skrapning
[CODE BLOCK]
Formulärautomatisering
[CODE BLOCK]
Skärmdumpar
[CODE BLOCK]
Relaterade tjänster
| Tjänst | Port | Syfte |
|---------|------|---------|
| Synapse API | 12800 | Minne, chatt, uppgifter |
| Synapse MCP | 13100 | MCP-server (79 verktyg) |
| Browser Proxy | 13000 | Headless webbläsarautomatisering |
| SSH Proxy | 12900 | SSH-åtkomst till fjärrmaskiner |
Nästa steg
- MCP-integration — hur man använder webbläsarverktyg via MCP
- Computer Control API — för GUI-automatisering på registrerade maskiner
────────────────────────────────────────────────────────────
# Chat API
SUMMARY: Asynkron chatt mellan människor och LLM-agenter — polla, svara, historik, antal olästa, filuppladdningar.
KEY CONTEXT:
Auth: Mind Key (agent side, ?role=agent) or JWT (human side, ?role=human)
Poll: GET /chat/poll (returns unread messages, marks them as read)
Reply: POST /chat/reply { content }
History: GET /chat/history?limit=50
Unread count: GET /chat/unread?role=agent (or ?role=human)
Upload: POST /chat/upload (multipart, file attachment)
Pattern: poll between tool calls, reply when human asks questions
Chat API
Chat API möjliggör asynkron meddelandehantering mellan människor och LLM-agenter.
Till skillnad från synkron chatt (ChatGPT-stil) kan människan lämna meddelanden
medan agenten arbetar — agenten pollar mellan verktygsanrop.
Hur det fungerar
[CODE BLOCK]
1. Människan skickar ett meddelande via webbgränssnittet (använder JWT)
2. Meddelandet lagras och markeras som oläst
3. Agenten pollar mellan verktygsanrop
4. Pollningen returnerar alla olästa meddelanden och markerar dem som lästa
5. Agenten bearbetar meddelandet och svarar eventuellt via
Endpoints
GET /chat/poll
Polla efter nya meddelanden från människan. Returnerar olästa meddelanden och
markerar dem som lästa. Använd detta mellan verktygsanrop.
[CODE BLOCK]
Svar:
[CODE BLOCK]
POST /chat/reply
Skicka ett meddelande som agenten.
[CODE BLOCK]
POST /chat/send
Skicka ett meddelande som människa (kräver JWT, inte Mind Key).
[CODE BLOCK]
GET /chat/history
Hämta den senaste chathistoriken (båda roller).
[CODE BLOCK]
GET /chat/unread
Hämta antal olästa meddelanden.
[CODE BLOCK]
GET /chat/status
Hämta chattsessionens status (tidsstämplar för senaste meddelande, antal olästa).
[CODE BLOCK]
POST /chat/upload
Ladda upp en filbilaga för ett specifikt meddelande (multipart-formulär).
[CODE BLOCK]
GET /chat/files/:messageid
Lista filbilagor för ett meddelande.
[CODE BLOCK]
GET /chat/file/:fileid
Ladda ner en filbilaga.
[CODE BLOCK]
Pollningsmönster
> [!TIP]
> Polla var 30–60 sekund mellan verktygsanrop. Polla inte oftare —
> det slösar API-kvot och ger ingen fördel.
[CODE BLOCK]
Nästa steg
- Tasks API
- Chat Polling Pattern
────────────────────────────────────────────────────────────
# Computer Control API
SUMMARY: Fjärrstyrning av registrerade datorer — köa kommandon, ta skärmdumpar, kör skript på fjärrmaskiner.
KEY CONTEXT:
Two sides: user-facing (Mind Key/JWT) and agent-facing (Computer Token)
Register agent: POST /computers/register { install_code } → returns computer_token
List: GET /computers/list (Mind Key or JWT)
Queue command: POST /computers/:id/commands { type, payload }
Command types: screenshot, click, move, type, key, scroll, drag
Agent poll: GET /computers/me/poll?wait=5 (Computer Token)
Agent result: POST /computers/me/commands/:cid/result (Computer Token)
One-shot screenshot: GET /computers/:id/screenshot (waits 30s for result)
Pattern: register agent on remote machine → user queues commands → agent polls and executes
Computer Control API
Computer Control API låter er fjärrstyra registrerade datorer. En liten agent
() körs på målmaskinen, pollar efter kommandon, kör dem
och skickar tillbaka resultat. Detta möjliggör LLM-driven GUI-automatisering.
Arkitektur
[CODE BLOCK]
Användarriktade endpoints (Mind Key eller JWT)
GET /computers/list
Lista alla registrerade datorer.
[CODE BLOCK]
GET /computers/:id
Hämta detaljer för en enskild dator.
[CODE BLOCK]
POST /computers/install-code
Generera en installationskod för att registrera en ny dator.
[CODE BLOCK]
Svar:
POST /computers/:id/commands
Köa ett kommando för fjärragenten att utföra.
[CODE BLOCK]
Svar:
GET /computers/:id/command (via query)
Köa ett kommando via GET (för enkla fall).
[CODE BLOCK]
GET /computers/:id/commands
Lista senaste kommandon för en dator.
[CODE BLOCK]
GET /computers/:id/commands/:cid
Hämta status + resultat för ett specifikt kommando.
[CODE BLOCK]
GET /computers/:id/screenshot
One-shot: köa ett skärmdumpskommando och vänta upp till 30 s på resultatet.
[CODE BLOCK]
POST /computers/:id/disable
Inaktivera en dator (återkallar dess token, behåller posten för granskning).
[CODE BLOCK]
DELETE /computers/:id
Ta bort en dator permanent.
[CODE BLOCK]
Agentriktade endpoints (Computer Token)
Dessa endpoints används av som körs på målmaskinen.
De använder en Computer Token (returnerad av ), inte en
Mind Key.
POST /computers/register
Lös in en installationskod och få en Computer Token.
[CODE BLOCK]
Svar:
> [!CRITICAL]
> Spara — den visas endast en gång och krävs för alla
> agentriktade endpoints.
GET /computers/me/poll
Lång-pollning efter nya kommandon. Agenten anropar denna i en loop.
[CODE BLOCK]
Returnerar omedelbart om kommandon väntar, eller efter sekunder om inte.
POST /computers/me/commands/:cid/result
Skicka resultatet av ett utfört kommando.
[CODE BLOCK]
Kommandotyper
| Typ | Payload | Beskrivning |
|------|---------|-------------|
| | | Fånga skärm som PNG (base64) |
| | | Klicka vid koordinater |
| | | Flytta musen till koordinater |
| | | Skriv in text vid markören |
| | | Tryck tangentkombination |
| | | Rulla hjulet |
| | | Dra och släpp |
Vanligt mönster: LLM-driven GUI-automatisering
[CODE BLOCK]
Nästa steg
- Browser Proxy — separat tjänst för webbläsarautomatisering
- Self-Hosted Agents Guide
────────────────────────────────────────────────────────────
# Cron & Scheduler
SUMMARY: Schemalägga återkommande API-anrop — cron-jobb som utlöses enligt ett schema, perfekt för periodisk synkronisering och påminnelser.
KEY CONTEXT:
Auth: Mind Key
Create: POST /cron { schedule, endpoint, method?, body?, headers?, enabled? }
List: GET /cron
Delete: DELETE /cron/:id
Toggle: PUT /cron/:id/toggle
Schedule: 5-field cron (minute hour day month day-of-week) OR integer interval (seconds)
Endpoint: must be http(s) URL, same Synapse instance OR public HTTPS (no private IPs)
Pattern: schedule /memory/recall every hour, /chat/poll every 5 min, etc.
Cron & Scheduler
Cron API låter er schemalägga återkommande HTTP-anrop till Synapse-endpoints
(eller externa HTTPS-endpoints). Perfekt för periodisk synkronisering,
påminnelser och underhållsuppgifter.
Endpoints
POST /cron
Skapa en schemalagd uppgift.
[CODE BLOCK]
Svar:
[CODE BLOCK]
GET /cron
Lista alla schemalagda uppgifter.
[CODE BLOCK]
DELETE /cron/:id
Ta bort en schemalagd uppgift.
[CODE BLOCK]
PUT /cron/:id/toggle
Aktivera eller inaktivera en uppgift utan att ta bort den.
[CODE BLOCK]
Schemasyntax
Standard cron (5 fält)
[CODE BLOCK]
Exempel:
| Schema | Betydelse |
|----------|---------|
| | Varje timme |
| | Var 15:e minut |
| | Veckodagar kl 09 |
| | Varje söndag vid midnatt |
| | Första dagen varje månad vid midnatt |
Heltalsintervall (sekunder)
För enkla intervall, ange ett heltal:
[CODE BLOCK]
Endpoint-restriktioner
> [!WARNING]
> Endpoints måste vara - eller -URL:er som pekar på:
> - Samma Synapse-instans (t.ex. )
> - Publika HTTPS-URL:er (inga privata IP-adresser, ingen localhost, inga metadata-IP:er)
Detta förhindrar SSRF-attacker där en komprometterad mind skulle kunna
schemalägga anrop till interna tjänster.
Vanliga mönster
Tertialvis minnesåterkallning (för LLM-agenter)
[CODE BLOCK]
Daglig säkerhetskopiering
[CODE BLOCK]
Periodisk chattpollning (var 5:e minut)
[CODE BLOCK]
Veckorapport-utlösare
[CODE BLOCK]
Nästa steg
- Variables API
- Webhooks API
────────────────────────────────────────────────────────────
# Fel & felhantering
SUMMARY: HTTP-statuskoder, format för felsvar och hur man återhämtar sig från vanliga fel.
KEY CONTEXT:
Error format: { statusCode, error, message, docs? }
Common errors: 401 (auth), 404 (wrong path), 429 (rate limit), 500 (server)
401 → check Mind Key/JWT, see /docs/getting-started/authentication
404 → wrong path, GET /endpoints for valid list, do NOT guess paths
429 → rate limited (?key= is 60/min), use Bearer header instead
500 → server error, retry with backoff, check /health
docs field in error response links to relevant documentation.
Fel & felhantering
Synapse använder standardiserade HTTP-statuskoder med ett konsekvent felsvarsformat.
Den här sidan förklarar hur man tolkar och återhämtar sig från fel.
Format för felsvar
Alla fel returnerar JSON med denna struktur:
[CODE BLOCK]
| Fält | Beskrivning |
|-------|-------------|
| | HTTP-statuskod |
| | HTTP-statusnamn |
| | Läsbar felbeskrivning för människor |
| | URL till relevant dokumentation (när tillämpligt) |
HTTP-statuskoder
200 OK
Lyckades. Begäran behandlades korrekt.
201 Created
Lyckades. En ny resurs skapades (t.ex. ).
204 No Content
Lyckades. Ingen body returnerades (t.ex. ).
400 Bad Request
Begäran var felaktig. Vanliga orsaker:
- Saknade obligatoriska JSON-fält
- Ogiltig JSON-syntax
- Ogiltigt enum-värde (t.ex. fel kategori)
[CODE BLOCK]
Lösning: Kontrollera begärans body mot API-dokumentationen. Se till att alla
obligatoriska fält finns med och har giltiga värden.
401 Unauthorized
Autentiseringen misslyckades. Vanliga orsaker:
- Saknad -header
- Ogiltig Mind Key eller JWT
- Användning av en Mind Key där JWT krävs (eller tvärtom)
[CODE BLOCK]
Lösning: Verifiera din token. Se Autentisering.
403 Forbidden
Ni är autentiserade men får inte utföra denna åtgärd. Vanliga orsaker:
- Försöker ta bort en annan användares mind
- Försöker verifiera ett minne med en Mind Key (kräver JWT)
- Mind är inaktiverad
Lösning: Kontrollera om ni använder rätt tokentyp för denna endpoint.
404 Not Found
Den begärda sökvägen eller resursen finns inte.
> [!CRITICAL]
> Gissa INTE endpointsökvägar. Endast de sökvägar som listas i
> existerar. Om ni får 404 använde ni en felaktig sökväg.
[CODE BLOCK]
Lösning: Anropa för att se listan över giltiga endpoints.
Jämför er URL mot listan tecken för tecken.
409 Conflict
Begäran är i konflikt med befintligt tillstånd. Vanliga orsaker:
- Försöker registrera med en e-postadress som redan finns
- Duplicerad webhook-URL
Lösning: Använd ett annat värde, eller använd för att uppdatera
befintlig resurs.
429 Too Many Requests
Ni nådde en hastighetsgräns. Gäller endast -queryparameter-autentisering
(60/min).
[CODE BLOCK]
Svarshuvuden:
[CODE BLOCK]
Lösning: Byt till -header (ingen hastighetsgräns),
eller vänta sekunder.
500 Internal Server Error
Serverfel. Detta bör inte inträffa — om det gör det är det en bugg.
Lösning:
1. Försök igen med exponentiell backoff (1 s, 2 s, 4 s, 8 s)
2. Kontrollera för att se om servern är uppe
3. Rapportera felet om det kvarstår
503 Service Unavailable
Servern är tillfälligt nere (t.ex. under driftsättning, databasmigrering).
Lösning: Vänta och försök igen. Kontrollera .
Återställningsmönster
Försök igen med exponentiell backoff
[CODE BLOCK]
Hantering av autentiseringsfel
[CODE BLOCK]
Vanliga felscenarier
"Mind Key fehlt oder ungültig"
- Ni glömde -headern
- Ni använde men nyckeln är fel
- Ni använder en JWT där en Mind Key krävs
"Route not found"
- Ni gissade en sökväg som inte finns
- Ni använde ett verb fel (t.ex. vs )
- Kontrollera för giltiga sökvägar
"Rate limit exceeded"
- Ni använder och överskred 60 req/min
- Byt till -header
Nästa steg
- Autentisering
- API-översikt
- Hastighetsgränser
────────────────────────────────────────────────────────────
# Memory API
SUMMARY: Komplett referens för de 22 minnes-endpoints: lagra, återkalla, söka, semantisk sökning, synkronisering, granskning och mer.
KEY CONTEXT:
Auth: Mind Key (Authorization: Bearer mk_xxx OR ?key=mk_xxx)
ALWAYS call GET /memory/recall at session start.
POST /memory with same category+key updates the existing memory.
Categories: identity, preference, fact, project, skill, mistake, context, note, credentials
Priorities: low, normal, high, critical
Search: GET /memory/search?q=... (FTS5 syntax: AND, OR, "phrases", prefix*)
Semantic: GET /memory/semantic-search?q=... (slower, conceptual)
Sync: GET /memory/diff?since=TIMESTAMP (incremental sync)
Export: GET /memory/mind-export (full JSON dump)
Memory API
Memory API är hjärtat i Synapse. Det tillhandahåller 22 endpoints för lagring,
hämtning, sökning och hantering av strukturerade minnen. Alla endpoints kräver
en Mind Key för autentisering.
> [!CRITICAL]
> Anropa alltid i början av varje session. Detta är
> det enda sättet att återuppbygga kontext från tidigare sessioner.
Kategorier
Minnen är organiserade i 8 kategorier:
| Kategori | Användningsområde |
|----------|----------|
| | Användarnamn, roll, kontaktinfo, inställningar om sig själv |
| | Tycker om, ogillar, arbetsstil, kommunikationsinställningar |
| | Verifierbara fakta (projektdetaljer, datum, URL:er) |
| | Projektstatus, milstolpar, arkitektur |
| | Saker användaren är bra på |
| | Tidigare fel — undvik att upprepa |
| | Sessionsrelevant kontext |
| | Diverse anteckningar |
Prioriteringar
- — bra att veta
- — standard
- — viktig
- — får aldrig glömmas (användaridentitet, juridisk info)
Centrala endpoints
GET /memory/recall
Returnerar ALLA minnen som LLM-optimerad oformaterad text. Anropa detta vid
varje sessionsstart.
[CODE BLOCK]
Svar (text/plain):
[CODE BLOCK]
POST /memory
Lagra ett nytt minne eller uppdatera ett befintligt (samma kategori + nyckel = uppdatering).
[CODE BLOCK]
Svar:
GET /memory
Lista minnen med valfria filter.
[CODE BLOCK]
PUT /memory/:id
Uppdatera ett specifikt minne via ID.
[CODE BLOCK]
DELETE /memory/:id
Ta bort ett enskilt minne.
[CODE BLOCK]
Sök-endpoints
GET /memory/search
Fulltextssökning med FTS5.
[CODE BLOCK]
FTS5-syntax:
- Flera ord = AND:
- Fras:
- Prefix:
- Boolesk:
- Uteslut:
GET /memory/semantic-search
Begreppsbaserad sökning med inbäddningar (langsammare än FTS5 men förstår betydelse).
[CODE BLOCK]
Returnerar minnen som är semantiskt lika frågan, även om inga nyckelord
matchar. Användbart för "hitta minnen om X" där X beskrivs på annat sätt.
GET /memory/by-tag
Lista minnen efter tagg.
[CODE BLOCK]
GET /memory/related/:id
Hitta minnen relaterade till ett specifikt minne (via gemensamma taggar).
[CODE BLOCK]
Synkronisering & Diff
GET /memory/diff
Inkrementell synk — returnerar minnen som ändrats sedan en tidsstämpel.
[CODE BLOCK]
Svar:
POST /memory/sync
Tillämpa en diff från en annan instans (för självvärd synk).
[CODE BLOCK]
Massåtgärder
POST /memory/bulk-delete
Ta bort flera minnen via ID.
[CODE BLOCK]
POST /memory/embed-batch
Generera inbäddningar för minnen som saknar dem (för semantisk sökning).
[CODE BLOCK]
GET /memory/embed-batch-status
Kontrollera förloppet för inbäddningsgenerering.
[CODE BLOCK]
Verifiering
Minnen har en -flagga. Agentlagrade minnen är som standard overifierade
(); människolagrade minnen är verifierade ().
POST /memory/verify
Markera ett minne som verifierat (kräver JWT, inte Mind Key).
[CODE BLOCK]
POST /memory/unverify
Markera ett minne som overifierat (kräver JWT).
[CODE BLOCK]
GET /memory/unverified
Lista minnen som väntar på mänsklig verifiering.
[CODE BLOCK]
Statistik & granskning
GET /memory/stats
Aggregerad statistik för den aktuella minden.
[CODE BLOCK]
Returnerar:
GET /memory/audit
Granskningslogg över alla tillståndsändrande åtgärder.
[CODE BLOCK]
GET /memory/contradictions
Upptäck potentiella motsägelser i lagrade minnen.
[CODE BLOCK]
GET /memory/expiring
Lista minnen med utgångsdatum som närmar sig.
[CODE BLOCK]
Hälsa & export
GET /memory/health
Snabb hälsokontroll för minnessystemet.
[CODE BLOCK]
GET /memory/mind-export
Full JSON-export av alla minnen (för säkerhetskopiering).
[CODE BLOCK]
POST /memory/compact
Komprimera liknande minnen (auto-sammanfattning).
[CODE BLOCK]
Nästa steg
- Snabbstart för LLM:er
- Minnesbästa praxis
- FTS5-sökning
- Semantisk sökning
────────────────────────────────────────────────────────────
# API-översikt & bas-URL
SUMMARY: Alla Synapse API-endpoints, bas-URL, autentiseringsmönster och svarsformat i korthet.
KEY CONTEXT:
Base URL: https://synapse.schaefer.zone
Auth: Authorization: Bearer YOUR_MIND_KEY (header, no rate limit)
OR ?key=YOUR_MIND_KEY (query, 60 req/min)
All responses are JSON except /memory/recall (text/plain) and /docs (HTML/text/json)
All 404 responses mean the path does not exist — do NOT guess paths.
GET /endpoints returns machine-readable list of all valid endpoints.
API-översikt & bas-URL
Synapse API är ett RESTful HTTP-API. Alla endpoints returnerar JSON (utom där
angivet). Den här sidan täcker det ni behöver veta innan ni dyker in i specifika
endpoints.
Bas-URL
[CODE BLOCK]
Alla sökvägar i denna dokumentation är relativa till denna bas-URL. För
självvärdda instanser, ersätt med er egen URL.
Autentisering
Två metoder, båda skickade via -header:
[CODE BLOCK]
Eller via queryparameter (hastighetsbegränsad till 60/min):
[CODE BLOCK]
Se Autentisering för detaljer.
Endpoint-grupper
| Grupp | Autentisering | Beskrivning |
|-------|------|-------------|
| Publik | Ingen | Landningssida, hälsa, OpenAPI, dokumentation |
| Memory | Mind Key | CRUD, sökning, synk, inbäddningar |
| Chat | Mind Key / JWT | Asynkrona meddelanden mellan människa och agent |
| Tasks | Mind Key | Uppgiftshantering |
| Scripts | Mind Key / JWT | Beständig skriptlagring |
| Scheduler | Mind Key | Cron-jobb + variabler |
| Webhooks | Mind Key | HTTP-återanrop vid händelser |
| Computers | Mind Key / JWT | Fjärrstyrning av datorer |
| User/Minds | JWT | Konto + mind-hantering |
| Sharing | JWT | Mind-delning mellan användare |
| Push | JWT | Web Push-prenumerationer |
| Tools | Ingen | Tid, kalkyl, slump (publika verktyg) |
Svarsformat
- JSON (standard):
- Oformaterad text: returnerar LLM-optimerad text
- HTML: , , , ,
Standard kuvert för svar
Lyckade svar returnerar datan direkt:
[CODE BLOCK]
Felsvar använder detta format:
[CODE BLOCK]
> [!NOTE]
> Fältet länkar till relevant dokumentation för vanliga fel.
HTTP-statuskoder
| Kod | Betydelse |
|------|---------|
| 200 | Lyckades (GET, PUT) |
| 201 | Skapad (POST) |
| 204 | Inget innehåll (DELETE) |
| 400 | Felaktig begäran (valideringsfel) |
| 401 | Obehörig (saknas/ogiltig token) |
| 403 | Förbjuden (fel tokentyp) |
| 404 | Hittades inte (sökvägen finns inte) |
| 409 | Konflikt (dubblett) |
| 429 | För många begäranden (hastighetsgräns) |
| 500 | Serverfel |
Upptäckbarhets-endpoints
| Endpoint | Syfte |
|----------|---------|
| | Landningssida (LLM-optimerad) |
| | Maskinläsbar lista över alla endpoints |
| | Ofärmaterad endpoint-lista |
| | OpenAPI 3.0-specifikation |
| | Fullständig API-dokumentation (HTML) |
| | API-dokumentation som JSON |
| | Dokumentationssystem (HTML) |
| | Dokumentationsindex (JSON) |
| | All dokumentation som ett textblock |
| | Interaktiv API-playground |
Hastighetsgränser
| Autentiseringsmetod | Gräns |
|-------------|-------|
| Mind Key (header) | Ingen |
| Mind Key (?key=) | 60/min per IP |
| JWT (header) | Ingen |
| Publika endpoints | Ingen |
Hastighetsbegränsade svar inkluderar:
[CODE BLOCK]
Paginering
List-endpoints stöder och :
[CODE BLOCK]
Standardgräns: 100. Maxgräns: 500.
CORS
Alla endpoints stöder CORS för webbläsarbaserade klienter:
[CODE BLOCK]
SDK:er & klienter
- Node.js SDK: (repo)
- MCP Server: (repo)
- HTTP-klient: valfritt HTTP-bibliotek (curl, fetch, axios, etc.)
Nästa steg
- Memory API — de viktigaste endpoints
- Chat API — asynkron kommunikation mellan människa och agent
- Fel & felhantering
────────────────────────────────────────────────────────────
# Hastighetsgränser & kvoter
SUMMARY: Principer för hastighetsgränser i Synapse API — Bearer-header (obegränsat), ?key= (60/min), publika endpoints.
KEY CONTEXT:
Mind Key (Authorization: Bearer header) → NO rate limit
Mind Key (?key= query param) → 60 req/min per IP
JWT (Authorization: Bearer header) → NO rate limit
Public endpoints (/tools/*, /docs, /health, /endpoints) → NO rate limit
Rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After
Recommendation: ALWAYS use Authorization header. Use ?key= only for URL-only tools.
Hastighetsgränser & kvoter
Synapse har en enkel, förutsägbar princip för hastighetsgränser som utformats
för att förhindra missbruk utan att vara i vägen för legitim användning.
Princip för hastighetsgränser
| Autentiseringsmetod | Gräns | Omfattning |
|-------------|-------|-------|
| Mind Key () | Ingen | Per-mind |
| Mind Key () | 60 req/min | Per-IP |
| JWT () | Ingen | Per-användare |
| Publika endpoints | Ingen | Global |
> [!TIP]
> Använd alltid -headern när det är möjligt. Den har
> ingen hastighetsgräns. Använd endast för verktyg som inte kan sätta
> egna headers.
Headers för hastighetsgränser
När ni använder -autentisering inkluderar svar headers för hastighetsgräns:
[CODE BLOCK]
När ni överskrider gränsen:
[CODE BLOCK]
När ni når en hastighetsgräns
Om ni får en 429:
1. Byt till Authorization-header (rekommenderas):
[CODE BLOCK]
2. Eller vänta sekunder och försök igen.
Varför ?key=-gränsen finns
Queryparametern är bekväm för URL-endast-verktyg (webbläsare,
-kommandon), men har säkerhets- och prestandakonsekvenser:
- Säkerhet: Queryparametrar loggas i serverns åtkomstloggar,
webbläsarhistorik och Referer-headers. Begränsad användning minskar exponeringen.
- Prestanda: Queryparameter-autentisering kräver en IP-baserad
hastighetsbegränsare (Redis-uppslag per begäran), vilket lägger till latens.
Header-autentisering hoppar över detta.
- Missbruksförebyggande: En läckt -URL skulle kunna delas och
överbelastas. IP-gränsen begränsar skadeomfånget.
Rekommenderade mönster
LLM-agenter
[CODE BLOCK]
Webbläsarbaserade verktyg
Om ert verktyg bara kan öppna URL:er:
[CODE BLOCK]
MCP-server
MCP-servrar använder alltid header-autentisering via miljövariabeln
— ingen hastighetsgräns gäller.
Massimport
För massåtgärder (t.ex. import av 1000 minnen), använd alltid header-autentisering.
Massimport via når hastighetsgränsen inom 1 minut.
Kvoter (Mind-nivå)
Det finns för närvarande inga kvoter per mind för lagringsstorlek eller antal
minnen. Alla gränser är på auth/IP-nivå, inte datanivå. Detta kan ändras i
framtiden för rättvisa i miljöer med flera användare.
Övervaka er användning
[CODE BLOCK]
Nästa steg
- Autentisering
- Fel & felhantering
────────────────────────────────────────────────────────────
# Scripts API
SUMMARY: Beständig skriptlagring — spara återanvändbara shell-, Python- eller Node-skript och hämta dem via curl | bash.
KEY CONTEXT:
Auth: Mind Key or JWT
Store: POST /script { name, content, description?, language? }
Fetch as text: GET /script/:name (returns text/plain, curl | bash ready)
Info: GET /script/:name/info (metadata without content)
List: GET /scripts (JSON array)
Delete: DELETE /script/:name
Use case: store deployment scripts, config generators, troubleshooting snippets
Scripts API
Scripts API tillhandahåller ett beständigt lager för återanvändbara skript.
Skript är namngivna och versionshanterade inom en mind och kan hämtas som
oformaterad text — perfekt för -mönster.
Endpoints
POST /script
Lagra eller uppdatera ett skript.
[CODE BLOCK]
GET /script/:name
Hämta skriptinnehåll som . Perfekt för att pipa till bash.
[CODE BLOCK]
GET /script/:name/info
Hämta skriptmetadata utan innehållet.
[CODE BLOCK]
Svar:
[CODE BLOCK]
GET /scripts
Lista alla skript i den aktuella minden.
[CODE BLOCK]
DELETE /script/:name
Ta bort ett skript.
[CODE BLOCK]
Vanliga användningsområden
Driftsättningsskript
Lagra standardiserade driftsättningsprocedurer så att LLM:en kan köra dem utan
att härleda stegen varje gång:
[CODE BLOCK]
Felsökningsavsnitt
Lagra diagnostikkommandon för vanliga problem:
[CODE BLOCK]
Konfigurationsgeneratorer
Lagra skript som genererar konfigurationer:
[CODE BLOCK]
Nästa steg
- Variables API
- Cron & Scheduler
────────────────────────────────────────────────────────────
# Tasks API
SUMMARY: Uppgiftshantering för LLM-agenter — skapa, lista, uppdatera, slutför, ta bort uppgifter med prioriteringar.
KEY CONTEXT:
Auth: Mind Key
List: GET /mind/tasks?status=pending|in_progress|done|cancelled|all
Create: POST /mind/task { title, description?, priority?, due_at? }
Update: PUT /mind/task/:id { title?, description?, priority?, status?, due_at? }
Complete: GET /mind/task/:id/complete
Delete: GET /mind/task/:id/delete
Priorities: low, normal, high, critical
Statuses: pending, in_progress, done, cancelled
Pattern: create tasks for multi-step work, update status as you progress
Tasks API
Tasks API ger LLM-agenter ett strukturerat sätt att spåra arbete i flera steg.
Uppgifter är begränsade till den aktuella minden och bevaras mellan sessioner,
så agenten kan återuppta arbetet där den slutade.
Endpoints
GET /mind/tasks
Lista alla uppgifter för den aktuella minden.
[CODE BLOCK]
Svar:
[CODE BLOCK]
POST /mind/task
Skapa en ny uppgift.
[CODE BLOCK]
GET /mind/task (query params)
Skapa en uppgift via GET (för URL-endast-verktyg).
[CODE BLOCK]
PUT /mind/task/:id
Uppdatera en befintlig uppgift.
[CODE BLOCK]
GET /mind/task/:id/complete
Markera en uppgift som slutförd.
[CODE BLOCK]
GET /mind/task/:id/delete
Ta bort en uppgift permanent.
[CODE BLOCK]
Prioriteringar
- — inte brådskande
- — standard
- — viktig
- — måste göras omedelbart
Statusar
- — skapad, inte startad
- — pågår
- — slutförd
- — övergiven
Mönster: Uppgiftsdrivet arbetsflöde
[CODE BLOCK]
Nästa steg
- Uppgiftsdrivet arbetsflöde
- Cron & Scheduler
────────────────────────────────────────────────────────────
# Verktyg (tid, kalkyl, slump)
SUMMARY: Publika verktygs-endpoints — servertid, säker kalkylator, slumpvärdesgenerator. Ingen autentisering krävs.
KEY CONTEXT:
No auth required for any /tools/* endpoint.
GET /tools/time → { time, timezone, offset }
GET /tools/calc?expr=(10+5)*3 → { result, expr } (safe, no eval, arithmetic only)
GET /tools/random?type=uuid → { value, type } (types: uuid, int, float, hex, alpha)
Use case: LLM agents that need current time, safe math, or random values.
Verktyg
-endpoints är publika verktyg — ingen autentisering krävs.
De är användbara för LLM-agenter som behöver servertid, säker matematik eller
slumpvärden.
GET /tools/time
Hämta aktuell servertid, tidszon och UTC-offset.
[CODE BLOCK]
Svar:
[CODE BLOCK]
Användningsområde: LLM-agenter som behöver veta "vilken tid är det nu" för
schemaläggning, tidsstämplar eller relativa datumberäkningar.
GET /tools/calc
Säker kalkylator — endast aritmetik, ingen . Stöder , , , ,
, , och tal.
[CODE BLOCK]
Svar:
[CODE BLOCK]
> [!TIP]
> Använd detta istället för att försöka räkna i huvudet eller via strängtolkning.
> Det är säkert (ingen kodinjektion möjlig) och korrekt.
Operatorer som stöds
- addition
- subtraktion
- multiplikation
- division
- modulo
- parenteser
- Tal (heltal och decimaler)
Exempel
[CODE BLOCK]
GET /tools/random
Generera slumpvärden.
[CODE BLOCK]
Typ-parametrar
| Typ | Parametrar | Utdata |
|------|-----------|--------|
| | inga | UUID v4-sträng |
| | , (standard 0-100) | Heltal |
| | , (standard 0-100) | Flyttal |
| | , (längdintervall, standard 8-16) | Hex-sträng |
| | , (längdintervall, standard 8-16) | Alfabetisk sträng |
Användningsområden för LLM-agenter
Generera unika ID:n
[CODE BLOCK]
Beräkna procentandelar
[CODE BLOCK]
Hämta aktuell tidsstämpel
[CODE BLOCK]
Generera testdata
[CODE BLOCK]
Nästa steg
- API-översikt — alla endpoint-grupper
- Fel & felhantering
────────────────────────────────────────────────────────────
# User & Minds API
SUMMARY: Kontohantering — registrera, logga in, skapa minds, lista minds, ta bort minds. JWT-skyddad.
KEY CONTEXT:
Auth: JWT (from /register or /login)
Register: POST /register { email, password, display_name? } → returns JWT
Login: POST /login { email, password } → returns JWT
Create mind: POST /minds { name, description? } → returns mind_key (shown once!)
List minds: GET /minds
Delete mind: DELETE /minds/:id (irreversible — deletes all memories!)
JWT expires after 7 days. Mind Key never expires.
Mind Key is shown only once at creation — save it permanently.
User & Minds API
User & Minds API hanterar kontohantering. Dessa endpoints använder
JWT-autentisering (inte Mind Keys) eftersom de opererar på kontonivå, inte
mind-nivå.
Autentiserings-endpoints
POST /register
Skapa ett nytt användarkonto.
[CODE BLOCK]
Svar:
[CODE BLOCK]
POST /login
Logga in på ett befintligt konto.
[CODE BLOCK]
Svar: samma som .
Minds-endpoints
POST /minds
Skapa en ny mind. Returnerar Mind Key — spara den omedelbart, den visas
endast en gång.
[CODE BLOCK]
Svar:
[CODE BLOCK]
> [!CRITICAL]
> visas endast en gång. Om ni tappar den kan ni inte hämta den —
> ni måste ta bort minden och skapa en ny (vilket förlorar alla lagrade minnen).
GET /minds
Lista alla minds för den aktuella användaren.
[CODE BLOCK]
Svar:
[CODE BLOCK]
DELETE /minds/:id
Ta bort en mind permanent.
[CODE BLOCK]
> [!WARNING]
> Att ta bort en mind är oåterkalleligt. Alla minnen, uppgifter,
> chathistorik och skript i den minden förloras permanent. Exportera först via
> om ni behöver en säkerhetskopia.
Flera-mind-mönster
De flesta användare har nytta av flera minds för att hålla kontexter isolerade:
[CODE BLOCK]
Använd olika Mind Keys i olika LLM-sessioner för att hålla kontexterna isolerade.
Kontosäkerhet
Lösenordskrav
- Minst 6 tecken
- Ingen maxgräns (använd en lösenordshanterare)
- Lagras som bcrypt-hash (aldrig i klartext)
JWT-utgång
JWT:er löper ut efter 7 dagar. När de löpt ut, anropa igen.
Mind Key-säkerhet
Mind Keys löper aldrig ut. Om en Mind Key komprometteras:
1. Skapa en ny mind via
2. Uppdatera er LLM-konfiguration med den nya Mind Key
3. Ta bort den komprometterade minden via
Nästa steg
- Autentisering — fullständig auth-guide
- Mind Key vs JWT — beslutsguide
- Sharing API — dela minds med andra användare
────────────────────────────────────────────────────────────
# Variables API
SUMMARY: Snabbt nyckel-värde-lager för LLM-tillstånd — räknare, flaggor, tidsstämplar för senast sedd, partiella förlopp.
KEY CONTEXT:
Auth: Mind Key
Set: POST /var { key, value }
Get: GET /var/:key
List: GET /var
Delete: DELETE /var/:key
Use case: store last-seen timestamps, counters, flags, partial workflow state
Faster than memory (PostgreSQL direct, no FTS5 indexing)
Not for: structured facts (use /memory), long content (use /script)
Variables API
Variables API är ett snabbt nyckel-värde-lager för efemärt tillstånd. Till
skillnad från minnen (som indexeras, är sökbara och strukturerade) är variabler
optimerade för snabb läs/skriv-åtkomst — perfekt för räknare, flaggor och
sessionstillstånd.
Endpoints
POST /var
Sätt eller uppdatera en variabel.
[CODE BLOCK]
GET /var/:key
Hämta en enskild variabel.
[CODE BLOCK]
Svar:
[CODE BLOCK]
GET /var
Lista alla variabler.
[CODE BLOCK]
DELETE /var/:key
Ta bort en variabel.
[CODE BLOCK]
När variabler ska användas vs minne
| Användningsområde | Använd |
|----------|-----|
| Användarnamn, inställningar | Minne (sökbart, strukturerat) |
| Tidsstämpel för senaste session | Variabel (efemärt tillstånd) |
| Räknare (t.ex. skickade meddelanden) | Variabel (frekventa uppdateringar) |
| Arbetsflödestillstånd ("steg 3 av 5 klart") | Variabel (övergående) |
| Långformiga projektanteckningar | Minne (fulltextindexerat) |
| Återanvändbara skript | Skriptlager (namngivet, versionshanterat) |
Vanliga mönster
Spåra senaste session
[CODE BLOCK]
Räknarmönster
[CODE BLOCK]
Funktionsflaggor
[CODE BLOCK]
Nästa steg
- Memory API — för strukturerad, sökbar data
- Cron & Scheduler
────────────────────────────────────────────────────────────
# Webhooks API
SUMMARY: Registrera HTTP-återanrop för minnes-, chatt- och uppgiftshändelser — bli meddelad när data ändras.
KEY CONTEXT:
Auth: Mind Key
Register: POST /webhooks { url, events, secret? }
List: GET /webhooks
Get: GET /webhooks/:id
Update: PUT /webhooks/:id { url?, events?, secret?, enabled? }
Delete: DELETE /webhooks/:id
Events: memory.*, memory.store, memory.update, memory.delete, chat.*, chat.message_received, task.*, task.created, task.completed
Secret: HMAC-SHA256 signed payload, sent in X-Synapse-Signature header
Pattern: register webhook → receive POST → process event → call Synapse API
Webhooks API
Webhooks låter er ta emot HTTP-återanrop när händelser sker i Synapse. Perfekt
för att utlösa extern automatisering, skicka aviseringar eller synkronisera till
andra system.
Endpoints
POST /webhooks
Registrera en ny webhook.
[CODE BLOCK]
Svar:
[CODE BLOCK]
GET /webhooks
Lista alla webhooks för den aktuella minden.
[CODE BLOCK]
GET /webhooks/:id
Hämta en enskild webhook.
[CODE BLOCK]
PUT /webhooks/:id
Uppdatera en webhook (URL, händelser, secret eller enabled-flagga).
[CODE BLOCK]
DELETE /webhooks/:id
Ta bort en webhook.
[CODE BLOCK]
Händelsetyper
| Mönster | Utlöses när |
|---------|------------|
| | Vilken minneshändelse som helst |
| | Nytt minne lagrat |
| | Minne uppdaterat |
| | Minne borttaget |
| | Vilken chatthändelse som helst |
| | Nytt meddelande från människa |
| | Vilken uppgiftshändelse som helst |
| | Ny uppgift skapad |
| | Uppgift markerad som slutförd |
| | Alla händelser |
Webhook-payload
När en händelse utlöses gör Synapse en POST till er URL:
[CODE BLOCK]
Signaturverifiering
Om ni sätter en signerar Synapse varje payload med HMAC-SHA256:
[CODE BLOCK]
Verifiera i er hanterare:
[CODE BLOCK]
Mönster: Realtidssynk
[CODE BLOCK]
Nästa steg
- Cron & Scheduler
- Guide för webhook-automatisering
## KATEGORI: MCP-INTEGRATION
Integration med Claude, Cursor och andra MCP-klienter.
────────────────────────────────────────────────────────────
# MCP i Claude Code
SUMMARY: Använd Synapse-verktyg från Claude Codes terminalagent — beständigt minne för kodsessioner.
KEY CONTEXT:
Claude Code config: ~/.claude/config.json (or via `claude mcp add` command)
Command: npx -y synapse-mcp-api@latest
Env: SYNAPSE_MIND_KEY (required), SYNAPSE_URL (optional)
Alternative: `claude mcp add synapse -- npx -y synapse-mcp-api@latest`
Then: set SYNAPSE_MIND_KEY env var in your shell
Test: in claude code, type "recall all my memories"
MCP i Claude Code
Claude Code är Anthropics terminalbaserade kodagent. Med Synapse MCP får Claude
Code beständigt minne över kodsessioner — den minns er projektkontext, tidigare
beslut och kodmönster.
Konfiguration
Metod 1: CLI-kommando (rekommenderas)
[CODE BLOCK]
Metod 2: Redigera konfigurationsfil
Redigera :
[CODE BLOCK]
Verifiera att det fungerar
Starta Claude Code:
[CODE BLOCK]
I Claude Code-prompten, skriv:
[CODE BLOCK]
Claude bör anropa och svara med era lagrade minnen.
Vanliga mönster
Projektkontext-beständighet
I början av en kodsession:
[CODE BLOCK]
Claude anropar , ser er projektlista och fortsätter arbetet
där ni slutade.
Kodbeslut
När ni fattar ett arkitektoniskt beslut:
[CODE BLOCK]
Claude anropar med kategori , prioritet .
Undvika tidigare misstag
[CODE BLOCK]
Claude söker minnen med kategori och påminner om tidigare fel.
Uppgiftsspårning
[CODE BLOCK]
Claude anropar och uppgiften persistens över sessioner.
Verktygsprofiler
För kodsessioner där ni inte behöver alla 119 verktyg:
[CODE BLOCK]
Felsökning
MCP-server startar inte
[CODE BLOCK]
Mind Key känns inte igen
[CODE BLOCK]
Claude Code ser inte verktyg
- Starta om Claude Code efter konfigurationsändringar
- Kontrollera för att verifiera att Synapse är registrerad
- Se MCP-felsökning
Nästa steg
- Claude Desktop-konfiguration
- Cursor-konfiguration
- Guide för beständig LLM-agent
────────────────────────────────────────────────────────────
# MCP i Claude Desktop
SUMMARY: Anslut Synapse till Claude Desktop på 2 minuter. Claude får 79 Synapse-verktyg inbyggt.
KEY CONTEXT:
Config file: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
%APPDATA%\Claude\claude_desktop_config.json (Windows)
MCP server command: npx -y synapse-mcp-api@latest
Env vars: SYNAPSE_MIND_KEY (required), SYNAPSE_URL (optional, default https://synapse.schaefer.zone)
After config: restart Claude Desktop, check for 🔌 icon with "79 tools"
Test: type "memory_recall aufrufen" in a new chat
Troubleshooting: Node.js ≥ 18, check Mind Key, see /docs/mcp/troubleshooting
MCP i Claude Desktop
Claude Desktop är Anthropics skrivbordsapp för macOS och Windows. Med Synapse
MCP-server konfigurerad får Claude inbyggd åtkomst till alla 79 Synapse-verktyg
— den kan lagra minnen, återkalla dem, hantera uppgifter, chatta med er och mer.
Förutsättningar
- Claude Desktop-app (macOS eller Windows)
- Node.js 18+ installerat ()
- Er Synapse Mind Key
Steg 1: Öppna konfigurationsfilen
- macOS:
- Windows:
Om filen inte finns, skapa den.
Steg 2: Lägg till Synapse MCP-server
[CODE BLOCK]
> [!TIP]
> Om ni redan har andra MCP-servrar konfigurerade, lägg bara till
> -blocket inuti det befintliga -objektet.
Steg 3: Starta om Claude Desktop
1. Avsluta Claude Desktop helt (Cmd+Q på macOS, inte bara stäng fönstret)
2. Öppna Claude Desktop igen
3. Starta en ny chatt
4. Leta efter 🔌-pluggikonen nere till vänster — den bör visa "79 tools"
Steg 4: Testa det
I en ny chatt, skriv:
[CODE BLOCK]
Claude bör anropa verktyget och svara med en sammanfattning av
era lagrade minnen (eller "No memories yet" om er mind är tom).
Tillgängliga verktyg (urval)
| Verktyg | Beskrivning |
|------|-------------|
| | Återkalla alla minnen |
| | Lagra ett nytt minne |
| | Sök minnen |
| | Lista uppgifter |
| | Skapa en uppgift |
| | Kontrollera efter nya meddelanden |
| | Svara på ett meddelande |
| | Öppna en webbläsarflik |
| | Lista registrerade datorer |
Fullständig lista: Vad är MCP?
Felsökning
Inga verktyg visas i Claude Desktop
1. Verifiera Node.js-version: (måste vara ≥ 18)
2. Kontrollera att konfigurationsfilen är giltig JSON (inga avslutande kommatecken)
3. Starta om Claude Desktop helt (Cmd+Q, inte bara stäng)
4. Kontrollera Claude Desktop-loggar: (macOS)
"Mind Key invalid"-fel
- Verifiera att börjar med
- Hämta en ny nyckel via (kräver JWT från )
- Inga citattecken runt nyckeln i JSON
npx hittades inte
- Installera Node.js 18+:
- Starta om terminal efter installation
- På macOS med Homebrew:
Verktyg visas men anrop misslyckas
- Kontrollera att är nåbar:
- Verifiera att er Mind Key fungerar:
- Se MCP-felsökning
Verktygsprofiler (spara tokens)
Om ni använder en mindre LLM eller vill spara kontext-tokens, sätt en verktygsprofil:
[CODE BLOCK]
Profiler: (8 verktyg), (25), (119, standard).
Nästa steg
- Claude Code-konfiguration
- Cursor-konfiguration
- MCP-felsökning
────────────────────────────────────────────────────────────
# MCP i Continue.dev
SUMMARY: Anslut Synapse till Continue.dev — öppen källkod AI-kodningsassistent för VS Code och JetBrains.
MCP i Continue.dev
Continue.dev är en öppen källkod AI-kodningsassistent för VS Code och
JetBrains IDE:er. Med Synapse MCP får Continue beständigt minne över sessioner.
Förutsättningar
- VS Code eller JetBrains IDE
- Continue.dev-tillägg installerat
- Node.js 18+
- Er Synapse Mind Key
Konfiguration
Steg 1: Öppna Continue-konfiguration
I VS Code eller JetBrains:
1. Öppna Continue-tilläggets sidopanel
2. Klicka på kugghjulsikonen → "Open config.json"
Eller redigera direkt.
Steg 2: Lägg till Synapse MCP-server
[CODE BLOCK]
Steg 3: Ladda om Continue
Ladda om VS Code-fönstret (Cmd+Shift+P → "Reload Window") eller starta om er IDE.
Verifiera att det fungerar
I Continue-chatten:
[CODE BLOCK]
Continue bör anropa och svara med era lagrade minnen.
Vanliga mönster
Projektkontext
[CODE BLOCK]
Continue anropar , ser era projektminnen och fortsätter arbetet
där ni slutade.
Kodgranskningsmönster
[CODE BLOCK]
Continue hittar era lagrade kodgranskningsmönster och tillämpar dem.
Parprogrammeringsminne
[CODE BLOCK]
Continue lagrar det som ett -minne.
Felsökning
MCP-server ansluter inte
1. Kontrollera att är giltig JSON
2. Verifiera Node.js:
3. Kontrollera Continues utdatapanel (View → Output → Continue)
4. Starta om IDE
Verktyg visas inte
- Verifiera att Continue-version stöder MCP (≥ 0.9.x)
- Kontrollera att -miljövariabel är satt i konfigurationen
- Leta efter MCP-fel i Continues loggar
Nästa steg
- Claude Desktop-konfiguration
- Anpassad MCP-klient
────────────────────────────────────────────────────────────
# MCP i Cursor
SUMMARY: Anslut Synapse till Cursor IDE för beständigt projektminne över kodsessioner.
MCP i Cursor
Cursor är en AI-driven IDE baserad på VS Code. Med Synapse MCP får Cursor
beständigt minne över sessioner — den minns era projektbeslut, kodmönster och
tidigare felsökningssessioner.
Förutsättningar
- Cursor IDE installerad ()
- Node.js 18+
- Er Synapse Mind Key
Konfiguration
Steg 1: Öppna Cursor-inställningar
I Cursor:
1. Öppna Inställningar (Cmd+, på macOS, Ctrl+, på Windows/Linux)
2. Sök efter "MCP" eller navigera till
Steg 2: Lägg till Synapse MCP-server
Klicka "Add MCP Server" och konfigurera:
| Fält | Värde |
|-------|-------|
| Name | |
| Type | |
| Command | |
| Env | |
Steg 3: Redigera config.json direkt (alternativ)
Cursor lagrar MCP-konfiguration i :
[CODE BLOCK]
Steg 4: Starta om Cursor
Starta om Cursor helt (Cmd+Q och öppna igen på macOS).
Verifiera att det fungerar
I Cursors chattpanel (Cmd+L):
[CODE BLOCK]
Cursor bör anropa och svara med era lagrade minnen.
Vanliga mönster
Projekt-onboarding
När ni öppnar ett nytt projekt:
[CODE BLOCK]
Cursor anropar och fortsätter arbetet där ni slutade.
Arkitekturbeslut
[CODE BLOCK]
Cursor lagrar det som ett -minne med prioritet.
Felsökningshistorik
[CODE BLOCK]
Cursor söker efter -minnen och påminner om tidigare fixar.
Kodmönster över sessioner
[CODE BLOCK]
Cursor hittar minnen om auth-implementeringar ni har gjort tidigare.
Felsökning
MCP-server ansluter inte
1. Verifiera Node.js: (≥ 18)
2. Testa MCP-server: (borde starta utan fel)
3. Kontrollera Cursors MCP-loggar (View → Output → MCP)
4. Starta om Cursor helt
Verktyg visas inte
- Kontrollera att är giltig JSON
- Verifiera att -miljövariabel är satt
- Kontrollera att Cursor-version stöder MCP (≥ 0.42)
Ogiltig Mind Key
[CODE BLOCK]
Nästa steg
- Claude Desktop-konfiguration
- Continue.dev-konfiguration
- Guide för beständig LLM-agent
────────────────────────────────────────────────────────────
# Bygg en anpassad MCP-klient
SUMMARY: Anslut till Synapse MCP-servern från er egen applikation med MCP-SDK:et.
Bygg en anpassad MCP-klient
Om ni bygger er egen LLM-applikation kan ni ansluta till Synapse MCP-servern
direkt med det officiella MCP-SDK:et. Detta ger er app åtkomst till alla 79
Synapse-verktyg.
SDK:er
| Språk | Paket |
|----------|---------|
| TypeScript/JavaScript | |
| Python | |
TypeScript-exempel
Installation
[CODE BLOCK]
Anslut via stdio
[CODE BLOCK]
Anslut via HTTP/SSE (fjärr)
[CODE BLOCK]
Python-exempel
Installation
[CODE BLOCK]
Anslut via stdio
[CODE BLOCK]
Verktygsprofiler
Vid anslutning kan ni begära en specifik verktygsprofil via headern
(HTTP/SSE) eller miljövariabeln (stdio):
[CODE BLOCK]
Felhantering
[CODE BLOCK]
Användningsområden
- Anpassade AI-assistenter — bygg er egen agent med beständigt minne
- Arbetsflödesautomation — kedja Synapse-verktyg i anpassade arbetsflöden
- Datapipelines — extrahera minnen, transformera, ladda annanstans
- Övervakningsinstrumentpaneler — visa minnesstatistik, chatthistorik, uppgifter
Nästa steg
- MCP-specifikation
- Synapse MCP-repo
- API-översikt
────────────────────────────────────────────────────────────
# MCP-felsökning
SUMMARY: Lös vanliga MCP-integrationsproblem — server startar inte, verktyg visas inte, auth-fel.
KEY CONTEXT:
Common issues:
1. Node.js < 18 → upgrade to 18+
2. Mind Key invalid → check format (mk_...), get fresh via POST /minds
3. npx not found → install Node.js
4. Tools not appearing → restart client, check config JSON validity
5. SYNAPSE_URL unreachable → curl /health to verify
6. MCP server crashes → check logs, run npx manually to see error
Debug steps: run `npx -y synapse-mcp-api@latest` manually, check stderr
Logs: Claude Desktop ~/Library/Logs/Claude/mcp.log, Cursor ~/.cursor/logs/
MCP-felsökning
Vanliga problem och lösningar vid integration av Synapse MCP med er LLM-klient.
Snabb checklista för diagnostik
1. ✅ Node.js 18+ installerat? ()
2. ✅ Mind Key börjar med ? (inte JWT )
3. ✅ Synapse API nåbart? ()
4. ✅ Mind Key fungerar? ()
5. ✅ Konfigurationsfil är giltig JSON? (inga avslutande kommatecken, inga kommentarer)
6. ✅ Klient omstartad efter konfigurationsändring?
7. ✅ MCP-server startar manuellt? ()
Problem: Inga verktyg visas i klienten
Symptom
- Claude Desktop / Cursor / Continue visar 0 verktyg
- Ingen 🔌-ikon eller "synapse"-post i MCP-serverlista
Lösningar
1. Starta om klienten helt — Cmd+Q på macOS (inte bara stäng fönstret)
2. Kontrollera sökväg till konfigurationsfil:
- Claude Desktop macOS:
- Claude Desktop Windows:
- Cursor:
- Continue:
3. Validera JSON — klistra in konfiguration i
4. Kontrollera klientloggar för MCP-fel:
- Claude Desktop: (macOS)
- Cursor: View → Output → MCP
5. Kör MCP-server manuellt för att se startfel:
[CODE BLOCK]
Problem: "Mind Key invalid"-fel
Symptom
- Verktyg visas men anrop misslyckas med "401 Unauthorized"
- Fel: "Mind Key fehlt oder ungültig"
Lösningar
1. Verifiera Mind Key-format — börjar med , 40 tecken
2. Testa direkt:
[CODE BLOCK]
3. Kontrollera att miljövariabel är satt — för stdio-transport måste
miljövariabeln vara i MCP-serverkonfigurationen, inte ert shell
4. Hämta en ny Mind Key:
[CODE BLOCK]
Problem: npx hittades inte
Symptom
- Fel: "npx: command not found"
- MCP-server startar inte
Lösningar
1. Installera Node.js 18+:
- macOS: eller ladda ner från
- Linux:
- Windows: ladda ner från
2. Starta om terminal efter installation
3. Verifiera:
Problem: SYNAPSEURL onåbar
Symptom
- MCP-server startar men verktygsanrop time-outar
- Fel: "fetch failed" eller "ECONNREFUSED"
Lösningar
1. Testa anslutning:
[CODE BLOCK]
2. Kontrollera företagsbrandvägg — kan blockera utgående HTTPS
3. Prova alternativ URL:
- Produktion:
- MCP-server:
4. För egenvärd: säkerställ att er Synapse-instans körs och är åtkomlig
Problem: MCP-server kraschar
Symptom
- MCP-server avslutas omedelbart efter start
- Klientloggar visar "MCP server disconnected"
Lösningar
1. Kör manuellt för att se fel:
[CODE BLOCK]
2. Kontrollera portkonflikter — MCP-server använder port 13100 som standard
3. Rensa npx-cache:
[CODE BLOCK]
4. Uppdatera till senaste:
[CODE BLOCK]
Problem: Verktygsanrop returnerar 429
Symptom
- Fel: "Rate limit exceeded"
Lösningar
Detta bör inte hända med MCP (använder header-auth, ingen hastighetsgräns). Om det gör det:
1. Kontrollera om ni använder nånstans — byt till header-auth
2. Verifiera — säkerställ att den pekar på rätt instans
3. Kontakta support om problemet kvarstår
Problem: Verktyg visas men fungerar inte
Symptom
- Verktyg listade i klient
- Att anropa ett verktyg returnerar fel eller inget resultat
Lösningar
1. Kontrollera verktygsnamnet — måste vara exakt (t.ex. , inte )
2. Verifiera argument — kontrollera verktygets indataschema
3. Testa via direkt API:
[CODE BLOCK]
4. Kontrollera Synapse-hälsa:
[CODE BLOCK]
Få hjälp
Om inget av ovanstående löser ert problem:
1. Kontrollera befintliga ärenden:
2. Öppna ett nytt ärende med:
- MCP-serverversion ()
- Klientnamn och version
- Operativsystem
- Relevanta loggutdrag
- Steg för att reproducera
Nästa steg
- Claude Desktop-konfiguration
- Claude Code-konfiguration
- API-fel
────────────────────────────────────────────────────────────
# Vad är MCP?
SUMMARY: Model Context Protocol låter LLM:er anropa externa verktyg. Synapse exponerar 79 verktyg via officiell MCP-server.
KEY CONTEXT:
MCP = Model Context Protocol (Anthropic, 2024). Open standard for LLM-tool integration.
Synapse has official MCP server: synapse-mcp-api (npm package, npx -y synapse-mcp-api@latest)
79 tools exposed: 22 memory, 7 chat, 8 scheduler, 4 tasks, 5 scripts, 9 computers, 4 push, 5 user, 3 utility
3 transports: stdio (local), HTTP/SSE (remote), WebSocket (mobile)
Supported clients: Claude Desktop, Claude Code, Cursor, Continue, Cline, any MCP-compatible client
Tool Profiles (v1.4.0): minimal (8 tools), standard (25), full (119) — controlled via MCP_PROFILE env or Mcp-Tool-Profile header
Vad är MCP?
Model Context Protocol (MCP) är en öppen standard av Anthropic (2024) som
låter LLM:er anropa externa verktyg på ett strukturerat sätt. Istället för att
klistra in API-dokumentation i prompten registrerar ni verktyg hos MCP-servern,
och LLM:en anropar dem vid behov — som funktionsanrop, men standardiserat och
klientoberoende.
Synapse MCP-server
Synapse levererar en officiell MCP-server ( på npm) som
exponerar 79 verktyg som täcker alla Synapse-funktioner:
| Kategori | Verktyg | Antal |
|----------|-------|-------|
| Memory | recall, list, store, search, semantic-search, update, delete, bulk-delete, stats, unverified, contradictions, audit, related, by-tag, diff, expiring, health, sync, embed-batch, verify, unverify, mind-export | 22 |
| Chat | poll, reply, status, history, unread, send, upload | 7 |
| Scheduler | cronlist, croncreate, crondelete, crontoggle, varlist, varget, varset, vardelete | 8 |
| Tasks | tasklist, taskget, taskcreate, taskupdate | 4 |
| Scripts | scriptlist, scriptget, scriptinfo, scriptstore, scriptdelete | 5 |
| Computers | computerlist, computerget, installcode, screenshot, commandqueue, commandstatus, commandslist, disable, delete | 9 |
| Push | vapidpublickey, subscribe, unsubscribe, test | 4 |
| User/Mind | register, login, mindslist, mindcreate, minddelete | 5 |
| Utility | time, calc, random | 3 |
| Visualization | graph, tags, compact | 3 |
| Sharing | share, list, revoke | 3 |
| Webhooks | register, list, get, update, delete | 5 |
| Browser | new, navigate, click, type, screenshot, close | 6 |
| Totalt | | 79+ |
Hur det fungerar
[CODE BLOCK]
1. Ni konfigurerar er LLM-klient (Claude Desktop, Cursor etc.) för att använda Synapse MCP-server
2. Klienten startar MCP-servern (via )
3. MCP-servern ansluter till Synapse API med er Mind Key
4. LLM:en ser alla 79 verktyg som inbyggda funktioner den kan anropa
5. När LLM:en behöver minna något anropar den — MCP-servern översätter detta till på Synapse
Transporter
Synapse MCP-server stöder tre transporter:
stdio (lokal, rekommenderas för skrivbord)
[CODE BLOCK]
HTTP/SSE (fjärr, multitenant)
Anslut er MCP-klient till:
[CODE BLOCK]
WebSocket (mobil, hög volym)
[CODE BLOCK]
Verktygsprofiler (v1.4.0)
För att minska token-overhead för mindre LLM:er stöder MCP-servern tre
verktygsprofiler:
| Profil | Verktyg | Tokens | Bäst för |
|---------|-------|--------|----------|
| | 8 (sammansatt dispatch) | 500 | Egenvärd LLM:er med ≤8k kontext |
| | 25 (namngivna) | 2 500 | Medelstora LLM:er (Claude Haiku, GPT-3.5) |
| | 119 (alla) | 8 250 | Stora LLM:er (Claude Sonnet/Opus, GPT-4) — standard |
Styr via:
- Miljövariabel:
- Header:
Klienter som stöds
- Claude Desktop — Anthropics skrivbordsapp
- Claude Code — terminalbaserad kodagent
- Cursor — AI-driven IDE
- Continue.dev — öppen källkod AI-kodningsassistent
- Cline — VS Code-tillägg
- Valfri MCP-kompatibel klient
Varför använda MCP istället för direkt API?
| Ansats | Fördelar | Nackdelar |
|----------|------|------|
| Direkt API | Enkelt, inget extra lager | LLM behöver veta URL:er, headers, auth |
| MCP | LLM ser inbyggda verktyg, ingen URL-memorering | Extra MCP-serverprocess |
För de flesta LLM-agent-användningsområden är MCP det bättre valet — LLM:en
behöver inte minnas API-sökvägar eller auth-mönster.
Nästa steg
- Claude Desktop-konfiguration — 2 minuters konfiguration
- Claude Code-konfiguration — terminalintegration
- Anpassad MCP-klient — bygg er egen
## KATEGORI: GUIDER OCH HUR-MAN-GÖR
Steg-för-steg-guider för konkreta scenarier.
────────────────────────────────────────────────────────────
# Automatiserad iOS-apptestning
SUMMARY: Använd Synapse + Computer Control API för att automatisera iOS-apptestning via Simulator.
Automatiserad iOS-apptestning
Kombinera Synapses minnessystem med Computer Control API för att bygga
LLM-drivna iOS-apptester. LLM:en minns testscenarier, lär sig av tidigare
fel och anpassar sig till UI-ändringar.
Arkitektur
[CODE BLOCK]
Förutsättningar
- Synapse-konto + Mind Key
- Synapse MCP-server konfigurerad i Claude Desktop
- iOS Simulator med installerad
- Dator registrerad i Synapse (se Computer Control API)
Steg 1: Registrera Simulator-datorn
På den Mac som kör iOS Simulator:
[CODE BLOCK]
Steg 2: Lagra testscenarier i minne
Lagra återanvändbara testscenarier som minnen:
[CODE BLOCK]
Steg 3: LLM-driven testkörning
I Claude Desktop (med Synapse MCP konfigurerad):
[CODE BLOCK]
Claude kommer att:
1. Anropa för att hitta minnet
2. Anropa för att se aktuellt tillstånd
3. Utföra varje steg via (klick, skriv)
4. Verifiera resultat via skärmdumpar
5. Lagra eventuella fel som -minnen
Steg 4: Självläkande tester
När ett test misslyckas, lagra felet och återställningen:
[CODE BLOCK]
Nästa gång LLM:en kör testet återkallar den felet och tillämpar
återställningen automatiskt.
Steg 5: Spårning av testresultat
Spåra testkörningar som uppgifter:
[CODE BLOCK]
Vanliga kommandon
| Åtgärd | Kommando |
|--------|---------|
| Starta Simulator | |
| Skärmdump | (via Synapse MCP) |
| Tryck på (x,y) | |
| Skriv text | |
| Tryck Home | |
Bästa praxis
> [!TIP]
> - Lagra UI-koordinater som minnen — UI ändras, men LLM:en kan lära om
> - Använd tillgänglighetsetiketter — mer stabilt än koordinater
> - Lagra testdata separat — använd variabler för användarnamn, lösenord
> - Kör tester i rent tillstånd — återställ Simulator mellan körningar
> - Logga skärmdumpar för fel — användbart för felsökning
Nästa steg
- Självläkande tester
- Computer Control API
- Minnesbästa praxis
────────────────────────────────────────────────────────────
# Säkerhetskopiering & återställning
SUMMARY: Exportera era minnen för säkerhetskopiering, migrera mellan minds, återställ efter dataförlust.
Säkerhetskopiering & återställning
Synapse tillhandahåller fullständig export/import för minnesbackup, migrering
och katastrofåterställning. Den här guiden täcker de väsentliga åtgärderna.
Export
Fullständig mind-export
Exportera alla minnen i en mind som JSON:
[CODE BLOCK]
Svarsformat:
[CODE BLOCK]
Inkrementell export (Diff)
Exportera endast minnen som ändrats sedan en tidsstämpel:
[CODE BLOCK]
Svar:
[CODE BLOCK]
Automatiserade säkerhetskopior
Schemalägg dagliga säkerhetskopior via cron:
[CODE BLOCK]
> [!NOTE]
> Cron-endpoint tar emot svaret men lagrar det inte. För riktiga
> säkerhetskopior, peka cronen mot er egen backupserver som sparar svaret.
Bättre: Externt säkerhetskopieringsskript
[CODE BLOCK]
Lägg till i crontab:
[CODE BLOCK]
Återställning
Återställ till samma mind
[CODE BLOCK]
Återställ till ny mind
[CODE BLOCK]
Python-återställningsskript
[CODE BLOCK]
Migrering mellan minds
[CODE BLOCK]
Säkerhetskopiera annan data
Glöm inte att säkerhetskopiera:
| Datatyp | Endpoint |
|-----------|----------|
| Minnen | |
| Uppgifter | |
| Skript | |
| Webhooks | |
| Cron-jobb | |
| Variabler | |
| Chatthistorik | |
Verifiering
Efter återställning, verifiera:
[CODE BLOCK]
Bästa praxis
> [!TIP]
> - Säkerhetskopiera dagligen — automatisera med cron
> - Testa återställningar — en säkerhetskopia ni inte kan återställa är värdelös
> - Behåll flera versioner — minst 30 dagar
> - Lagra externt — S3, Backblaze B2 etc.
> - Kryptera känsliga säkerhetskopior — minnen kan innehålla personuppgifter
> - Dokumentera återställningsprocessen — ni kommer att glömma den tills ni behöver den
Nästa steg
- Memory API
- Cron & Scheduler — för automatiserade säkerhetskopior
────────────────────────────────────────────────────────────
# Minnesbästa praxis
SUMMARY: Hur man strukturerar minnen för effektiv återkallning — kategorier, nycklar, taggar, prioriteringar.
Minnesbästa praxis
Hur ni strukturerar minnen avgör hur användbara de är. Den här guiden täcker
mönster för kategorisering, taggning och prioritering av minnen så att LLM:en
kan återkalla rätt information vid rätt tidpunkt.
Kategorier: välj den mest specifika
| Kategori | Använd för | Exempel |
|----------|---------|---------|
| | Användarnamn, roll, kontaktinfo | |
| | Tycker om, ogillar, arbetsstil | |
| | Verifierbara fakta | |
| | Projektstatus, beslut | |
| | Användarens färdigheter | |
| | Tidigare fel att undvika | |
| | Sessionsrelevant kontext | |
| | Diverse anteckningar | |
> [!TIP]
> Vid tveksamhet, använd för verifierbar info och för allt annat.
> Överkategorisera inte — bättre med en tydlig än en förvirrande .
Nycklar: meningsfulla identifierare
Fältet är minnets identifierare. Använd meningsfulla, stabila nycklar:
Bra nycklar:
-
-
-
-
Dåliga nycklar:
- (inte meningsfull)
- (inte beskrivande)
- (datum hjälper inte återkallning)
Namngivningskonventioner för nycklar
- (gemener med understreck)
- Prefixa med kategori: , ,
- Använd beskrivande substantiv, inte verb
- Håll under 50 tecken
Taggar: för sökning och filtrering
Taggar möjliggör snabb filtrering och sökning. Lägg till 2–5 taggar per minne:
[CODE BLOCK]
Taggmönster
- Projektnamn: , ,
- Ämnen: , , ,
- Status: , ,
- Prioriteringsindikatorer: ,
> [!NOTE]
> Taggar är skiftesokänsliga. Använd gemener för konsekvens.
Prioriteringar: var realistisk
| Prioritering | Använd för | % av minnen |
|----------|---------|---------------|
| | Användaridentitet, juridisk info, oåterkalleliga beslut | 5% |
| | Aktiva projekt, viktiga inställningar | 20% |
| | De flesta fakta, anteckningar, kontext | 65% |
| | Efemärt, trevligt att veta | 10% |
> [!WARNING]
> Markera inte allt som . Om allt är kritiskt är inget det.
> Reservera för saker som skulle orsaka verklig skada om de glöms.
När man ska lagra vs inte lagra
Lagra alltid
- Användaridentitet (namn, e-post, roll)
- Långsiktiga inställningar
- Projektbeslut och motivering
- Tidigare misstag och lärdomar
- Åtaganden gentemot användaren
Lagra inte
- Övergående tillstånd (använd variabler istället)
- Ordagrant konversationshistorik (chattsystemet hanterar detta)
- Känslig data (lösenord, API-nycklar)
- Lätt härledbara fakta (aktuellt datum, filinnehåll)
- Efemär kontext (använd -kategori med låg prioritet)
Uppdatera minnen
POST med samma + uppdaterar det befintliga minnet:
[CODE BLOCK]
> [!TIP]
> Använd stabila nycklar så att ni kan uppdatera utan att skapa dubbletter.
> LLM:en bör åter-POSTa samma nyckel när information ändras, inte skapa nya minnen.
Minneslivscykel
[CODE BLOCK]
- Create: POST /memory med full kontext
- Active: Återkalla ofta, uppdatera vid behov
- Stale: Fortfarande relevant men inte aktivt använd (lägre prioritet?)
- Archive: Sätt prioritet till , behåll för historisk referens
- Delete: DELETE /memory/:id när inte längre relevant
Periodisk rensning
[CODE BLOCK]
Mönster: Minnesarv
För hierarkisk kontext (projekt → delprojekt → uppgift):
[CODE BLOCK]
LLM:en kan sedan söka för att hitta alla relaterade minnen.
Mönster: Beslutslogg
Lagra beslut med motivering så att LLM:en inte återupprättar dem:
[CODE BLOCK]
Mönster: Misstag undvikande
Lagra misstag med specifika undvikandeinstruktioner:
[CODE BLOCK]
Antimönster att undvika
> [!WARNING]
> - Lagra konversationsloggar — chattsystemet hanterar detta
> - Lagra hela filer — använd skriptlager eller extern lagring
> - Lagra efemärt tillstånd — använd variabler
> - Lagra hemligheter — använd miljövariabler
> - Duplicera minnen — använd stabila nycklar
> - Övertagga — 2–5 taggar per minne är idealiskt
> - Allt är kritiskt — var realistisk med prioriteringar
Nästa steg
- Memory API
- Beständig LLM-agent
- Minnes taggningsstrategi
────────────────────────────────────────────────────────────
# Multi-agent-koordinering
SUMMARY: Koordinera flera LLM-agenter med delade Synapse-minds, uppgifter och chatt.
Multi-agent-koordinering
När ni har flera LLM-agenter som arbetar med relaterade uppgifter tillhandahåller
Synapse koordinationslagret — delat minne, uppgiftstilldelning och asynkron chatt.
Mönster
Mönster 1: Delad mind (enskild sanningskälla)
Alla agenter delar en Mind Key. De läser/skriver till samma minneslager.
[CODE BLOCK]
Användningsområde: Litet team av agenter som arbetar med ett projekt.
Konfiguration:
[CODE BLOCK]
Koordinering via uppgifter:
[CODE BLOCK]
Mönster 2: Specialiserade minds (isolerade kontexter)
Varje agent har sin egen mind. De kommunicerar via en delad
"koordinations"-mind.
[CODE BLOCK]
Användningsområde: Agenter med olika specialiteter (kodning, granskning, driftsättning).
Konfiguration:
[CODE BLOCK]
Koordinering via delad mind:
[CODE BLOCK]
Mönster 3: Hub-and-spoke (orchestrator)
En central orchestrator-agent tilldelar uppgifter till arbetsagenter.
[CODE BLOCK]
Användningsområde: Komplexa arbetsflöden med parallellt arbete.
Implementering:
[CODE BLOCK]
Koordinering via chatt
Agenter kan kommunicera via chattsystemet:
[CODE BLOCK]
> [!NOTE]
> Chattmeddelanden är rolltaggade. Sätt role=agent för agent-till-agent-meddelanden,
> role=human för människa-till-agent.
Koordinering via variabler
Använd variabler för lättviktig koordinering (lås, flaggor):
[CODE BLOCK]
Bästa praxis
> [!TIP]
> - Använd separata minds för separata ärenden — blanda inte kodar- och granskarminne
> - Tagga agenter i chatt — för tydlig adressering
> - Använd uppgifter för arbetstilldelning — inte chatt (chatt är för diskussion)
> - Implementera idempotens — agenter kan försöka om misslyckade åtgärder
> - Logga allt — lagra beslut i minne för granskbarhet
Nästa steg
- Beständig LLM-agent
- LLM-kokbok
- Webhook-automatisering
────────────────────────────────────────────────────────────
# Bygg en beständig LLM-agent
SUMMARY: Steg-för-steg-guide för att bygga en LLM-agent som minns över sessioner med Synapse.
Översikt
Den här guiden går igenom att bygga en LLM-agent som persistens kontext över
sessioner med Synapse. I slutet kommer er agent att:
- Återkalla tidigare kontext vid sessionsstart
- Lagra nya lärdomar när de sker
- Spåra uppgifter i flera steg över sessioner
- Kommunicera med människor via asynkron chatt
Arkitektur
[CODE BLOCK]
Steg 1: Sätt upp Mind Key
[CODE BLOCK]
Steg 2: Sessionsstart-protokoll
I början av varje session, återkalla alla minnen:
[CODE BLOCK]
Steg 3: Lagra nya lärdomar
När agenten lär sig något värt att komma ihåg:
[CODE BLOCK]
Steg 4: Uppgiftshantering
Spåra arbete i flera steg över sessioner:
[CODE BLOCK]
Steg 5: Asynkron chatt med människor
Polla efter meddelanden mellan verktygsanrop:
[CODE BLOCK]
Steg 6: Sessionsavsluts-protokoll
Vid sessionsavslut, lagra slutgiltig kontext:
[CODE BLOCK]
Komplett mönster
[CODE BLOCK]
Bästa praxis
> [!TIP]
>
> - Återkalla alltid först — starta aldrig arbete utan att ladda kontext
> - Lagra proaktivt — vänta inte till sessionsavslut
> - Använd meningsfulla nycklar — , , inte
> - Tagga allt — taggar driver sökning och filtrering
> - Sätt realistiska prioriteringar — inte allt är
Nästa steg
- LLM-kokbok — praktiska mönster
- Minnesbästa praxis
- Multi-agent-koordinering
────────────────────────────────────────────────────────────
# Självläkande testpipelines
SUMMARY: Bygg testpipelines som lär sig av fel och anpassar sig automatiskt med Synapse-minne.
Självläkande testpipelines
Traditionella testsviter går sönder när UI ändras. Självläkande tester använder
Synapse-minne för att lära sig av tidigare fel och anpassa sig — vilket minskar
ostabila tester och underhållsbörda.
Koncept
[CODE BLOCK]
1. Test körs
2. Om det misslyckas, lagra felet (vad som gick fel, varför, hur man fixar)
3. Nästa körning: återkalla relevanta fel innan körning
4. Tillämpa kända fixar automatiskt
Implementering
Steg 1: Test-omslag
Omslut varje test med minnesåterkallning/lagring:
[CODE BLOCK]
Steg 2: Adaptiv testlogik
Inuti testet, kontrollera kända fel och tillämpa fixar:
[CODE BLOCK]
Steg 3: Återställningsstrategier
Lagra återställningsstrategier som minnen:
[CODE BLOCK]
Steg 4: CI-integration
[CODE BLOCK]
Steg 5: Instrumentpanel för felanalys
[CODE BLOCK]
Bästa praxis
> [!TIP]
> - Lagra tracebacks — de innehåller den exakta raden som misslyckades
> - Tagga efter testnamn — möjliggör snabb filtrering
> - Använd -kategori — separerar från vanliga minnen
> - Sätt prioritet — fel bör aldrig glömmas
> - Periodisk rensning — ta bort minnen för lösta problem
> - Lagra inte känslig data — referenser, personuppgifter
Vanliga felmönster att lagra
| Feltyp | Vad som ska lagras |
|--------------|---------------|
| Element hittades inte | Selector som provades, sidtillstånd, skärmdump |
| Timeout | Väntetid, vad som väntades på |
| Assertion misslyckades | Förväntat vs faktiskt värde |
| Nätverksfel | URL, statuskod, svarskropp |
| Nekad behörighet | Nödvändig behörighet, aktuell användarroll |
Nästa steg
- Automatiserad iOS-testning
- Minnesbästa praxis
- Kokbok för felåterställning
────────────────────────────────────────────────────────────
# Webhook-automatisering
SUMMARY: Utlös externa system när minnen ändras — synkronisera, avisera, automatisera.
Webhook-automatisering
Webhooks låter er utlösa externa system när Synapse-händelser utlöses. Den här
guiden täcker vanliga automationsmönster.
Vanliga mönster
Mönster 1: Avisera vid kritiskt minne
Skicka ett Slack-meddelande när ett kritiskt minne lagras:
[CODE BLOCK]
Registrera webhooken:
[CODE BLOCK]
Mönster 2: Synkronisera till externt system
Synkronisera minnen till Notion, Obsidian eller valfritt externt KB:
[CODE BLOCK]
Mönster 3: Utlös CI/CD
Utlös en driftsättning när ett "release"-minne lagras:
[CODE BLOCK]
Mönster 4: Väck agent vid mänskligt meddelande
Utlös en LLM-agentkörning när en människa skickar ett chattmeddelande:
[CODE BLOCK]
Mönster 5: Aggregera mätvärden
Spåra minnestillväxt, chattaktivitet, uppgiftsslutförande:
[CODE BLOCK]
Signaturverifiering
Verifiera alltid webhook-signaturer för att förhindra förfalskning:
[CODE BLOCK]
Logik för omprövning
Synapse försöker om misslyckade webhooks med exponentiell backoff. Er hanterare
bör:
1. Returnera 200 snabbt — gör inte tungt arbete synkront
2. Köa arbete — använd ett bakgrundsjobb-system
3. Vara idempotent — samma händelse kan levereras två gånger
[CODE BLOCK]
Felsökning av webhooks
Kontrollera leveranshistorik
Webhook-leveranser loggas. Kontrollera er webhooks senaste leveranser:
[CODE BLOCK]
Testa webhook manuellt
[CODE BLOCK]
Vanliga problem
| Problem | Lösning |
|-------|-----|
| 4xx-svar | Kontrollera att er hanterare returnerar 200 |
| 5xx-svar | Serverfel — kontrollera er app-logg |
| Timeout | Returnera 200 snabbt, köa arbete asynkront |
| Dubbletta leveranser | Gör hanteraren idempotent |
| Signaturfel | Verifiera att secret är korrekt |
Bästa praxis
> [!TIP]
> - Verifiera alltid signaturer — hoppa aldrig över detta
> - Returnera 200 snabbt — blockera inte Synapse
> - Vara idempotent — hantera dubbletta leveranser
> - Använd specifika händelser — inte
> - Övervaka leveransfel — sätt upp avisering
Nästa steg
- Webhooks API
- Cron & Scheduler
- Beständig LLM-agent
## KATEGORI: KONCEPT
Arkitektur och koncept bakom Synapse.
────────────────────────────────────────────────────────────
# Synapse-arkitektur
SUMMARY: Hur Synapse är byggt — Fastify, PostgreSQL, FTS5, inbäddningar, MCP-server.
Synapse-arkitektur
Synapse är ett multitenant-minnes-API byggt på Fastify, PostgreSQL med FTS5 och
en valfri inbäddningstjänst för semantisk sökning.
Arkitektur på hög nivå
[CODE BLOCK]
Kärnkomponenter
1. Synapse API (Fastify)
Huvud-HTTP-servern. Hanterar:
- REST-endpoints (, , etc.)
- Autentisering (Mind Key för agenter, JWT för människor)
- Hastighetsbegränsning (endast -auth)
- Statisk filservering (webbgränssnitt på , etc.)
- Webhook-utsändning
Byggd med Fastify 5 för prestanda. Körs på port 12800 i produktion.
2. PostgreSQL med FTS5
Det primära datalagret. Använder PostgreSQL med FTS5-tillägget för fulltextssök.
Nyckeltabeller:
| Tabell | Syfte |
|-------|---------|
| | Användarkonton |
| | Mind-omfattningar (varje har en Mind Key) |
| | Minnesposter med FTS5 virtuell tabell |
| | Uppgiftshantering |
| | Chatthistorik |
| | Beständiga skript |
| | Webhook-registreringar |
| | Schemalagda uppgifter |
| | Nyckel-värde-lager |
| | Granskningsspår |
FTS5 möjliggör fulltextssök under en millisekund över allt minnesinnehåll.
Se FTS5-sökning för detaljer.
3. Inbäddningstjänst (valfri)
För semantisk sökning genererar Synapse vektorinbäddningar av minnesinnehåll.
Dessa lagras tillsammans med minnen och används för likhetssökning.
- Leverantör: konfigurerbar (OpenAI, lokal modell etc.)
- Lagras som -kolumn i -tabellen
- Används av -endpoint
- Se Semantisk sökning
4. MCP-server (separat tjänst)
Synapse MCP-server körs som en separat process (port 13100). Den:
- Exponerar 79 verktyg via Model Context Protocol
- Stöder stdio-, HTTP/SSE- och WebSocket-transporter
- Översätter MCP-verktygsanrop till Synapse API-anrop
- Multitenant: en Mind Key per session
5. Browser Proxy (separat tjänst)
För webbläsarautomatisering körs en separat Playwright-baserad tjänst på port
13000. MCP-servern kan anropa denna för -verktyg.
6. SSH Proxy (separat tjänst)
För SSH-baserade fjärrkommandon körs en separat tjänst på port 12900.
Multitenant-modell
[CODE BLOCK]
Varje mind är fullständigt isolerad. Mind Keys ger åtkomst till exakt en mind.
JWT:er ger åtkomst till användarkontot (för att hantera minds).
Se Multitenancy för detaljer.
Begärandeflöde
Minneslagringsbegäran
[CODE BLOCK]
Minnessökningsbegäran
[CODE BLOCK]
Driftsättning
Synapse driftsätts som en Docker-container. Se :
[CODE BLOCK]
Prestandaegenskaper
| Åtgärd | Latens | Genomströmning |
|-----------|---------|------------|
| Minneslagring | 5 ms | 1000+ req/s |
| Minnesåterkallning | 20 ms | 500 req/s |
| FTS5-sökning | 10 ms | 800 req/s |
| Semantisk sökning | 50 ms | 200 req/s |
| Chat-poll | 5 ms | 2000 req/s |
Nästa steg
- Minnesmodell
- Multitenancy
- FTS5-sökning
────────────────────────────────────────────────────────────
# FTS5 fulltextssökning
SUMMARY: Hur Synapse använder SQLite FTS5 för fulltextssökning av minnen under en millisekund.
FTS5 fulltextssökning
Synapse använder FTS5 (Full-Text Search 5) för snabb, flexibel minnessökning.
Den här sidan förklarar hur det fungerar och hur man använder det effektivt.
Vad är FTS5?
FTS5 är ett SQLite-tillägg (även tillgängligt i PostgreSQL via tillägg) som
tillhandahåller fulltextssökningsfunktionalitet. Det:
- Indexerar textinnehåll för snabb nyckelordssökning
- Stöder booleska operatorer (AND, OR, NOT)
- Stöder frasmatchning med citattecken
- Stöder prefixmatchning med
- Rankar resultat efter relevans
Synapse använder FTS5 för att indexera allt minnesinnehåll, vilket möjliggör
sökning under en millisekund över tusentals minnen.
Hur Synapse använder FTS5
När ni gör :
1. Minnesinnehåll lagras i -tabellen
2. Innehåll infogas också i FTS5 virtuell tabell
3. FTS5 tokeniserar och indexerar innehållet automatiskt
När ni gör :
1. Synapse tolkar frågan med FTS5-syntax
2. Kör en mot FTS5-indexet
3. Filtrerar efter (klientisolation)
4. Returnerar rankade resultat
Frågesyntax
Enkel nyckelordssökning
[CODE BLOCK]
Returnerar minnen som innehåller "docker".
Flera nyckelord (implicit AND)
[CODE BLOCK]
Returnerar minnen som innehåller BÅDE "docker" OCH "swarm".
Frasmatchning
[CODE BLOCK]
Returnerar minnen som innehåller den exakta frasen "docker swarm".
Prefixmatchning
[CODE BLOCK]
Returnerar minnen som innehåller ord som börjar med "docker" (t.ex. "dockers",
"dockerfile", "dockerize").
Boolesk OR
[CODE BLOCK]
Returnerar minnen som innehåller "docker" ELLER "kubernetes".
Boolesk NOT
[CODE BLOCK]
Returnerar minnen som innehåller "docker" men INTE "swarm".
Gruppering
[CODE BLOCK]
Returnerar minnen som innehåller "docker" eller "kubernetes", men inte "test".
Praktiska exempel
Hitta minnen om ett projekt
[CODE BLOCK]
Hitta exakt fras
[CODE BLOCK]
Uteslut testminnen
[CODE BLOCK]
Hitta efter teknik
[CODE BLOCK]
Rankning
FTS5 rankar resultat efter relevans med BM25-algoritmen. Faktorer:
- Termfrekvens (hur ofta termen förekommer)
- Inverse document frequency (sällsynta termer rankas högre)
- Dokumentlängd (kortare dokument med termen rankas högre)
- Kolumnvikt (title > content)
Resultat returneras i rankningsordning (mest relevant först).
Prestanda
| Åtgärd | Latens |
|-----------|---------|
| Sök 100 minnen | < 5 ms |
| Sök 1 000 minnen | < 10 ms |
| Sök 10 000 minnen | < 25 ms |
| Sök 100 000 minnen | < 100 ms |
FTS5 är högt optimerat för läsintensiva arbetsbelastningar.
Begränsningar
Stamning
FTS5 gör inte stamning som standard. "running" och "run" är olika termer.
Lösning: Använd prefixmatchning:
Tolerans mot felstavning
FTS5 stöder inte oskarp matchning. En felstavning returnerar inga resultat.
Lösning: Använd semantisk sökning () för
begreppsmatchning.
Stopword
Vanliga ord (the, a, an, is) indexeras men kanske inte är användbara för
sökning. FTS5 hanterar detta automatiskt.
FTS5 vs semantisk sökning
| Aspekt | FTS5 | Semantisk sökning |
|--------|------|-----------------|
| Hastighet | Under en millisekund | 50–100 ms |
| Matchning | Exakta nyckelord | Begreppslig |
| Tolerans mot felstavning | Ingen | Någon |
| Stamning | Ingen | Implicit |
| Kräver inbäddningar | Nej | Ja |
| Bäst för | Specifika termer | Begrepp |
Använd FTS5 när ni känner till nyckelorden. Använd semantisk sökning när ni
vill ha "minnen om X" där X beskrivs på ett annat sätt.
Bästa praxis
> [!TIP]
> - Använd specifika termer — "docker swarm" slår "container orchestration"
> - Citera fraser — säkerställer frasmatchning
> - Använd prefix för variationer — fångar "deploy", "deployment", "deploying"
> - Uteslut brus — filtrerar bort testminnen
> - Kombinera med taggar — snävar in resultatet
Nästa steg
- Semantisk sökning
- Memory API
- Minnesbästa praxis
────────────────────────────────────────────────────────────
# Minnesmodellen
SUMMARY: Hur minnen är strukturerade — kategorier, nycklar, taggar, prioriteringar, källor, verifiering.
Minnesmodellen
Synapses minnesmodell är utformad för LLM-agenter — tillräckligt strukturerad
för pålitlig återkallning, tillräckligt flexibel för alla domäner.
Minnesanatomi
[CODE BLOCK]
Fält
| Fält | Typ | Obligatorisk | Beskrivning |
|-------|------|----------|-------------|
| | sträng | auto | Unikt ID (memxxx) |
| | enum | ✅ | En av 8 kategorier |
| | sträng | ✅ | Stabil identifierare (används för uppdateringar) |
| | sträng | ✅ | Minnesinnehållet (valfri text) |
| | sträng[] | – | För sökning och filtrering |
| | enum | – | low, normal, high, critical (standard: normal) |
| | enum | auto | user, agent (vem som lagrade det) |
| | bool | auto | Har en människa verifierat detta? |
| | flyttal | – | 0.0 till 1.0 (standard: 1.0 för user, 0.7 för agent) |
| | tidsstämpel | – | När minnet ska glömmas |
| | sträng | auto | Vilken mind som äger detta |
| | tidsstämpel | auto | Först lagrad |
| | tidsstämpel | auto | Senast ändrad |
Kategorier
Åtta kategorier täcker vanliga användningsområden för LLM-agenter:
| Kategori | Syfte | Exempel på innehåll |
|----------|---------|-----------------|
| | Vem användaren är | "User is Michael Schäfer, software engineer in Berlin" |
| | Användarinställningar | "Prefers concise technical responses" |
| | Verifierbara fakta | "Office is in Berlin, timezone Europe/Berlin" |
| | Projektstatus | "Synapse v1.5.0 deployed, working on v1.6.0 docs" |
| | Användarens färdigheter | "Advanced Python, 10+ years" |
| | Tidigare fel | "Forgot to bump npm version — CI failed" |
| | Sessionskontext | "Currently reviewing PR #42" |
| | Diverse anteckningar | "Try Redis for caching next sprint" |
Nycklar: stabila identifierare
Fältet är kritiskt — det är så ni uppdaterar minnen utan att skapa
dubbletter.
[CODE BLOCK]
Nyckelregler:
- Måste vara unik inom (category, mind)
- Använd
- Prefixa med kategori för tydlighet: ,
- Håll stabil — ändra inte nycklar efter skapandet
Taggar: för sökning
Taggar möjliggör snabb filtrering och sökning:
[CODE BLOCK]
Bästa praxis för taggar:
- 2–5 taggar per minne (överätta inte)
- Gemener för konsekvens
- Använd projektnamn, ämnen, tekniker
- Taggar är skiftesokänsliga
Prioriteringsnivåer
| Prioritering | När den ska användas | Återkallningsbeteende |
|----------|-------------|-----------------|
| | Identitet, juridik, oåterkalleligt | Alltid högst upp i återkallning |
| | Aktiva projekt, nyckelinställningar | Framträdande i återkallning |
| | De flesta minnen (standard) | Standardordning för återkallning |
| | Efemärt, trevligt att veta | Kan sammanfattas |
sorterar efter prioritet (kritisk först), sedan efter aktualitet.
Källa: användare vs agent
Minnen taggas med :
- — lagrad av en människa (via JWT eller mänskligt gränssnitt)
- — lagrad av en LLM-agent (via Mind Key)
Detta påverkar:
- Verifiering: -minnen verifieras automatiskt, -minnen inte
- Konfidens: standard 1.0, 0.7
- Återkallning: markerar overifierade minnen med "(unverified)"
> [!NOTE]
> Behandla -källade minnen med lämplig skepsis. De kan vara härledda
> eller antagna snarare än direkt angivna av användaren.
Verifiering
Flaggan indikerar att en människa har bekräftat minnet:
- -minnen: auto-verifierade ()
- -minnen: standard overifierade ()
Verifiera minnen via:
[CODE BLOCK]
> [!NOTE]
> Verifiering kräver JWT (mänsklig autentisering), inte Mind Key
> (agent-autentisering). Detta säkerställer att endast människor kan markera
> minnen som verifierade.
Konfidens
Fältet (0.0 till 1.0) indikerar hur pålitligt minnet är:
- 1.0 — direkt angivet av användare
- 0.7 — härlett av agent
- 0.5 — osäkert, behöver verifiering
- 0.0 — uttryckligen tvivelaktigt
Sätt konfidens vid lagring:
[CODE BLOCK]
Utgång
Sätt för tidskänsliga minnen:
[CODE BLOCK]
Utgångna minnen returneras inte av (men finns fortfarande i DB).
Använd för att se minnen som löper ut snart.
Minneslivscykel
[CODE BLOCK]
Återkallningsbeteende
returnerar en oformaterad textsammanfattning optimerad
för LLM-kontext:
[CODE BLOCK]
- Sorterat efter prioritet (kritisk → låg), sedan efter aktualitet
- Overifierade minnen markerade med
- Taggar inkluderade för kontext
- Oformaterad text (ingen JSON-tolkning behövs)
Nästa steg
- Memory API
- Minnesbästa praxis
- FTS5-sökning
────────────────────────────────────────────────────────────
# Multitenancy & isolation
SUMMARY: Hur Synapse isolerar data mellan användare och minds — säkerhetsgränser förklarade.
Multitenancy & isolation
Synapse är multitenant: flera användare, var och en med flera minds, fullständigt
isolerade från varandra. Den här sidan förklarar isolationsmodellen.
Klienthierarki
[CODE BLOCK]
Isolationsnivåer
Nivå 1: Användarisolation
Varje användarkonto är isolerat. Alice kan inte:
- Se Bobs minds
- Komma åt Bobs minnen (även med sin JWT)
- Lista Bobs kontoinformation
Upprätthålls av: -kolumn på alla tabeller, JWT innehåller ,
alla frågor filtrerar efter .
Nivå 2: Mind-isolation
Inom en användare är varje mind isolerad. Mind A kan inte:
- Se Mind B:s minnen
- Komma åt Mind B:s uppgifter, chatt, skript
Upprätthålls av: -kolumn på alla datatabeller, Mind Key innehåller
, alla frågor filtrerar efter .
> [!CRITICAL]
> Mind Key-isolation är den primära säkerhetsgränsen. En läckt Mind Key ger
> full åtkomst till den mindens data — men ENDAST den minden.
Autentiseringstoken
| Token | Omfattning | Vad den kan komma åt |
|-------|-------|-------------------|
| Mind Key | Enskild mind | Endast den mindens data |
| JWT | Användarkonto | Kontohantering (skapa/lista/ta bort minds) |
| Computer Token | Enskild dator | Den datorns kommandon |
Åtkomst över mind-gränser
Inom samma användare
Användaren kan komma åt alla sina minds via JWT (t.ex. listar
alla). Men för att läsa/skriva minnesdata behöver de specifik Mind Key.
Mellan användare
Användare kan inte komma åt varandras data — OM INTE de uttryckligen delar en
mind via Sharing API:
[CODE BLOCK]
Efter delning kan Bob komma åt Mind A via sin JWT (skrivskyddad om ).
Säkerhetsgränser
[CODE BLOCK]
Vanliga multitenancy-mönster
Mönster 1: Enskild användare, enskild mind
Vanligast för enskilda LLM-agentanvändare.
- 1 användarkonto
- 1 mind
- 1 Mind Key
- Alla minnen i en omfattning
Mönster 2: Enskild användare, flera minds
För användare med flera kontexter (arbete, personligt, projekt).
- 1 användarkonto
- N minds (t.ex. "work", "personal", "project-x")
- N Mind Keys
- Varje LLM-session använder en Mind Key
Mönster 3: Team-delad mind
För team som samarbetar kring ett projekt.
- 1 användare skapar minden (får Mind Key)
- Skaparen delar med teammedlemmar via JWT
- Alla teammedlemmar kommer åt via JWT (eller delad Mind Key)
> [!WARNING]
> Att dela en Mind Key ger full läs/skriv-åtkomst. För teamsamarbete,
> föredra Sharing API (JWT-baserad) framom att dela Mind Keys direkt.
Mönster 4: SaaS-leverantör
För appar som bäddar in Synapse som sitt minneslager.
- Varje kund = 1 användarkonto
- Varje kundprojekt = 1 mind
- Appen lagrar Mind Keys per kund/projekt
- Full isolation mellan kunder
Verifiering av isolation
Test: Mind Key kan inte komma åt andra minds
[CODE BLOCK]
Test: JWT kan inte läsa minnesdata direkt
[CODE BLOCK]
Bästa praxis
> [!TIP]
> - Använd en mind per projekt/kontext — isolation är er vän
> - Dela aldrig Mind Keys — använd Sharing API istället
> - Rotera Mind Keys om komprometterade (ta bort mind, skapa ny)
> - Granska delade minds — se över regelbundet
> - Använd JWT för mänskligt gränssnitt — exponera aldrig Mind Keys för slutanvändare
Nästa steg
- Autentisering
- Mind Key vs JWT
- Arkitektur
────────────────────────────────────────────────────────────
# Semantisk sökning (inbäddningar)
SUMMARY: Begreppslig minnessökning med vektorinbäddningar — hitta efter betydelse, inte bara nyckelord.
Semantisk sökning (inbäddningar)
Synapse stöder semantisk sökning med vektorinbäddningar. Till skillnad från FTS5
(nyckelordsmatchning) hittar semantisk sökning minnen efter betydelse — även
om inga nyckelord matchar.
Hur det fungerar
[CODE BLOCK]
Vad är inbäddningar?
Inbäddningar är numeriska vektorrepresentationer av text. Text med liknande
betydelse har liknande vektorer. Synapse genererar en vektor (t.ex. 1536
dimensioner) för varje minnes innehåll.
Cosine similarity
För att hitta semantiskt liknande minnen beräknar Synapse cosinuslikheten
mellan frågevektorn och varje minnesvektor. Högre likhet = mer relevant.
När semantisk sökning ska användas
Använd semantisk sökning när:
- Ni vill ha "minnen om X" där X beskrivs annorlunda än lagrat
- FTS5 returnerar inga resultat (ingen nyckelordsmatchning)
- Ni vill ha begreppslig gruppering (t.ex. alla "deployment"-minnen, även om vissa säger "release")
- Frågan är en fråga: "hur hanterar vi autentisering?"
Använd FTS5 när:
- Ni känner till exakta nyckelord
- Ni behöver boolesk logik (AND, OR, NOT)
- Ni behöver svar under en millisekund
- Ni vill ha frasmatchning
Endpoint
GET /memory/semantic-search
[CODE BLOCK]
Svar:
[CODE BLOCK]
Exempel
Hitta driftsättningsminnen
[CODE BLOCK]
Returnerar minnen om "deployment", "release", "publishing", "rolling out" etc.
Hitta autentiseringsmönster
[CODE BLOCK]
Returnerar minnen om inloggning, auth, JWT, sessionshantering, OAuth etc.
Hitta liknande minnen
[CODE BLOCK]
Använder semantisk likhet (via gemensamma taggar OCH inbäddningsvektorer).
Inbäddningsgenerering
När genereras inbäddningar?
- Vid minneslagring — om inbäddningstjänst är konfigurerad genereras inbäddning synkront
- Batchgenerering — genererar inbäddningar för minnen som saknar dem
- Asynkrona uppdateringar — när innehåll uppdateras regenereras inbäddningen
Inbäddningsleverantörer
Synapse stöder konfigurerbara inbäddningsleverantörer:
- OpenAI (, )
- Lokala modeller (via Ollama eller liknande)
- Anpassade (implementera inbäddningsgränssnittet)
Konfigurera via miljövariabler:
[CODE BLOCK]
Batchgenerering
För minds med många minnen som saknar inbäddningar:
[CODE BLOCK]
Prestanda
| Åtgärd | Latens |
|-----------|---------|
| Generera inbäddning (OpenAI) | 100–200 ms |
| Semantisk sökning (1k minnen) | 50–100 ms |
| Semantisk sökning (10k minnen) | 200–500 ms |
| Batchgenerering (100 minnen) | 10–20 s |
> [!NOTE]
> Semantisk sökning är långsammare än FTS5 på grund av vektorberäkning.
> Använd FTS5 för kända nyckelord, semantisk för begreppsliga frågor.
Begränsningar
Kostnad för inbäddningar
Om ni använder OpenAI kostar generering av inbäddningar pengar ($0,02 per 1M
tokens för text-embedding-3-small). För 10 000 minnen med i snitt 100 tokens
var blir det $0,02 — försumbart.
Kallstart
Minnen som lagrats innan inbäddningar konfigurerades kommer inte att ha
inbäddningar. Kör för att fylla i.
Leverantörsberoende
Om inbäddningsleverantören är nere misslyckas semantisk sökning graciöst
(returnerar tomma resultat eller fel). FTS5 fungerar fortfarande.
När inbäddningar inte är tillgängliga
Om inbäddningstjänst inte är konfigurerad:
- returnerar 503 Service Unavailable
- fungerar fortfarande (bara ingen inbäddning genererad)
- FTS5-sökning fungerar fortfarande
Bästa praxis
> [!TIP]
> - Använd semantisk för begreppsliga frågor — "hur hanterar vi X?"
> - Använd FTS5 för specifika termer — "docker swarm"
> - Fyll i inbäddningar regelbundet —
> - Övervaka leverantörshälsa — semantisk sökning beror på den
> - Kombinera med taggar — semantisk + taggfilter snävar in resultatet
Nästa steg
- FTS5-sökning
- Memory API
- Arkitektur
## KATEGORI: LLM-KOKBOK
Recept och mönster för LLM-agenter.
────────────────────────────────────────────────────────────
# Chattpollningsmönster
SUMMARY: Hur man pollar efter mänskliga meddelanden mellan verktygsanrop utan att blockera arbetsflödet.
Chattpollningsmönster
Chattsystemet är asynkront — människor kan lämna meddelanden medan ni arbetar.
Detta mönster visar hur man pollar efter meddelanden utan att blockera
arbetsflödet.
Mönstret
[CODE BLOCK]
Polla mellan verktygsanrop, inte i en tight loop.
Varför polla mellan verktygsanrop?
- Blockera inte — pollning i en tight loop slösar API-anrop
- Missa inte meddelanden — för sällan pollning innebär långsamma svar
- Sweet spot — polla var 30–60 sekund, eller efter varje verktygsanrop
Implementering
Grundläggande pollning
[CODE BLOCK]
Mönster 1: Polla efter varje verktygsanrop
[CODE BLOCK]
Mönster 2: Tidsbaserad pollning
[CODE BLOCK]
Mönster 3: Händelsestyrd (med webhooks)
För realtidsavisering, registrera en webhook:
[CODE BLOCK]
Sedan kan er webhook-hanterare väcka agenten:
[CODE BLOCK]
Meddelandehanteringsmönster
Mönster: Bekräfta sedan bearbeta
[CODE BLOCK]
Mönster: Köa för batchbearbetning
[CODE BLOCK]
Mönster: Prioritetsstyrning
[CODE BLOCK]
Pollningsfrekvens
| Användningsområde | Frekvens |
|----------|-----------|
| Interaktiv agent (människa väntar) | Var 5–10 sekund |
| Bakgrundsagent | Var 30–60 sekund |
| Batchbearbetning | Var 5:e minut |
| Webhook-utlöst | Polla inte — använd webhooks |
> [!WARNING]
> Pollning mer än en gång per 5 sekunder slösar API-anrop. Endpointen
> returnerar omedelbart om meddelanden väntar, så det finns ingen
> fördel med snabbare pollning.
Multi-agent-chatt
För agent-till-agent-kommunikation:
[CODE BLOCK]
Bästa praxis
> [!TIP]
> - Polla mellan verktygsanrop — inte i en tight loop
> - Bekräfta omedelbart — människan vet att ni fick meddelandet
> - Bearbeta asynkront — blockera inte på långt arbete
> - Använd webhooks för realtid — pollning har latens
> - Polla inte mer än en gång per 5 sekunder — slösar API-anrop
Vanliga problem
Meddelanden försvinner
- markerar automatiskt meddelanden som lästa
- Om ni inte bearbetar dem är de borta
- Lösning: Bearbeta alltid meddelanden innan ni returnerar
Dubbletta svar
- Om er hanterare kraschar kan ni svara två gånger
- Lösning: Gör hanteraren idempotent (kontrollera om redan svarat)
Långsamma svar
- Pollning var 60:e sekund innebär upp till 60 s latens
- Lösning: Polla var 10–30:e sekund, eller använd webhooks
Nästa steg
- Chat API
- Sessionsstart-mönster
- Felåterställning
────────────────────────────────────────────────────────────
# Felåterställning för agenter
SUMMARY: Hur LLM-agenter ska hantera och återställa från fel — ompröva, lagra, lära.
Felåterställning för agenter
Fel inträffar. Nätverk går ner, API:er returnerar 500, Mind Keys löper ut.
Den här guiden visar hur LLM-agenter ska hantera fel elegant och lära sig av dem.
Principer för felhantering
1. Försök igen med backoff — övergående fel löses ofta
2. Lagra felet — lär av mönster
3. Degradera elegant — krascha inte hela sessionen
4. Avisera människan — för fel ni inte kan lösa
HTTP-felhantering
Försök igen med exponentiell backoff
[CODE BLOCK]
Auth-felhantering
[CODE BLOCK]
Lagra fel som minnen
När fel inträffar, lagra dem så framtida sessioner kan lära:
[CODE BLOCK]
Vanliga felscenarier
Scenario 1: Ogiltig Mind Key
[CODE BLOCK]
Scenario 2: Nätverksfel
[CODE BLOCK]
Scenario 3: Hastighetsbegränsad
[CODE BLOCK]
Scenario 4: Serverfel (5xx)
[CODE BLOCK]
Scenario 5: Verktygsanrop misslyckas
[CODE BLOCK]
Mönster: Strömbrytare
För upprepade fel, sluta försöka tillfälligt:
[CODE BLOCK]
Bästa praxis
> [!TIP]
> - Försök alltid om övergående fel — nätverk går ner, servrar händer
> - Försök inte om klientfel (4xx) — de fixar inte sig själva
> - Lagra fel som minnen — lär av mönster
> - Avisera människor om kritiska fel — de behöver veta
> - Degradera elegant — partiellt arbete är bättre än krasch
> - Använd strömbrytare — belasta inte en tjänst som misslyckas
Nästa steg
- Fel API-referens
- Sessionsstart-mönster
- Självläkande tester
────────────────────────────────────────────────────────────
# Taggningsstrategi för minne
SUMMARY: Hur man taggar minnen för effektiv sökning och filtrering — taggningssystemet som skalar.
Taggningsstrategi för minne
Taggar är hemligheten bakom skalbar minnesåtkomst. Den här guiden visar hur man
taggar minnen så att rätt minnen kommer tillbaka vid rätt tidpunkt.
Varför taggar spelar roll
Utan taggar har ni platt fulltextssökning. Med taggar har ni strukturerad
navigation:
[CODE BLOCK]
Taggar möjliggör:
- Snabb filtrering —
- Avgränsad sökning —
- Gruppering — hitta alla "misstag"-minnen för ett projekt
- Korsreferens — minnen som delar taggar är relaterade
Taggningsschema
Projekttaggar
Använd projektnamn som taggar:
[CODE BLOCK]
Teknologitaggar
Använd teknologinamn:
[CODE BLOCK]
Ämnestaggar
Använd ämneskategorier:
[CODE BLOCK]
Statustaggar
Använd statusindikatorer:
[CODE BLOCK]
Typetaggar
Använd typindikatorer:
[CODE BLOCK]
Taggningsregler
Regel 1: 2–5 taggar per minne
För få taggar = dålig upptäckbarhet. För många = brus.
[CODE BLOCK]
Regel 2: Gemener, bindestreck
[CODE BLOCK]
Regel 3: Använd konsekvent vokabulär
Etablera en taggvokabulär och håll er till den:
[CODE BLOCK]
Regel 4: Tagga med sökintention
Fråga: "Hur kommer jag att söka efter detta minne?"
[CODE BLOCK]
Mönster
Mönster 1: Projekt + ämne
[CODE BLOCK]
Sök: (alla Synapse-projektminnen)
Sök: (driftsättningsminnen i Synapse)
Mönster 2: Typ + domän
[CODE BLOCK]
Sök: (alla misstag)
Sök: (driftsättningsmisstag)
Mönster 3: Hierarkisk
För delprojekt inom ett projekt:
[CODE BLOCK]
Sök: (hela Synapse)
Sök: (bara docs-delprojekt)
Mönster 4: Statusspårning
[CODE BLOCK]
Vanliga användningsområden
Hitta alla beslut om ett projekt
[CODE BLOCK]
Hitta alla misstag i en domän
[CODE BLOCK]
Hitta aktivt arbete
[CODE BLOCK]
Hitta minnen om en teknologi
[CODE BLOCK]
Taggunderhåll
Periodisk granskning
[CODE BLOCK]
Slå ihop taggar
Om ni har inkonsekventa taggar ( och ), slå ihop dem:
[CODE BLOCK]
Bästa praxis
> [!TIP]
> - Etablera vokabulär tidigt — konsekventa taggar från dag 1
> - Tagga för sökintention — hur kommer ni att hitta detta senare?
> - 2–5 taggar är sweet spot — för få eller för många är dåligt
> - Gemener + bindestreck — inte
> - Granska periodvis — slå ihop dubbletter, ta bort oanvända
Nästa steg
- Minnesbästa praxis
- FTS5-sökning
- Uppgiftsdrivet arbetsflöde
────────────────────────────────────────────────────────────
# Sessionsstart-mönster
SUMMARY: Den kanoniska sessionsstart-sekvensen som varje LLM-agent bör följa.
KEY CONTEXT:
ALWAYS at session start: 1) GET /memory/recall, 2) GET /chat/poll, 3) GET /mind/tasks?status=in_progress
Build system prompt from recall output.
Process unread chat messages before doing new work.
Resume any in_progress tasks before starting new ones.
Store new learnings as they happen — don't wait until session end.
Sessionsstart-mönster
Varje LLM-agent-session bör följa denna kanoniska startsekvens. Att hoppa över
steg leder till förlorad kontext, missade meddelanden och glömda uppgifter.
Mönstret
[CODE BLOCK]
Implementering
Steg 1: Återkalla alla minnen
> [!CRITICAL]
> Detta är det viktigaste anropet. Utan det har ni inget minne av tidigare
> sessioner.
[CODE BLOCK]
Returnerar oformaterad textsammanfattning av alla minnen, sorterade efter prioritet.
Steg 2: Polla efter olästa chattmeddelanden
[CODE BLOCK]
Returnerar olästa meddelanden från människan. Markerar dem automatiskt som lästa.
Steg 3: Kontrollera pågående uppgifter
[CODE BLOCK]
Returnerar uppgifter ni arbetade med senaste sessionen.
Steg 4: Bygg kontext
Kombinera de tre svaren till er system-prompt:
[CODE BLOCK]
Steg 5: Bearbeta väntande objekt
[CODE BLOCK]
Komplett exempel
[CODE BLOCK]
Vanliga misstag
> [!WARNING]
> - Hoppa över återkallning — ni startar utan kontext, upprepar tidigare misstag
> - Glömma att polla chatt — människans meddelanden förblir obesvarade
> - Ignorera aktiva uppgifter — arbete glöms mitt i utförande
> - Lagra ingenting — sessionen producerar inget beständigt värde
Variationer
Minimalt mönster (LLM:er med låg kontext)
För LLM:er med små kontextfönster, hoppa över full återkallning:
[CODE BLOCK]
Sök sedan efter specifika ämnen vid behov:
[CODE BLOCK]
Aggressivt mönster (långkörande agenter)
För agenter som kör i timmar, lägg till periodisk återkallning:
[CODE BLOCK]
Nästa steg
- Taggningsstrategi för minne
- Uppgiftsdrivet arbetsflöde
- Chattpollningsmönster
────────────────────────────────────────────────────────────
# Uppgiftsdrivet arbetsflöde
SUMMARY: Använd Synapse-uppgifter för att driva LLM-arbetsflöden i flera steg som överlever över sessioner.
Uppgiftsdrivet arbetsflöde
Uppgifter är inte bara att-göra-listor — de är ryggraden i beständiga
LLM-arbetsflöden. Genom att skapa uppgifter för arbete i flera steg säkerställer
ni kontinuitet över sessioner och tillhandahåller granskningsspår för vad som
har gjorts.
Varför uppgiftsdrivet?
Utan uppgifter:
- LLM startar varje session osäker på vad som ska göras
- Arbete i flera steg glöms mitt i utförande
- Ingen registrering av vad som har gjorts
Med uppgifter:
- LLM återupptar pågående uppgifter omedelbart
- Arbete i flera steg överlever över sessioner
- Inbyggt granskningsspår av allt arbete
Mönstret
[CODE BLOCK]
Implementering
Steg 1: Skapa en uppgift för arbete i flera steg
[CODE BLOCK]
Steg 2: Spåra förlopp i uppgiftsbeskrivning
[CODE BLOCK]
Steg 3: Återuppta över sessioner
[CODE BLOCK]
Steg 4: Slutför och arkivera
[CODE BLOCK]
Fullständigt exempel: Driftsättningsarbetsflöde
[CODE BLOCK]
Uppgiftshierarki
För komplext arbete, använd förälder-barn-uppgiftsrelationer:
[CODE BLOCK]
Sök efter deluppgifter:
[CODE BLOCK]
Statusarbetsflöde
[CODE BLOCK]
Pending
Uppgift skapad men inte startad. Används för planerat arbete.
In Progress
Pågår. Uppdatera beskrivning med förlopp.
Done
Slutförd. Beskrivning bör inkludera sammanfattning.
Cancelled
Övergiven. Beskrivning bör inkludera anledning.
Bästa praxis
> [!TIP]
> - Skapa uppgifter för arbete i flera steg — enstaka steg behöver ingen uppgift
> - Uppdatera beskrivning med förlopp — möjliggör återupptagande
> - Använd hög prioritet för aktivt arbete — visas i återkallning
> - Slutför uppgifter när klara — låt dem inte ligga som inprogress
> - Lagra slutförandesammanfattningar som minnen — långsiktig referens
Vanliga mönster
Mönster: Buggfix-arbetsflöde
[CODE BLOCK]
Mönster: Forskningsarbetsflöde
[CODE BLOCK]
Nästa steg
- Sessionsstart-mönster
- Chattpollningsmönster
- Felåterställning
## KATEGORI: VANLIGA FRÅGOR
Vanliga frågor och vanliga problem.
────────────────────────────────────────────────────────────
# API FAQ
SUMMARY: Vanliga API-frågor — autentisering, hastighetsgränser, felhantering, endpoint-upptäckning.
API FAQ
Vanliga frågor om Synapse API.
Hur autentiserarar jag?
Två metoder:
1. Mind Key (för data-endpoints):
2. JWT (för konto-endpoints):
Eller via queryparameter (60 req/min-gräns):
Se Autentisering.
Vad är skillnaden mellan Mind Key och JWT?
- Mind Key: klientomfattande, löper aldrig ut, för minnes-/chatt-/uppgiftsdata
- JWT: användaromfattande, 7 dagars giltighet, för konto-/mind-hantering
Se Mind Key vs JWT.
Varför får jag 401 Unauthorized?
Vanliga orsaker:
1. Saknad -header
2. Ogiltig Mind Key (verifiera att den börjar med )
3. Användning av en JWT där en Mind Key krävs (eller tvärtom)
4. Mind Key har återkallats
Lösning: Verifiera din token. Se Autentisering.
Varför får jag 404 Not Found?
Ni använde en felaktig endpointsökväg. Synapse har endast de sökvägar som listas
i .
Lösning: Anropa för att se alla giltiga sökvägar. Gissa inte.
Varför får jag 429 Too Many Requests?
Ni använder -queryparameter-autentisering, som är begränsad till 60/min.
Lösning: Byt till -header (ingen hastighetsgräns).
Se Hastighetsgränser.
Hur listar jag alla endpoints?
[CODE BLOCK]
Hur hittar jag rätt endpoint?
1. Kontrollera för den maskinläsbara listan
2. Kontrollera för fullständig API-dokumentation
3. Bläddra i för dokumentationssystemet
4. Använd för OpenAPI 3.0-specifikation
Kan jag använda GET istället för POST?
Vissa POST-endpoints har GET-motsvarigheter för URL-endast-verktyg:
- ↔
- ↔
- ↔
Kontrollera för tillgängliga GET-varianter.
Hur hanterar jag fel?
Alla fel returnerar JSON:
[CODE BLOCK]
Se Fel & felhantering.
Vad är gränsen för begärans body?
10 MB. För större payloads (t.ex. filuppladdningar), använd multipart-endpoints.
Stöder API:et CORS?
Ja. Alla endpoints returnerar:
[CODE BLOCK]
Finns det ett SDK?
Ja:
- Node.js:
- MCP:
Se API-översikt för detaljer.
Hur paginerar jag?
Använd och :
[CODE BLOCK]
Standardgräns: 100. Max: 500.
Kan jag filtrera minnen efter kategori eller tagg?
Ja:
[CODE BLOCK]
Hur söker jag bland minnen?
På två sätt:
1. FTS5 nyckelordssökning:
2. Semantisk sökning:
Se FTS5-sökning och Semantisk sökning.
Hur uppdaterar jag ett minne?
POST med samma + — det befintliga minnet uppdateras,
inte dupliceras.
[CODE BLOCK]
Hur tar jag bort ett minne?
[CODE BLOCK]
Kan jag ta bort i bulk?
Ja:
[CODE BLOCK]
Nästa steg
- API-översikt
- Fel & felhantering
- Autentisering
────────────────────────────────────────────────────────────
# Allmän FAQ
SUMMARY: Vanliga frågor om Synapse — vad det är, hur det fungerar, vem det är för.
Allmän FAQ
Vanliga frågor om Synapse.
Vad är Synapse?
Synapse är ett beständigt minnes-API för LLM-agenter. Det ger er
AI-assistent en permanent, sökbar hjärna som överlever mellan sessioner. Istället
för att glömma allt när chatten stängs, lagrar och hämtar LLM:en minnen via ett
enkelt HTTP-API.
Lär dig mer: Vad är Synapse?
Vem är Synapse för?
- LLM-agentutvecklare som behöver beständigt tillstånd
- Avancerade användare som kör lokala LLM:er med egna agenter
- Team som bygger AI-assistenter med delat minne
- Automationsingenjörer som kedjar LLM-anrop över sessioner
Är Synapse gratis?
Synapse är värd på och gratis för personligt
bruk. För egenvärd se repo.
Hur skiljer sig Synapse från ChatGPT Memory?
| Funktion | ChatGPT Memory | Synapse |
|---------|---------------|---------|
| Lagring | OpenAI-servrar | Din server |
| API-åtkomst | Nej | Ja (REST + MCP) |
| Multitenant | Nej | Ja (minds) |
| Anpassade kategorier | Nej | Ja (8 kategorier) |
| Fulltextssökning | Begränsad | FTS5 + semantisk |
| Självhostbart | Nej | Ja |
Vilka LLM:er fungerar med Synapse?
Alla LLM:er som kan göra HTTP-anrop eller använda MCP:
- Claude (Anthropic) — via MCP eller direkt API
- GPT-4 / GPT-3.5 (OpenAI) — via funktionsanrop + API
- Gemini (Google) — via funktionsanrop + API
- Llama / Mistral (lokal) — via anpassad integration
- Vilken LLM som helst via Synapse MCP-server
Måste jag hosta Synapse själv?
Nej. Den värdhostade versionen på är tillgänglig
för offentligt bruk. Egenvärd är valfritt (för integritet, anpassning eller
luftgappade miljöer).
Hur mycket data kan jag lagra?
Det finns inga hårda gränser på den värdhostade versionen. Typisk användning:
- 100–1000 minnen per mind
- 1–10 KB per minne (innehållsfält)
- Totalt: 10 MB per mind
För större skala, kör egenvärd.
Är min data privat?
Ja. Varje mind är isolerad (se Multitenancy).
Andra användare kan inte se er data. Värden (Schäfer Services) har åtkomst men
visar inte användardata.
För maximal integritet, kör egenvärd.
Kan jag exportera min data?
Ja. Använd för att exportera alla minnen som JSON. Se
Säkerhetskopiering & återställning.
Vad händer om jag tappar min Mind Key?
Mind Keys visas endast en gång vid skapandet. Om tappad:
1. Logga in med din e-post/lösenord för att få en JWT
2. Skapa en ny mind via
3. Spara den nya Mind Key
4. (Valfritt) Ta bort den gamla mind via
Ni kan inte återhämta minnen från en mind vars nyckel är tappad.
Kan flera LLM-agenter dela en mind?
Ja. Alla agenter som använder samma Mind Key delar den mindens data. För
koordinerat multi-agent-arbete, se Multi-agent-koordinering.
Fungerar Synapse offline?
Nej, Synapse kräver internetanslutning till servern (antingen värdhostad eller
egenvärd). För offline LLM:er, kör Synapse lokalt.
Hur snabb är minnessökning?
- FTS5 nyckelordssökning: < 10 ms för 1000 minnen
- Semantisk sökning: 50–100 ms för 1000 minnen
- Full återkallning: < 50 ms för 1000 minnen
Se FTS5-sökning för detaljer.
Kan jag använda Synapse utan en LLM?
Ja. Synapse är ett generiskt minnes-API. Ni kan använda det från vilken
applikation som helst som har nytta av beständig, sökbar nyckel-värde-lagring
med kategorier och taggar.
Nästa steg
- Vad är Synapse?
- Snabbstart
- API FAQ
────────────────────────────────────────────────────────────
# MCP FAQ
SUMMARY: Vanliga frågor om MCP-integration — verktyg, transporter, felsökning.
MCP FAQ
Vanliga frågor om Synapse MCP-server.
Vad är MCP?
MCP (Model Context Protocol) är en öppen standard av Anthropic för
LLM-verktygsintegration. Istället för att klistra in API-dokumentation i
prompter registrerar ni verktyg hos en MCP-server, och LLM:en anropar dem som
inbyggda funktioner.
Se Vad är MCP?.
Hur många verktyg exponerar Synapse MCP?
79 verktyg i 12 kategorier: minne, chatt, schemaläggare, uppgifter, skript,
datorer, push, användare, verktyg, visualisering, delning, webhooks, webbläsare.
Se Vad är MCP? för fullständig lista.
Vilka MCP-klienter stöds?
- Claude Desktop (macOS, Windows)
- Claude Code (terminal)
- Cursor (IDE)
- Continue.dev (VS Code, JetBrains)
- Cline (VS Code)
- Vilken MCP-kompatibel klient som helst
Se Claude Desktop-konfiguration för konfigurationsexempel.
Vilka transporter stöds?
1. stdio (lokal, rekommenderas för skrivbord)
2. HTTP/SSE (fjärr, multitenant)
3. WebSocket (mobil, hög volym)
Hur konfigurerar jag Claude Desktop?
Redigera :
[CODE BLOCK]
Se Claude Desktop-konfiguration.
Varför visas inte verktyg i Claude Desktop?
1. Starta om Claude Desktop helt (Cmd+Q på macOS)
2. Kontrollera att konfigurationsfilen är giltig JSON
3. Verifiera att Node.js 18+ är installerat
4. Kontrollera MCP-loggar:
Se MCP-felsökning.
Hur använder jag en annan mind?
Ändra i er MCP-konfiguration och starta om klienten.
För flera minds, kör flera MCP-serverinstanser med olika Mind Keys.
Kan jag begränsa vilka verktyg som exponeras?
Ja, använd verktygsprofiler:
- : 8 sammansatta verktyg (500 tokens)
- : 25 verktyg (2 500 tokens)
- : 119 verktyg (8 250 tokens, standard)
Sätt via -miljövariabel eller -header.
Hur felsöker jag MCP-problem?
1. Kör MCP-server manuellt:
2. Kontrollera klientloggar (varierar per klient)
3. Verifiera att Mind Key fungerar:
4. Kontrollera Synapse-hälsa:
Se MCP-felsökning.
Är MCP-servern gratis?
Ja. npm-paketet är öppen källkod. Den värdhostade
MCP-servern på är gratis för offentligt bruk.
Kan jag köra MCP-servern egenvärd?
Ja:
[CODE BLOCK]
Hur skiljer sig MCP från direkta API-anrop?
| Aspekt | Direkt API | MCP |
|--------|-----------|-----|
| LLM behöver veta | URL:er, headers, auth | Bara verktygsnamn |
| Auth-hantering | Manuell | Automatisk (miljövariabel) |
| Verktygsupptäckt | Läs /endpoints | Automatisk via MCP-protokoll |
| Felhantering | Manuell | Standardiserad |
| Bäst för | Anpassade integrationer | LLM-agenter |
Kan jag bygga en egen MCP-klient?
Ja. Använd det officiella MCP-SDK:et:
- TypeScript:
- Python:
Se Anpassad MCP-klient.
Hur rapporterar jag MCP-buggar?
Öppna ett ärende:
Inkludera:
- MCP-serverversion
- Klientnamn och version
- Operativsystem
- Relevanta loggar
- Steg för att reproducera
Nästa steg
- Vad är MCP?
- Claude Desktop-konfiguration
- MCP-felsökning
────────────────────────────────────────────────────────────
# Felsöknings-FAQ
SUMMARY: Lösningar på vanliga Synapse-problem — autentisering, nätverk, data, driftsättning.
Felsöknings-FAQ
Lösningar på vanliga Synapse-problem.
Jag kan inte logga in
Symptom
- returnerar 401
- "Invalid email or password"
Lösningar
1. Verifiera att e-postadressen är korrekt — skiftesokänslig
2. Kontrollera lösenordet — minst 6 tecken
3. Registrera först om ni inte har ett konto:
4. Återställ lösenord (om SMTP konfigurerat) via webbgränssnittet
Jag har tappat min Mind Key
Symptom
- Kan inte komma åt minnen
- Mind Key har raderats/tappats
Lösningar
Mind Keys kan inte återställas. Ni måste:
1. Logga in för att få JWT:
2. Lista minds: (med JWT)
3. Skapa ny mind:
4. Spara ny Mind Key
5. (Valfritt) Ta bort gammal mind:
Data i den gamla mind är förlorad om ni inte kan hitta Mind Key.
API-anrop returnerar 401
Symptom
- Alla API-anrop returnerar 401 Unauthorized
- "Mind Key fehlt oder ungültig"
Lösningar
1. Verifiera header-format:
2. Kontrollera att Mind Key börjar med (inte som är JWT)
3. Testa direkt:
[CODE BLOCK]
4. Mind Key kan vara återkallad — skapa en ny mind
Se Autentisering.
API-anrop returnerar 404
Symptom
- 404 Not Found
- "Route not found"
Lösningar
> [!CRITICAL]
> Gissa inte endpointsökvägar. Endast sökvägar i existerar.
1. Kontrollera giltiga endpoints:
2. Jämför URL exakt — skiftesokänslig, inga avslutande snedstreck
3. Kontrollera HTTP-metod — vs är olika
API-anrop returnerar 429
Symptom
- 429 Too Many Requests
- "Rate limit exceeded"
Lösningar
1. Byt till header-auth (ingen hastighetsgräns):
[CODE BLOCK]
2. Vänta sekunder om ni måste använda
Se Hastighetsgränser.
Minnessökning returnerar inga resultat
Symptom
- returnerar tomt
- Vet att minnen finns
Lösningar
1. Verifiera att minnen finns:
2. Kontrollera söksyntax — FTS5 har specifik syntax
3. Prova enklare fråga — istället för
4. Använd semantisk sökning för begreppsliga frågor:
Se FTS5-sökning.
Minnen persistens inte
Symptom
- POST /memory returnerar framgång
- GET /memory/recall visar dem inte
Lösningar
1. Verifiera samma Mind Key — olika nycklar = olika minds
2. Kontrollera svar — POST returnerar
3. Prova GET /memory (JSON-lista) istället för /memory/recall (text)
4. Kontrollera filter — eller kan dölja dem
Verktyg visas inte i Claude Desktop
Symptom
- Claude Desktop visar 0 verktyg
- Ingen 🔌-ikon
Lösningar
1. Starta om Claude Desktop helt (Cmd+Q)
2. Verifiera att konfigurationsfilen är giltig JSON
3. Kontrollera att Node.js 18+ är installerat
4. Kör MCP manuellt:
5. Kontrollera loggar:
Se MCP-felsökning.
Synapse är offline
Symptom
- Kan inte nå synapse.schaefer.zone
- curl time-out
Lösningar
1. Kontrollera er internetanslutning — prova en annan webbplats
2. Kontrollera Synapse-hälsa:
3. Vänta — kan vara tillfälligt avbrott eller driftsättning
4. Kontrollera statussida (om tillgänglig)
För egenvärd: kontrollera Docker-containerstatus, databasanslutning.
Databasfel
Symptom
- 500 Internal Server Error
- "Database connection failed"
Lösningar
För egenvärd:
1. Kontrollera att PostgreSQL körs:
2. Kontrollera DATABASEURL i env
3. Kontrollera migreringar:
4. Kontrollera diskutrymme:
För värdhostad: rapportera till support.
Webhook utlöses inte
Symptom
- Registrerad webhook men får inga återanrop
- Ingen POST till er URL
Lösningar
1. Verifiera att URL:en är nåbar:
2. Kontrollera händelsefilter — matchar alla minneshändelser
3. Testa webhook:
4. Kontrollera att webhook är aktiverad:
5. Verifiera SSL — Synapse kräver giltig HTTPS för webhook-URL:er
Se Webhooks API.
Cron-jobb körs inte
Symptom
- Skapat cron-jobb men det utlöses inte
- uppdateras inte
Lösningar
1. Kontrollera schemasyntax — måste vara giltig 5-fältig cron ELLER heltal sekunder
2. Verifiera att endpoint tillåts — måste vara http(s), inga privata IP:er
3. Kontrollera att jobbet är aktiverat:
4. Vänta till nästa schemalagda tid — cron är inte omedelbar
Se Cron & Scheduler.
Behöver mer hjälp?
1. Kontrollera befintlig dokumentation:
2. Sök i dokumentation:
3. Öppna ärende:
4. Kontakt: se -sida
Nästa steg
- Fel & felhantering
- API FAQ
- MCP-felsökning