# Variables API Variables API — это быстрое key-value хранилище для эфемерного состояния. В отличие от воспоминаний (которые индексируются, доступны для поиска и структурированы), переменные оптимизированы для быстрого чтения/записи — идеально для счётчиков, флагов и состояния сессии. ## Эндпоинты ### 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 ``` ## Когда использовать переменные, а когда — память | Сценарий | Использовать | |----------|-----| | Имя пользователя, предпочтения | Память (поиск, структура) | | Временная метка последней сессии | Переменная (эфемерное состояние) | | Счётчик (например, отправлено сообщений) | Переменная (частые обновления) | | Состояние рабочего процесса («выполнен шаг 3 из 5») | Переменная (переходящее) | | Длинные заметки по проекту | Память (полнотекстовая индексация) | | Повторно используемые скрипты | Хранилище скриптов (именованные, версии) | ## Типовые паттерны ### Отслеживание последней сессии ```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 и планировщик](/docs/api/cron)