# Variables API Variables API เป็น key-value store ที่รวดเร็วสำหรับสถานะชั่วคราว ต่างจาก memory (ซึ่งถูก index, ค้นหาได้ และมีโครงสร้าง) ตรงที่ variable ถูกปรับให้เหมาะกับการอ่าน/เขียนรวดเร็ว — เหมาะสำหรับ counter, flag และสถานะ session ## Endpoints ### POST /var ตั้งหรืออัปเดต variable ```bash curl -X POST https://synapse.schaefer.zone/var \ -H "Authorization: Bearer YOUR_MIND_KEY" \ -H "Content-Type: application/json" \ -d '{"key": "last_session_at", "value": "2026-06-27T14:00:00Z"}' ``` ### GET /var/:key ดึง variable เดียว ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/var/last_session_at ``` Response: ```json { "key": "last_session_at", "value": "2026-06-27T14:00:00Z", "updated_at": "..." } ``` ### GET /var รายการ variable ทั้งหมด ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/var ``` ### DELETE /var/:key ลบ variable ```bash curl -X DELETE -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/var/last_session_at ``` ## เมื่อใดควรใช้ Variables vs Memory | กรณีใช้งาน | ใช้ | |----------|-----| | ชื่อผู้ใช้, ค่ากำหนด | Memory (searchable, structured) | | Last session timestamp | Variable (ephemeral state) | | Counter (เช่น ข้อความที่ส่ง) | Variable (frequent updates) | | สถานะ workflow ("step 3 of 5 done") | Variable (transient) | | Note โปรเจกต์แบบยาว | Memory (full-text indexed) | | Script ที่ใช้ซ้ำ | Script store (named, versioned) | ## รูปแบบทั่วไป ### ติดตาม session ล่าสุด ```bash # At session end curl -X POST .../var -d '{"key": "last_session_at", "value": "'$(date -Iseconds)'"}' # At session start LAST=$(curl .../var/last_session_at | jq -r .value) curl .../memory/diff?since=$(date -d "$LAST" +%s) ``` ### รูปแบบ Counter ```bash # Increment N=$(curl .../var/api_calls | jq -r .value) curl -X POST .../var -d "{\"key\": \"api_calls\", \"value\": $((N+1))}" ``` ### Feature flag ```bash curl -X POST .../var -d '{"key": "feature_x_enabled", "value": "true"}' # Check ENABLED=$(curl .../var/feature_x_enabled | jq -r .value) if [ "$ENABLED" = "true" ]; then ... fi ``` ## ขั้นตอนถัดไป - [Memory API](/docs/api/memory) — สำหรับข้อมูลที่มีโครงสร้างและค้นหาได้ - [Cron & Scheduler](/docs/api/cron)