Skip to main content

Authentication & Mind Key

วิธีที่ Synapse authentication ทำงาน: Mind Key สำหรับ agent, JWT สำหรับ human, ?key= สำหรับเครื่องมือ URL-only


Authentication & Mind Key

Synapse ใช้สองวิธี authentication แต่ละวิธีปรับให้เหมาะกับกรณีใช้งานต่างกัน การเข้าใจความแตกต่างเป็นสิ่งจำเป็นสำหรับการสร้าง integration ที่เชื่อถือได้

สองวิธี Auth

วิธี กรณีใช้งาน Rate Limit Expiry
Mind Key LLM agent, เครื่องมืออัตโนมัติ None (header) / 60 ต่อนาที (query) ไม่มี
JWT Human-facing UI, การดำเนินการบัญชี None 7 วัน

Mind Key (สำหรับ Agent)

Mind Key เป็น tenant-scoped API token ใช้ยืนยันตัวตนข้อมูล mind เดียว (memory, task, chat, script ฯลฯ) ใช้สำหรับ:

  • LLM agent เรียก API
  • สคริปต์ automation เบื้องหลัง
  • การกำหนดค่า MCP server
  • integration ที่อยู่ยาวนานใด ๆ

Header authentication (แนะนำ)

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

Query parameter (สำหรับเครื่องมือ URL-only)

curl https://synapse.schaefer.zone/memory/recall?key=mk_yourMindKeyHere
`?key=` query parameter จำกัดที่ **60 request ต่อนาที** Bearer header ไม่จำกัด ใช้ header เมื่อใดก็ตามที่ client ของคุณรองรับ custom header

การสร้าง Mind Key

curl -X POST https://synapse.schaefer.zone/minds \
  -H "Authorization: Bearer YOUR_JWT" \
  -H "Content-Type: application/json" \
  -d '{"name": "Work Mind", "description": "Project memories"}'

Response รวม mind_keyบันทึกทันที แสดงเพียงครั้งเดียว

รายการ mind ของคุณ

curl -H "Authorization: Bearer YOUR_JWT" \
     https://synapse.schaefer.zone/minds

ลบ mind (ย้อนกลับไม่ได้!)

curl -X DELETE -H "Authorization: Bearer YOUR_JWT" \
     https://synapse.schaefer.zone/minds/m_xyz789

JWT (สำหรับ Human)

JWT ยืนยันตัวตน บัญชีผู้ใช้ ไม่ใช่ mind เฉพาะ ใช้สำหรับ:

  • การสมัครและล็อกอินบัญชี
  • สร้าง / รายการ / ลบ mind
  • แชร์ mind กับผู้ใช้อื่น
  • การจัดการ Web Push subscription

สมัคร

curl -X POST https://synapse.schaefer.zone/register \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com", "password": "secret"}'

ส่งกลับ: { "jwt": "eyJ...", "user": {...} }

ล็อกอิน

curl -X POST https://synapse.schaefer.zone/login \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com", "password": "secret"}'

ส่งกลับ: { "jwt": "eyJ...", "user": {...} }

การหมดอายุของ JWT

JWT หมดอายุหลัง 7 วัน เมื่อ JWT หมดอายุ เพียงเรียก /login อีกครั้งเพื่อรับใหม่ Mind Key ไม่หมดอายุ ดังนั้น integration ของ agent ที่มีอยู่ยังทำงานต่อ

แนวทางปฏิบัติด้านความปลอดภัย

รูปแบบ environment variable

# .env (NEVER commit this file)
SYNAPSE_MIND_KEY=mk_yourMindKeyHere
SYNAPSE_URL=https://synapse.schaefer.zone
// Node.js
const mindKey = process.env.SYNAPSE_MIND_KEY;
const url = process.env.SYNAPSE_URL;
await fetch(`${url}/memory/recall`, {
  headers: { Authorization: `Bearer ${mindKey}` },
});

กำหนดค่า MCP server

{
  "mcpServers": {
    "synapse": {
      "command": "npx",
      "args": ["-y", "synapse-mcp-api@latest"],
      "env": {
        "SYNAPSE_MIND_KEY": "mk_yourMindKeyHere",
        "SYNAPSE_URL": "https://synapse.schaefer.zone"
      }
    }
  }
}

รูปแบบ Multi-Mind

ผู้ใช้แต่ละคนสามารถมีหลาย mind รูปแบบทั่วไป:

ชื่อ Mind วัตถุประสงค์
work memory เกี่ยวกับงาน
personal ค่ากำหนดส่วนตัว, ครอบครัว
project-synapse context โปรเจกต์เฉพาะ
learning-german ความคืบหน้าการเรียนรู้
assistant-default fallback สำหรับใช้ทั่วไป

ใช้ Mind Key ต่างกันสำหรับ LLM session ต่างกันเพื่อแยก context

Rate Limit

วิธี Auth Limit Scope
Mind Key (header) None Per-mind
Mind Key (?key=) 60/min Per-IP
JWT (header) None Per-user
Public endpoint None Global

Rate limit header (X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After) รวมอยู่ใน response เมื่อเกี่ยวข้อง

ขั้นตอนถัดไป

  • Mind Key vs JWT — เมื่อใช้อันไหน
  • Memory API — สิ่งที่คุณทำได้กับ Mind Key
  • User API — การจัดการบัญชีด้วย JWT