{"title":"Модель пам'яті","slug":"memory-model","category":"concepts","summary":"Як структуровані спогади — категорії, ключі, теги, пріоритети, джерела, верифікація.","audience":["human","llm"],"tags":["concept","memory","model","structure"],"difficulty":"intermediate","updated":"2026-06-27","word_count":682,"read_minutes":3,"lang":"uk","translated":true,"requested_lang":"uk","content_markdown":"\n# Модель пам'яті\n\nМодель пам'яті Synapse розроблена для LLM-агентів — достатньо структурована для\nнадійного відкликання, достатньо гнучка для будь-якої предметної області.\n\n## Анатомія спогаду\n\n```json\n{\n  \"id\": \"mem_abc123\",\n  \"category\": \"project\",\n  \"key\": \"project_synapse_status\",\n  \"content\": \"Synapse v1.5.0 deployed on vps1. CI green.\",\n  \"tags\": [\"synapse\", \"deployment\", \"v1.5.0\"],\n  \"priority\": \"high\",\n  \"source\": \"agent\",\n  \"verified\": false,\n  \"confidence\": 0.85,\n  \"expires_at\": null,\n  \"mind_id\": \"m_xyz789\",\n  \"created_at\": \"2026-06-27T...\",\n  \"updated_at\": \"2026-06-27T...\"\n}\n```\n\n## Поля\n\n| Поле | Тип | Обов'язкове | Опис |\n|-------|------|----------|-------------|\n| `id` | string | авто | Унікальний ID (mem_xxx) |\n| `category` | enum | ✅ | Одна з 8 категорій |\n| `key` | string | ✅ | Стабільний ідентифікатор (для оновлень) |\n| `content` | string | ✅ | Вміст спогаду (будь-який текст) |\n| `tags` | string[] | – | Для пошуку та фільтрації |\n| `priority` | enum | – | low, normal, high, critical (за замовчуванням: normal) |\n| `source` | enum | авто | user, agent (хто зберіг) |\n| `verified` | bool | авто | Чи верифікувала це людина? |\n| `confidence` | float | – | 0.0 до 1.0 (за замовчуванням: 1.0 для user, 0.7 для agent) |\n| `expires_at` | timestamp | – | Коли забути цей спогад |\n| `mind_id` | string | авто | Якому mind-у належить |\n| `created_at` | timestamp | авто | Перше збереження |\n| `updated_at` | timestamp | авто | Остання зміна |\n\n## Категорії\n\nВісім категорій охоплюють типові варіанти використання LLM-агентів:\n\n| Категорія | Призначення | Приклад вмісту |\n|----------|---------|-----------------|\n| `identity` | Ким є користувач | \"User is Michael Schäfer, software engineer in Berlin\" |\n| `preference` | Уподобання користувача | \"Prefers concise technical responses\" |\n| `fact` | Перевірювані факти | \"Office is in Berlin, timezone Europe/Berlin\" |\n| `project` | Статус проєкту | \"Synapse v1.5.0 deployed, working on v1.6.0 docs\" |\n| `skill` | Навички користувача | \"Advanced Python, 10+ years\" |\n| `mistake` | Минулі помилки | \"Forgot to bump npm version — CI failed\" |\n| `context` | Контекст сесії | \"Currently reviewing PR #42\" |\n| `note` | Різні нотатки | \"Try Redis for caching next sprint\" |\n\n## Ключі: стабільні ідентифікатори\n\nПоле `key` є критичним — воно дозволяє оновлювати спогади без створення\nдублікатів.\n\n```python\n# Перше збереження\nstore(\"project\", \"project_synapse_status\", \"v1.4.0 deployed\", priority=\"high\")\n\n# Оновлення з тим самим ключем (перезаписує, не дублює)\nstore(\"project\", \"project_synapse_status\", \"v1.5.0 deployed\", priority=\"high\")\n```\n\n**Правила ключів:**\n\n- Має бути унікальним у межах (category, mind)\n- Використовуйте `snake_case`\n- Префіксуйте категорією для ясності: `preference_communication`, `mistake_npm_version`\n- Тримайте стабільними — не змінюйте ключі після створення\n\n## Теги: для пошуку\n\nТеги забезпечують швидку фільтрацію та пошук:\n\n```bash\n# Знайти всі спогади з тегом \"docker\"\nGET /memory/by-tag?tag=docker\n\n# Пошук FTS5 у межах підмножини з тегом\nGET /memory/search?q=swarm&tag=docker\n```\n\n**Найкращі практики тегів:**\n\n- 2-5 тегів на спогад (не перетегуйте)\n- Нижній регістр для узгодженості\n- Використовуйте назви проєктів, тем, технологій\n- Теги нечутливі до регістру\n\n## Рівні пріоритету\n\n| Пріоритет | Коли використовувати | Поведінка відкликання |\n|----------|-------------|-----------------|\n| `critical` | Ідентичність, юридична інформація, незворотне | Завжди на початку відкликання |\n| `high` | Активні проєкти, ключові уподобання | Помітне у відкликанні |\n| `normal` | Більшість спогадів (за замовчуванням) | Стандартний порядок відкликання |\n| `low` | Ефемерне, корисно знати | Може бути сумаризовано |\n\n`/memory/recall` сортує за пріоритетом (critical першими), потім за новизною.\n\n## Джерело: користувач проти агента\n\nСпогади позначаються `source`:\n\n- `user` — збережено людиною (через JWT або людський інтерфейс)\n- `agent` — збережено LLM-агентом (через Mind Key)\n\nЦе впливає на:\n\n- **Верифікацію:** спогади `user` авто-верифікуються, `agent` — ні\n- **Впевненість:** `user` за замовчуванням 1.0, `agent` — 0.7\n- **Відкликання:** `/memory/recall` позначає неперевірені спогади як «(unverified)»\n\n> [!NOTE]\n> Ставтеся до спогадів із джерелом `agent` зі здоровим скептицизмом. Вони можуть\n> бути виведені або припущені, а не прямо заявлені користувачем.\n\n## Верифікація\n\nПрапорець `verified` вказує, що людина підтвердила спогад:\n\n- Спогади `user`: авто-верифіковані (`true`)\n- Спогади `agent`: за замовчуванням неперевірені (`false`)\n\nВерифікуйте спогади через:\n\n```bash\ncurl -X POST https://synapse.schaefer.zone/memory/mem_001/verify \\\n  -H \"Authorization: Bearer YOUR_JWT\"\n```\n\n> [!NOTE]\n> Верифікація потребує JWT (автентифікація людини), а не Mind Key (автентифікація\n> агента). Це гарантує, що лише люди можуть позначати спогади як перевірені.\n\n## Впевненість\n\nПоле `confidence` (0.0 до 1.0) вказує, наскільки надійним є спогад:\n\n- 1.0 — прямо заявлено користувачем\n- 0.7 — виведено агентом\n- 0.5 — невпевнено, потребує верифікації\n- 0.0 — прямо сумнівно\n\nВстановлюйте впевненість при збереженні:\n\n```json\n{\n  \"category\": \"preference\",\n  \"key\": \"prefers_dark_mode\",\n  \"content\": \"User seems to prefer dark mode (based on their IDE screenshots)\",\n  \"confidence\": 0.5,\n  \"source\": \"agent\"\n}\n```\n\n## Термін дії\n\nВстановлюйте `expires_at` для спогадів, чутливих до часу:\n\n```json\n{\n  \"category\": \"context\",\n  \"key\": \"current_meeting_topic\",\n  \"content\": \"Discussing Q3 roadmap\",\n  \"expires_at\": \"2026-06-28T00:00:00Z\"\n}\n```\n\nСпогади з минулим терміном не повертаються `/memory/recall` (але все ще\nіснують у БД). Використовуйте `/memory/expiring?within=7d`, щоб побачити\nспогади, термін яких скоро закінчується.\n\n## Життєвий цикл спогаду\n\n```\n                  ┌─────────────────┐\n                  │     Create      │\n                  │  POST /memory   │\n                  └────────┬────────┘\n                           │\n                           ▼\n                  ┌─────────────────┐\n                  │     Active      │ ◀──── PUT /memory/:id (update)\n                  │  (in recall)    │\n                  └────────┬────────┘\n                           │\n              ┌────────────┼────────────┐\n              │            │            │\n              ▼            ▼            ▼\n        ┌──────────┐ ┌──────────┐ ┌──────────┐\n        │ Expired  │ │ Verified │ │ Deleted  │\n        │ (in DB)  │ │ (flag)   │ │ (gone)   │\n        └──────────┘ └──────────┘ └──────────┘\n```\n\n## Поведінка відкликання\n\n`GET /memory/recall` повертає текстове резюме, оптимізоване для контексту LLM:\n\n```\nMind: Michael's Mind\nMemories: 12 total (10 verified, 2 unverified)\n\n[001] identity (CRITICAL) [verified]\n  user_name\n  Michael Schäfer\n  Tags: person, identity\n\n[002] preference (HIGH) [verified]\n  communication_style\n  Prefers concise technical responses\n  Tags: communication\n\n[003] project (HIGH) [unverified]\n  synapse_status\n  v1.5.0 deployed, working on v1.6.0 docs\n  Tags: synapse, deployment\n\n...\n```\n\n- Сортовано за пріоритетом (critical → low), потім за новизною\n- Неперевірені спогади позначено `[unverified]`\n- Теги включено для контексту\n- Звичайний текст (не потрібен розбір JSON)\n\n## Наступні кроки\n\n- [Memory API](/docs/api/memory)\n- [Найкращі практики роботи з пам'яттю](/docs/guides/memory-best-practices)\n- [Пошук FTS5](/docs/concepts/fts5-search)\n","content_html":"<h1>Модель пам&#39;яті</h1>\n<p>Модель пам&#39;яті Synapse розроблена для LLM-агентів — достатньо структурована для\nнадійного відкликання, достатньо гнучка для будь-якої предметної області.</p>\n<h2>Анатомія спогаду</h2>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span>\n  <span class=\"hljs-attr\">&quot;id&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;mem_abc123&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;category&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;project&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;key&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;project_synapse_status&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;content&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;Synapse v1.5.0 deployed on vps1. CI green.&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;tags&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">[</span><span class=\"hljs-string\">&quot;synapse&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;deployment&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;v1.5.0&quot;</span><span class=\"hljs-punctuation\">]</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;priority&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;high&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;source&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;agent&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;verified&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-literal\"><span class=\"hljs-keyword\">false</span></span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;confidence&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-number\">0.85</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;expires_at&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-literal\"><span class=\"hljs-keyword\">null</span></span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;mind_id&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;m_xyz789&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;created_at&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;2026-06-27T...&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;updated_at&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;2026-06-27T...&quot;</span>\n<span class=\"hljs-punctuation\">}</span></code></pre><h2>Поля</h2>\n<table>\n<thead>\n<tr>\n<th>Поле</th>\n<th>Тип</th>\n<th>Обов&#39;язкове</th>\n<th>Опис</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>id</code></td>\n<td>string</td>\n<td>авто</td>\n<td>Унікальний ID (mem_xxx)</td>\n</tr>\n<tr>\n<td><code>category</code></td>\n<td>enum</td>\n<td>✅</td>\n<td>Одна з 8 категорій</td>\n</tr>\n<tr>\n<td><code>key</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Стабільний ідентифікатор (для оновлень)</td>\n</tr>\n<tr>\n<td><code>content</code></td>\n<td>string</td>\n<td>✅</td>\n<td>Вміст спогаду (будь-який текст)</td>\n</tr>\n<tr>\n<td><code>tags</code></td>\n<td>string[]</td>\n<td>–</td>\n<td>Для пошуку та фільтрації</td>\n</tr>\n<tr>\n<td><code>priority</code></td>\n<td>enum</td>\n<td>–</td>\n<td>low, normal, high, critical (за замовчуванням: normal)</td>\n</tr>\n<tr>\n<td><code>source</code></td>\n<td>enum</td>\n<td>авто</td>\n<td>user, agent (хто зберіг)</td>\n</tr>\n<tr>\n<td><code>verified</code></td>\n<td>bool</td>\n<td>авто</td>\n<td>Чи верифікувала це людина?</td>\n</tr>\n<tr>\n<td><code>confidence</code></td>\n<td>float</td>\n<td>–</td>\n<td>0.0 до 1.0 (за замовчуванням: 1.0 для user, 0.7 для agent)</td>\n</tr>\n<tr>\n<td><code>expires_at</code></td>\n<td>timestamp</td>\n<td>–</td>\n<td>Коли забути цей спогад</td>\n</tr>\n<tr>\n<td><code>mind_id</code></td>\n<td>string</td>\n<td>авто</td>\n<td>Якому mind-у належить</td>\n</tr>\n<tr>\n<td><code>created_at</code></td>\n<td>timestamp</td>\n<td>авто</td>\n<td>Перше збереження</td>\n</tr>\n<tr>\n<td><code>updated_at</code></td>\n<td>timestamp</td>\n<td>авто</td>\n<td>Остання зміна</td>\n</tr>\n</tbody></table>\n<h2>Категорії</h2>\n<p>Вісім категорій охоплюють типові варіанти використання LLM-агентів:</p>\n<table>\n<thead>\n<tr>\n<th>Категорія</th>\n<th>Призначення</th>\n<th>Приклад вмісту</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>identity</code></td>\n<td>Ким є користувач</td>\n<td>&quot;User is Michael Schäfer, software engineer in Berlin&quot;</td>\n</tr>\n<tr>\n<td><code>preference</code></td>\n<td>Уподобання користувача</td>\n<td>&quot;Prefers concise technical responses&quot;</td>\n</tr>\n<tr>\n<td><code>fact</code></td>\n<td>Перевірювані факти</td>\n<td>&quot;Office is in Berlin, timezone Europe/Berlin&quot;</td>\n</tr>\n<tr>\n<td><code>project</code></td>\n<td>Статус проєкту</td>\n<td>&quot;Synapse v1.5.0 deployed, working on v1.6.0 docs&quot;</td>\n</tr>\n<tr>\n<td><code>skill</code></td>\n<td>Навички користувача</td>\n<td>&quot;Advanced Python, 10+ years&quot;</td>\n</tr>\n<tr>\n<td><code>mistake</code></td>\n<td>Минулі помилки</td>\n<td>&quot;Forgot to bump npm version — CI failed&quot;</td>\n</tr>\n<tr>\n<td><code>context</code></td>\n<td>Контекст сесії</td>\n<td>&quot;Currently reviewing PR #42&quot;</td>\n</tr>\n<tr>\n<td><code>note</code></td>\n<td>Різні нотатки</td>\n<td>&quot;Try Redis for caching next sprint&quot;</td>\n</tr>\n</tbody></table>\n<h2>Ключі: стабільні ідентифікатори</h2>\n<p>Поле <code>key</code> є критичним — воно дозволяє оновлювати спогади без створення\nдублікатів.</p>\n<pre><code class=\"hljs language-python\"><span class=\"hljs-comment\"># Перше збереження</span>\nstore(<span class=\"hljs-string\">&quot;project&quot;</span>, <span class=\"hljs-string\">&quot;project_synapse_status&quot;</span>, <span class=\"hljs-string\">&quot;v1.4.0 deployed&quot;</span>, priority=<span class=\"hljs-string\">&quot;high&quot;</span>)\n\n<span class=\"hljs-comment\"># Оновлення з тим самим ключем (перезаписує, не дублює)</span>\nstore(<span class=\"hljs-string\">&quot;project&quot;</span>, <span class=\"hljs-string\">&quot;project_synapse_status&quot;</span>, <span class=\"hljs-string\">&quot;v1.5.0 deployed&quot;</span>, priority=<span class=\"hljs-string\">&quot;high&quot;</span>)</code></pre><p><strong>Правила ключів:</strong></p>\n<ul>\n<li>Має бути унікальним у межах (category, mind)</li>\n<li>Використовуйте <code>snake_case</code></li>\n<li>Префіксуйте категорією для ясності: <code>preference_communication</code>, <code>mistake_npm_version</code></li>\n<li>Тримайте стабільними — не змінюйте ключі після створення</li>\n</ul>\n<h2>Теги: для пошуку</h2>\n<p>Теги забезпечують швидку фільтрацію та пошук:</p>\n<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># Знайти всі спогади з тегом &quot;docker&quot;</span>\nGET /memory/by-tag?tag=docker\n\n<span class=\"hljs-comment\"># Пошук FTS5 у межах підмножини з тегом</span>\nGET /memory/search?q=swarm&amp;tag=docker</code></pre><p><strong>Найкращі практики тегів:</strong></p>\n<ul>\n<li>2-5 тегів на спогад (не перетегуйте)</li>\n<li>Нижній регістр для узгодженості</li>\n<li>Використовуйте назви проєктів, тем, технологій</li>\n<li>Теги нечутливі до регістру</li>\n</ul>\n<h2>Рівні пріоритету</h2>\n<table>\n<thead>\n<tr>\n<th>Пріоритет</th>\n<th>Коли використовувати</th>\n<th>Поведінка відкликання</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>critical</code></td>\n<td>Ідентичність, юридична інформація, незворотне</td>\n<td>Завжди на початку відкликання</td>\n</tr>\n<tr>\n<td><code>high</code></td>\n<td>Активні проєкти, ключові уподобання</td>\n<td>Помітне у відкликанні</td>\n</tr>\n<tr>\n<td><code>normal</code></td>\n<td>Більшість спогадів (за замовчуванням)</td>\n<td>Стандартний порядок відкликання</td>\n</tr>\n<tr>\n<td><code>low</code></td>\n<td>Ефемерне, корисно знати</td>\n<td>Може бути сумаризовано</td>\n</tr>\n</tbody></table>\n<p><code>/memory/recall</code> сортує за пріоритетом (critical першими), потім за новизною.</p>\n<h2>Джерело: користувач проти агента</h2>\n<p>Спогади позначаються <code>source</code>:</p>\n<ul>\n<li><code>user</code> — збережено людиною (через JWT або людський інтерфейс)</li>\n<li><code>agent</code> — збережено LLM-агентом (через Mind Key)</li>\n</ul>\n<p>Це впливає на:</p>\n<ul>\n<li><strong>Верифікацію:</strong> спогади <code>user</code> авто-верифікуються, <code>agent</code> — ні</li>\n<li><strong>Впевненість:</strong> <code>user</code> за замовчуванням 1.0, <code>agent</code> — 0.7</li>\n<li><strong>Відкликання:</strong> <code>/memory/recall</code> позначає неперевірені спогади як «(unverified)»</li>\n</ul>\n<div class=\"callout callout-note\">Ставтеся до спогадів із джерелом `agent` зі здоровим скептицизмом. Вони можуть\nбути виведені або припущені, а не прямо заявлені користувачем.</div><h2>Верифікація</h2>\n<p>Прапорець <code>verified</code> вказує, що людина підтвердила спогад:</p>\n<ul>\n<li>Спогади <code>user</code>: авто-верифіковані (<code>true</code>)</li>\n<li>Спогади <code>agent</code>: за замовчуванням неперевірені (<code>false</code>)</li>\n</ul>\n<p>Верифікуйте спогади через:</p>\n<pre><code class=\"hljs language-bash\">curl -X POST https://synapse.schaefer.zone/memory/mem_001/verify \\\n  -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_JWT&quot;</span></code></pre><div class=\"callout callout-note\">Верифікація потребує JWT (автентифікація людини), а не Mind Key (автентифікація\nагента). Це гарантує, що лише люди можуть позначати спогади як перевірені.</div><h2>Впевненість</h2>\n<p>Поле <code>confidence</code> (0.0 до 1.0) вказує, наскільки надійним є спогад:</p>\n<ul>\n<li>1.0 — прямо заявлено користувачем</li>\n<li>0.7 — виведено агентом</li>\n<li>0.5 — невпевнено, потребує верифікації</li>\n<li>0.0 — прямо сумнівно</li>\n</ul>\n<p>Встановлюйте впевненість при збереженні:</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span>\n  <span class=\"hljs-attr\">&quot;category&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;preference&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;key&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;prefers_dark_mode&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;content&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;User seems to prefer dark mode (based on their IDE screenshots)&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;confidence&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-number\">0.5</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;source&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;agent&quot;</span>\n<span class=\"hljs-punctuation\">}</span></code></pre><h2>Термін дії</h2>\n<p>Встановлюйте <code>expires_at</code> для спогадів, чутливих до часу:</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span>\n  <span class=\"hljs-attr\">&quot;category&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;context&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;key&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;current_meeting_topic&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;content&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;Discussing Q3 roadmap&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;expires_at&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;2026-06-28T00:00:00Z&quot;</span>\n<span class=\"hljs-punctuation\">}</span></code></pre><p>Спогади з минулим терміном не повертаються <code>/memory/recall</code> (але все ще\nіснують у БД). Використовуйте <code>/memory/expiring?within=7d</code>, щоб побачити\nспогади, термін яких скоро закінчується.</p>\n<h2>Життєвий цикл спогаду</h2>\n<pre><code class=\"hljs language-plaintext\">                  ┌─────────────────┐\n                  │     Create      │\n                  │  POST /memory   │\n                  └────────┬────────┘\n                           │\n                           ▼\n                  ┌─────────────────┐\n                  │     Active      │ ◀──── PUT /memory/:id (update)\n                  │  (in recall)    │\n                  └────────┬────────┘\n                           │\n              ┌────────────┼────────────┐\n              │            │            │\n              ▼            ▼            ▼\n        ┌──────────┐ ┌──────────┐ ┌──────────┐\n        │ Expired  │ │ Verified │ │ Deleted  │\n        │ (in DB)  │ │ (flag)   │ │ (gone)   │\n        └──────────┘ └──────────┘ └──────────┘</code></pre><h2>Поведінка відкликання</h2>\n<p><code>GET /memory/recall</code> повертає текстове резюме, оптимізоване для контексту LLM:</p>\n<pre><code class=\"hljs language-plaintext\">Mind: Michael&#x27;s Mind\nMemories: 12 total (10 verified, 2 unverified)\n\n[001] identity (CRITICAL) [verified]\n  user_name\n  Michael Schäfer\n  Tags: person, identity\n\n[002] preference (HIGH) [verified]\n  communication_style\n  Prefers concise technical responses\n  Tags: communication\n\n[003] project (HIGH) [unverified]\n  synapse_status\n  v1.5.0 deployed, working on v1.6.0 docs\n  Tags: synapse, deployment\n\n...</code></pre><ul>\n<li>Сортовано за пріоритетом (critical → low), потім за новизною</li>\n<li>Неперевірені спогади позначено <code>[unverified]</code></li>\n<li>Теги включено для контексту</li>\n<li>Звичайний текст (не потрібен розбір JSON)</li>\n</ul>\n<h2>Наступні кроки</h2>\n<ul>\n<li><a href=\"/docs/api/memory\">Memory API</a></li>\n<li><a href=\"/docs/guides/memory-best-practices\">Найкращі практики роботи з пам&#39;яттю</a></li>\n<li><a href=\"/docs/concepts/fts5-search\">Пошук FTS5</a></li>\n</ul>\n","urls":{"html":"/docs/concepts/memory-model","text":"/docs/concepts/memory-model?format=text","json":"/docs/concepts/memory-model?format=json","llm":"/docs/concepts/memory-model?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}