# Variables API Variables API는 임시 상태를 위한 빠른 키-값 저장소입니다. (인덱싱되고, 검색 가능하며 구조화된) 메모리와 달리 변수는 빠른 읽기/쓰기 액세스에 최적화되어 있습니다 — 카운터, 플래그, 세션 상태에 적합합니다. ## 엔드포인트 ### POST /var 변수를 설정하거나 업데이트합니다. ```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 단일 변수를 가져옵니다. ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/var/last_session_at ``` 응답: ```json { "key": "last_session_at", "value": "2026-06-27T14:00:00Z", "updated_at": "..." } ``` ### GET /var 모든 변수를 나열합니다. ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/var ``` ### DELETE /var/:key 변수를 삭제합니다. ```bash curl -X DELETE -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/var/last_session_at ``` ## Variables와 Memory 사용 시기 | 사용 사례 | 사용 | |----------|-----| | 사용자 이름, 선호도 | Memory (검색 가능, 구조화) | | 마지막 세션 타임스탬프 | Variable (임시 상태) | | 카운터 (예: 전송된 메시지) | Variable (빈번한 업데이트) | | 워크플로우 상태 ("5단계 중 3단계 완료") | Variable (일시적) | | 긴 형식의 프로젝트 노트 | Memory (전문 인덱싱) | | 재사용 가능한 스크립트 | Script store (이름 지정, 버전 관리) | ## 일반적인 패턴 ### 마지막 세션 추적 ```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) ``` ### 카운터 패턴 ```bash # Increment N=$(curl .../var/api_calls | jq -r .value) curl -X POST .../var -d "{\"key\": \"api_calls\", \"value\": $((N+1))}" ``` ### 기능 플래그 ```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)