Rate Limits & Quotas
Kebijakan rate limit untuk API Synapse — Bearer header (tidak terbatas), ?key= (60/menit), endpoint publik.
Rate Limits & Quotas
Synapse memiliki kebijakan rate limit yang sederhana dan dapat diprediksi, dirancang untuk mencegah penyalahgunaan tanpa menghambat penggunaan yang sah.
Kebijakan Rate Limit
| Metode Auth | Batas | Cakupan |
|---|---|---|
Mind Key (Authorization: Bearer) |
Tidak ada | Per-mind |
Mind Key (?key=) |
60 req/menit | Per-IP |
JWT (Authorization: Bearer) |
Tidak ada | Per-user |
| Endpoint publik | Tidak ada | Global |
Header Rate Limit
Saat Anda menggunakan autentikasi ?key=, respons menyertakan header rate limit:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 42
X-RateLimit-Reset: 1782567840Saat Anda melebihi batas:
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."
}Saat Anda Mengenai Rate Limit
Jika Anda mendapat 429:
Beralih ke header Authorization (disarankan):
# Jangan: ?key=YOUR_MIND_KEY (batas 60/menit) curl ".../memory/recall?key=YOUR_MIND_KEY" # Lakukan: header Authorization (tidak terbatas) curl -H "Authorization: Bearer YOUR_MIND_KEY" .../memory/recallAtau tunggu
Retry-Afterdetik lalu coba lagi.
Mengapa Batas ?key= Ada
Parameter query ?key= nyaman untuk alat yang hanya menggunakan URL (browser,
perintah open), tetapi memiliki implikasi keamanan dan performa:
- Keamanan: Parameter query dicatat dalam log akses server, riwayat browser, dan header Referer. Membatasi penggunaan mengurangi paparan.
- Performa: Autentikasi parameter query memerlukan rate limiter berbasis IP (pencarian Redis per permintaan), yang menambah latensi. Autentikasi header melewati ini.
- Pencegahan penyalahgunaan: URL
?key=yang bocor dapat dibagikan dan dibombardir. Batas IP membatasi dampak.
Pola yang Disarankan
Agen LLM
# Selalu gunakan autentikasi header
headers = {"Authorization": f"Bearer {MIND_KEY}"}
response = requests.get(f"{URL}/memory/recall", headers=headers)Alat berbasis browser
Jika alat Anda hanya dapat membuka URL:
# OK untuk penggunaan sesekali (di bawah 60/menit)
open "https://synapse.schaefer.zone/memory/recall?key=YOUR_MIND_KEY"
# Untuk penggunaan sering, beralih ke alat yang mendukung header
curl -H "Authorization: Bearer YOUR_MIND_KEY" .../memory/recallMCP server
MCP server selalu menggunakan autentikasi header melalui env var
SYNAPSE_MIND_KEY — tidak ada rate limit yang berlaku.
Impor massal
Untuk operasi massal (mis. mengimpor 1000 memori), selalu gunakan autentikasi
header. Impor massal melalui ?key= akan mengenai rate limit dalam 1 menit.
Quota (Level Mind)
Saat ini tidak ada kuota per-mind untuk ukuran penyimpanan atau jumlah memori. Semua batas ada di level auth/IP, bukan level data. Ini mungkin berubah di masa depan untuk keadilan multi-tenant.
Memantau Penggunaan Anda
# Periksa status rate limit Anda saat ini (dengan autentikasi ?key=)
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