Limity żądań i przydziały
Polityka limitów żądań dla API Synapse — nagłówek Bearer (bez limitu), ?key= (60/min), endpointy publiczne.
Limity żądań i przydziały
Synapse posiada prostą i przewidywalną politykę limitów żądań, zaprojektowaną w celu zapobiegania nadużyciom, nie blokując jednocześnie prawidłowego użytku.
Polityka limitów żądań
| Metoda autoryzacji | Limit | Zakres |
|---|---|---|
Mind Key (Authorization: Bearer) |
Brak | Na umysł |
Mind Key (?key=) |
60 żądań/min | Na IP |
JWT (Authorization: Bearer) |
Brak | Na użytkownika |
| Endpointy publiczne | Brak | Globalny |
Nagłówki limitu żądań
Gdy używana jest autoryzacja ?key=, odpowiedzi zawierają nagłówki limitu:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 42
X-RateLimit-Reset: 1782567840Po przekroczeniu limitu:
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."
}Po osiągnięciu limitu żądań
W przypadku otrzymania 429:
Przełączyć się na nagłówek Authorization (zalecane):
# Nie: ?key=YOUR_MIND_KEY (limit 60/min) curl ".../memory/recall?key=YOUR_MIND_KEY" # Tak: nagłówek Authorization (bez limitu) curl -H "Authorization: Bearer YOUR_MIND_KEY" .../memory/recallLub odczekać
Retry-Aftersekund i ponowić żądanie.
Dlaczego istnieje limit dla ?key=
Parametr zapytania ?key= jest wygodny dla narzędzi opartych wyłącznie na URL
(przeglądarki, polecenia open), ale niesie ze sobą implikacje bezpieczeństwa i
wydajności:
- Bezpieczeństwo: Parametry zapytania są rejestrowane w logach dostępu serwera, historii przeglądarki i nagłówkach Referer. Ograniczenie użycia zmniejsza ekspozycję.
- Wydajność: Autoryzacja parametrem zapytania wymaga ogranicznika opartego na IP (odpytanie Redis przy każdym żądaniu), co dodaje opóźnienie. Autoryzacja nagłówkiem pomija ten krok.
- Zapobieganie nadużyciom: Wyciekły URL
?key=mógłby zostać udostępniony i masowo wywoływany. Limit IP ogranicza obszar rażenia.
Zalecane wzorce
Agenci LLM
# Zawsze używać autoryzacji nagłówkiem
headers = {"Authorization": f"Bearer {MIND_KEY}"}
response = requests.get(f"{URL}/memory/recall", headers=headers)Narzędzia oparte na przeglądarce
Jeśli narzędzie potrafi tylko otwierać URL-e:
# Dopuszczalne do okazjonalnego użycia (poniżej 60/min)
open "https://synapse.schaefer.zone/memory/recall?key=YOUR_MIND_KEY"
# Do częstego użycia przełączyć się na narzędzie obsługujące nagłówki
curl -H "Authorization: Bearer YOUR_MIND_KEY" .../memory/recallSerwer MCP
Serwery MCP zawsze korzystają z autoryzacji nagłówkiem przez zmienną środowiskową
SYNAPSE_MIND_KEY — limit nie ma zastosowania.
Importy masowe
W przypadku operacji masowych (np. import 1000 wspomnień) zawsze należy używać
autoryzacji nagłówkiem. Importy przez ?key= osiągną limit w ciągu minuty.
Przydziały (poziom umysłu)
Obecnie nie ma przydziałów na poziomie umysłu dotyczących rozmiaru pamięci lub liczby wspomnień. Wszystkie limity znajdują się na poziomie autoryzacji/IP, a nie danych. Może się to zmienić w przyszłości w celu sprawiedliwego współdzielenia w środowisku wielodostępnym.
Monitorowanie użycia
# Sprawdzenie aktualnego statusu limitu (z autoryzacją ?key=)
curl -i "https://synapse.schaefer.zone/memory/stats?key=YOUR_MIND_KEY" | grep -i ratelimit
# Wynik:
# X-RateLimit-Limit: 60
# X-RateLimit-Remaining: 58
# X-RateLimit-Reset: 1782567840