{"title":"Модель памяти","slug":"memory-model","category":"concepts","summary":"Как структурированы воспоминания — категории, ключи, теги, приоритеты, источники, верификация.","audience":["human","llm"],"tags":["concept","memory","model","structure"],"difficulty":"intermediate","updated":"2026-06-27","word_count":681,"read_minutes":3,"lang":"ru","translated":true,"requested_lang":"ru","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# First store\nstore(\"project\", \"project_synapse_status\", \"v1.4.0 deployed\", priority=\"high\")\n\n# Update with same key (overwrites, doesn't duplicate)\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# Find all memories with tag \"docker\"\nGET /memory/by-tag?tag=docker\n\n# FTS5 search within tagged subset\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## Источник: user против agent\n\nУ воспоминаний есть тег `source`:\n\n- `user` — сохранено человеком (через JWT или человеко-ориентированный UI)\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\nПоле `confidence` (от 0.0 до 1.0) указывает, насколько надёжно воспоминание:\n\n- 1.0 — прямо заявлено пользователем\n- 0.7 — выведено агентом\n- 0.5 — неопределённое, требует проверки\n- 0.0 — явно сомнительное\n\nУстанавливайте confidence при сохранении:\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                  │     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` возвращает простое текстовое резюме, оптимизированное\nдля контекста 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>Модель памяти</h1>\n<p>Модель памяти 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>Обязательное</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>«User is Michael Schäfer, software engineer in Berlin»</td>\n</tr>\n<tr>\n<td><code>preference</code></td>\n<td>Предпочтения пользователя</td>\n<td>«Prefers concise technical responses»</td>\n</tr>\n<tr>\n<td><code>fact</code></td>\n<td>Проверяемые факты</td>\n<td>«Office is in Berlin, timezone Europe/Berlin»</td>\n</tr>\n<tr>\n<td><code>project</code></td>\n<td>Статус проекта</td>\n<td>«Synapse v1.5.0 deployed, working on v1.6.0 docs»</td>\n</tr>\n<tr>\n<td><code>skill</code></td>\n<td>Навыки пользователя</td>\n<td>«Advanced Python, 10+ years»</td>\n</tr>\n<tr>\n<td><code>mistake</code></td>\n<td>Прошлые ошибки</td>\n<td>«Forgot to bump npm version — CI failed»</td>\n</tr>\n<tr>\n<td><code>context</code></td>\n<td>Контекст сессии</td>\n<td>«Currently reviewing PR #42»</td>\n</tr>\n<tr>\n<td><code>note</code></td>\n<td>Прочие заметки</td>\n<td>«Try Redis for caching next sprint»</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\"># First store</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\"># Update with same key (overwrites, doesn&#x27;t duplicate)</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\"># Find all memories with tag &quot;docker&quot;</span>\nGET /memory/by-tag?tag=docker\n\n<span class=\"hljs-comment\"># FTS5 search within tagged subset</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>Источник: user против agent</h2>\n<p>У воспоминаний есть тег <code>source</code>:</p>\n<ul>\n<li><code>user</code> — сохранено человеком (через JWT или человеко-ориентированный UI)</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(агентская аутентификация). Это гарантирует, что только люди могут\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>Устанавливайте confidence при сохранении:</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>, чтобы увидеть воспоминания, истекающие скоро.</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> возвращает простое текстовое резюме, оптимизированное\nдля контекста 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\">Лучшие практики работы с памятью</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"]}