{"title":"Variables API","slug":"variables","category":"api","summary":"تخزين سريع للقيم الأساسية لحالة LLM — عدّادات، أعلام، طوابع زمنية لآخر مشاهدة، تقدّم جزئي.","audience":["human","llm"],"tags":["api","variables","kv-store","state"],"difficulty":"beginner","updated":"2026-06-27","word_count":166,"read_minutes":1,"llm_context":"Auth: Mind Key\nSet: POST /var { key, value }\nGet: GET /var/:key\nList: GET /var\nDelete: DELETE /var/:key\nUse case: store last-seen timestamps, counters, flags, partial workflow state\nFaster than memory (PostgreSQL direct, no FTS5 indexing)\nNot for: structured facts (use /memory), long content (use /script)\n","lang":"ar","translated":true,"requested_lang":"ar","content_markdown":"\n# Variables API\n\nVariables API تخزين سريع للقيم الأساسية للحالة المؤقتة. على عكس\nالذكريات (المُفهرَسة والقابلة للبحث والمنظمة)، المتغيرات مُحسّنة\nللوصول السريع للقراءة/الكتابة — مثالية للعدّادات والأعلام وحالة\nالجلسة.\n\n## نقاط النهاية\n\n### POST /var\n\nتعيين متغير أو تحديثه.\n\n```bash\ncurl -X POST https://synapse.schaefer.zone/var \\\n  -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"key\": \"last_session_at\", \"value\": \"2026-06-27T14:00:00Z\"}'\n```\n\n### GET /var/:key\n\nالحصول على متغير واحد.\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     https://synapse.schaefer.zone/var/last_session_at\n```\n\nالاستجابة:\n\n```json\n{ \"key\": \"last_session_at\", \"value\": \"2026-06-27T14:00:00Z\", \"updated_at\": \"...\" }\n```\n\n### GET /var\n\nقائمة بجميع المتغيرات.\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     https://synapse.schaefer.zone/var\n```\n\n### DELETE /var/:key\n\nحذف متغير.\n\n```bash\ncurl -X DELETE -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     https://synapse.schaefer.zone/var/last_session_at\n```\n\n## متى تستخدم المتغيرات مقابل الذاكرة\n\n| حالة الاستخدام | استخدم |\n|----------|-----|\n| اسم المستخدم، التفضيلات | الذاكرة (قابلة للبحث، منظمة) |\n| طابع زمني لآخر جلسة | متغير (حالة مؤقتة) |\n| عدّاد (مثل الرسائل المُرسلة) | متغير (تحديثات متكررة) |\n| حالة سير العمل (\"الخطوة 3 من 5 مكتملة\") | متغير (عابرة) |\n| ملاحظات مشروع طويلة | الذاكرة (مفهرسة بنص كامل) |\n| سكربتات قابلة لإعادة الاستخدام | تخزين السكربتات (مُسمّاة، مُصدَّرة) |\n\n## الأنماط الشائعة\n\n### تتبع آخر جلسة\n\n```bash\n# عند نهاية الجلسة\ncurl -X POST .../var -d '{\"key\": \"last_session_at\", \"value\": \"'$(date -Iseconds)'\"}'\n\n# عند بدء الجلسة\nLAST=$(curl .../var/last_session_at | jq -r .value)\ncurl .../memory/diff?since=$(date -d \"$LAST\" +%s)\n```\n\n### نمط العدّاد\n\n```bash\n# زيادة\nN=$(curl .../var/api_calls | jq -r .value)\ncurl -X POST .../var -d \"{\\\"key\\\": \\\"api_calls\\\", \\\"value\\\": $((N+1))}\"\n```\n\n### أعلام الميزات\n\n```bash\ncurl -X POST .../var -d '{\"key\": \"feature_x_enabled\", \"value\": \"true\"}'\n\n# تحقق\nENABLED=$(curl .../var/feature_x_enabled | jq -r .value)\nif [ \"$ENABLED\" = \"true\" ]; then ... fi\n```\n\n## الخطوات التالية\n\n- [Memory API](/docs/api/memory) — للبيانات المنظمة القابلة للبحث\n- [Cron والمجدول](/docs/api/cron)\n","content_html":"<h1>Variables API</h1>\n<p>Variables API تخزين سريع للقيم الأساسية للحالة المؤقتة. على عكس\nالذكريات (المُفهرَسة والقابلة للبحث والمنظمة)، المتغيرات مُحسّنة\nللوصول السريع للقراءة/الكتابة — مثالية للعدّادات والأعلام وحالة\nالجلسة.</p>\n<h2>نقاط النهاية</h2>\n<h3>POST /var</h3>\n<p>تعيين متغير أو تحديثه.</p>\n<pre><code class=\"hljs language-bash\">curl -X POST https://synapse.schaefer.zone/var \\\n  -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n  -H <span class=\"hljs-string\">&quot;Content-Type: application/json&quot;</span> \\\n  -d <span class=\"hljs-string\">&#x27;{&quot;key&quot;: &quot;last_session_at&quot;, &quot;value&quot;: &quot;2026-06-27T14:00:00Z&quot;}&#x27;</span></code></pre><h3>GET /var/:key</h3>\n<p>الحصول على متغير واحد.</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/var/last_session_at</code></pre><p>الاستجابة:</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span> <span class=\"hljs-attr\">&quot;key&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;last_session_at&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-attr\">&quot;value&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;2026-06-27T14:00:00Z&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-attr\">&quot;updated_at&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;...&quot;</span> <span class=\"hljs-punctuation\">}</span></code></pre><h3>GET /var</h3>\n<p>قائمة بجميع المتغيرات.</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/var</code></pre><h3>DELETE /var/:key</h3>\n<p>حذف متغير.</p>\n<pre><code class=\"hljs language-bash\">curl -X DELETE -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/var/last_session_at</code></pre><h2>متى تستخدم المتغيرات مقابل الذاكرة</h2>\n<table>\n<thead>\n<tr>\n<th>حالة الاستخدام</th>\n<th>استخدم</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>اسم المستخدم، التفضيلات</td>\n<td>الذاكرة (قابلة للبحث، منظمة)</td>\n</tr>\n<tr>\n<td>طابع زمني لآخر جلسة</td>\n<td>متغير (حالة مؤقتة)</td>\n</tr>\n<tr>\n<td>عدّاد (مثل الرسائل المُرسلة)</td>\n<td>متغير (تحديثات متكررة)</td>\n</tr>\n<tr>\n<td>حالة سير العمل (&quot;الخطوة 3 من 5 مكتملة&quot;)</td>\n<td>متغير (عابرة)</td>\n</tr>\n<tr>\n<td>ملاحظات مشروع طويلة</td>\n<td>الذاكرة (مفهرسة بنص كامل)</td>\n</tr>\n<tr>\n<td>سكربتات قابلة لإعادة الاستخدام</td>\n<td>تخزين السكربتات (مُسمّاة، مُصدَّرة)</td>\n</tr>\n</tbody></table>\n<h2>الأنماط الشائعة</h2>\n<h3>تتبع آخر جلسة</h3>\n<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># عند نهاية الجلسة</span>\ncurl -X POST .../var -d <span class=\"hljs-string\">&#x27;{&quot;key&quot;: &quot;last_session_at&quot;, &quot;value&quot;: &quot;&#x27;</span>$(<span class=\"hljs-built_in\">date</span> -Iseconds)<span class=\"hljs-string\">&#x27;&quot;}&#x27;</span>\n\n<span class=\"hljs-comment\"># عند بدء الجلسة</span>\nLAST=$(curl .../var/last_session_at | jq -r .value)\ncurl .../memory/diff?since=$(<span class=\"hljs-built_in\">date</span> -d <span class=\"hljs-string\">&quot;<span class=\"hljs-variable\">$LAST</span>&quot;</span> +%s)</code></pre><h3>نمط العدّاد</h3>\n<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># زيادة</span>\nN=$(curl .../var/api_calls | jq -r .value)\ncurl -X POST .../var -d <span class=\"hljs-string\">&quot;{\\&quot;key\\&quot;: \\&quot;api_calls\\&quot;, \\&quot;value\\&quot;: <span class=\"hljs-subst\">$((N+1)</span>)}&quot;</span></code></pre><h3>أعلام الميزات</h3>\n<pre><code class=\"hljs language-bash\">curl -X POST .../var -d <span class=\"hljs-string\">&#x27;{&quot;key&quot;: &quot;feature_x_enabled&quot;, &quot;value&quot;: &quot;true&quot;}&#x27;</span>\n\n<span class=\"hljs-comment\"># تحقق</span>\nENABLED=$(curl .../var/feature_x_enabled | jq -r .value)\n<span class=\"hljs-keyword\">if</span> [ <span class=\"hljs-string\">&quot;<span class=\"hljs-variable\">$ENABLED</span>&quot;</span> = <span class=\"hljs-string\">&quot;true&quot;</span> ]; <span class=\"hljs-keyword\">then</span> ... <span class=\"hljs-keyword\">fi</span></code></pre><h2>الخطوات التالية</h2>\n<ul>\n<li><a href=\"/docs/api/memory\">Memory API</a> — للبيانات المنظمة القابلة للبحث</li>\n<li><a href=\"/docs/api/cron\">Cron والمجدول</a></li>\n</ul>\n","urls":{"html":"/docs/api/variables","text":"/docs/api/variables?format=text","json":"/docs/api/variables?format=json","llm":"/docs/api/variables?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}