Skip to main content

Hastighetsgränser & kvoter

Principer för hastighetsgränser i Synapse API — Bearer-header (obegränsat), ?key= (60/min), publika endpoints.


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 (Authorization: Bearer) Ingen Per-mind
Mind Key (?key=) 60 req/min Per-IP
JWT (Authorization: Bearer) Ingen Per-användare
Publika endpoints Ingen Global
**Använd alltid `Authorization: Bearer`-headern** när det är möjligt. Den har ingen hastighetsgräns. Använd `?key=` endast för verktyg som inte kan sätta egna headers.

Headers för hastighetsgränser

När ni använder ?key=-autentisering inkluderar svar headers för hastighetsgräns:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 42
X-RateLimit-Reset: 1782567840

När ni överskrider gränsen:

HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
Retry-After: 42
Content-Type: application/json

{
  "statusCode": 429,
  "error": "Too Many Requests",
  "message": "Rate limit exceeded. Use Authorization header for unlimited access."
}

När ni når en hastighetsgräns

Om ni får en 429:

  1. Byt till Authorization-header (rekommenderas):

    # Don't: ?key=YOUR_MIND_KEY (60/min limit)
    curl ".../memory/recall?key=YOUR_MIND_KEY"
    
    # Do: Authorization header (unlimited)
    curl -H "Authorization: Bearer YOUR_MIND_KEY" .../memory/recall
  2. Eller vänta Retry-After sekunder och försök igen.

Varför ?key=-gränsen finns

Queryparametern ?key= är bekväm för URL-endast-verktyg (webbläsare, open-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 ?key=-URL skulle kunna delas och överbelastas. IP-gränsen begränsar skadeomfånget.

Rekommenderade mönster

LLM-agenter

# Always use header auth
headers = {"Authorization": f"Bearer {MIND_KEY}"}
response = requests.get(f"{URL}/memory/recall", headers=headers)

Webbläsarbaserade verktyg

Om ert verktyg bara kan öppna URL:er:

# OK for occasional use (under 60/min)
open "https://synapse.schaefer.zone/memory/recall?key=YOUR_MIND_KEY"

# For frequent use, switch to a tool that supports headers
curl -H "Authorization: Bearer YOUR_MIND_KEY" .../memory/recall

MCP-server

MCP-servrar använder alltid header-autentisering via miljövariabeln SYNAPSE_MIND_KEY — ingen hastighetsgräns gäller.

Massimport

För massåtgärder (t.ex. import av 1000 minnen), använd alltid header-autentisering. Massimport via ?key= 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

# Check your current rate limit status (with ?key= auth)
curl -i "https://synapse.schaefer.zone/memory/stats?key=YOUR_MIND_KEY" | grep -i ratelimit

# Output:
# X-RateLimit-Limit: 60
# X-RateLimit-Remaining: 58
# X-RateLimit-Reset: 1782567840

Nästa steg