Основные понятия
Из этой страницы вы узнаете:
- какие поля есть у записи памяти и откуда они берутся;
- что значат статусы
unverified,staleиconflict; - как связаны записи между собой: версии одного факта, сводки и граф.
Пример на всю страницу: команда договорилась, что staging выкатывается через systemd-юнит app-staging, а правило записано в docs/deploy.md.
Запись памяти
Заголовок раздела «Запись памяти»Запись — это один факт, решение или договорённость. Агент создаёт её инструментом remember, находит — инструментом search. Так выглядит запись в результатах поиска:
{ "id": "4d428a41-e7b0-4f81-a886-f40c6f6c766c", "workspace": "default", "scope": "shared", "content": "staging выкатывается через systemd-юнит app-staging", "source": "agent", "source_id": "docs/deploy.md", "source_hash": "sha256:9f2c…", "source_revision": "a1b2c3d", "fact_key": "deploy.staging.method", "confidence": 0.8, "status": "unverified", "derived_from": [], "score": 2, "graph_relations": [], "created_at": "2026-10-05T09:12:00+00:00", "updated_at": "2026-10-05T09:12:00+00:00"}| Поле | Кто задаёт | Что значит |
|---|---|---|
id | сервер | Уникальный идентификатор записи. Нужен для forget и derived_from. |
workspace | агент | Рабочая область — именованная коллекция внутри проекта. По умолчанию default. |
scope | агент | Ярлык для фильтрации, по умолчанию shared. Доступ не ограничивает (см. ниже). |
content | агент | Текст записи. Секреты в нём заменяются заглушками до сохранения. |
source | агент | Кто сохраняет: по умолчанию owner; встречаются agent, telegram и другие. |
source_id, source_hash, source_revision | агент | Происхождение: документ, хеш его содержимого, версия. См. Источник и свежесть. |
fact_key | агент или архивариус | Ключ темы. Записи с одним ключом сравниваются между собой. |
confidence | агент, архивариус | Уверенность от 0 до 1, по умолчанию 0,5. |
status | сервер | unverified, stale или conflict — вычисляется при каждом поиске. |
derived_from | агент | ID записей, которые эта запись обобщает. |
score | сервер | Релевантность запросу в этом поиске. |
graph_relations | архивариус | Связи с другими записями. |
created_at, updated_at | сервер | Время создания и последнего изменения (ISO 8601). |
remember никогда не удаляет и не перезаписывает существующие записи: каждый вызов добавляет новую. Удаляет только forget, и то мягко — запись пропадает из поиска и графа, а факт удаления остаётся для аудита.
Статусы
Заголовок раздела «Статусы»Статуса verified в MMW нет. Сервер хранит, откуда взялся факт, но не утверждает, что он истинен.
| Статус | Когда | Что делать агенту |
|---|---|---|
unverified | Обычное состояние любой новой записи, даже с source_hash. | Пользоваться, помня об источнике и уверенности. |
stale | Источник изменился: в search или validate_memory передан current_source_hash, отличный от сохранённого; или архивариус отметил запись как опровергнутую новой. | Перечитать источник, обновить факт. |
conflict | Есть другие записи с тем же fact_key в той же рабочей области, но с другим содержимым или хешем источника. | Не выбирать молча — показать расхождение человеку. |
Если подходят несколько статусов, побеждает более тревожный: conflict важнее stale, stale важнее unverified. Сводка получает худший статус из записей, на которых она построена.
scope — ярлык, а не права доступа
Заголовок раздела «scope — ярлык, а не права доступа»scope (по умолчанию shared, часто используют private) — просто метка: по ней можно отфильтровать search и validate_memory. Запись с scope: "private" видят все, у кого есть доступ к проекту.
Кто что видит, определяют другие механизмы:
- в личном аккаунте — проект ключа (см. Рабочие области и проекты);
- в организации — видимость записи: только автор, отдел, проект или вся организация (см. Видимость).
confidence
Заголовок раздела «confidence»Число от 0,0 (не уверен) до 1,0 (уверен), по умолчанию 0,5. Значение вне диапазона отклоняется. Агент задаёт его при записи; архивариус может понизить уверенность старой записи, если новая её уточняет или опровергает.
Хорошая привычка: 0,9 и выше — для того, что прочитано в документе или подтверждено человеком; 0,5 — для выводов агента; ниже — для догадок.
fact_key и версии факта
Заголовок раздела «fact_key и версии факта»fact_key — устойчивое имя темы, например deploy.staging.method. Повторное сохранение с тем же ключом добавляет новую версию; прежние остаются, ничего не удаляется.
fact_key = deploy.staging.method ─────────────────────────────────────────────────────────── v1 «через systemd-юнит app-staging» ─┐ v2 «через Docker Compose, сервис staging» ├─ обе со статусом conflict, ─┘ пока лишнюю не удалят через forgetЕсли содержимое версий совпадает (тот же текст и тот же хеш источника), конфликта нет. Подробно — Конфликты и сводки.
Если вы не задали fact_key, его может присвоить архивариус — служебный ключ вида archivist:полка:кратко.
derived_from — сводки
Заголовок раздела «derived_from — сводки»Когда агент сжимает несколько записей в одну (например, «итоги недели по деплою»), он передаёт их ID в derived_from (до 50 существующих записей). Сводка помнит, из чего собрана, и наследует conflict и stale своих источников — сжатие не прячет нерешённые противоречия.
Связи графа
Заголовок раздела «Связи графа»После сохранения архивариус сравнивает запись с недавними записями той же рабочей области и может построить связи. В результатах поиска они видны в graph_relations:
"graph_relations": [ { "relation": "supersedes", "direction": "outgoing", "weight": 0.9, "target_id": "0b7e…", "preview": "staging выкатывается вручную через scp" }]Типы связей: relates_to (связано), fixes_issue (исправляет проблему), supersedes (заменяет). preview — первые 120 символов связанной записи. Связи с удалёнными или невидимыми вам записями не показываются.