| schema_version | v1 | |||||
|---|---|---|---|---|---|---|
| id | mem-entity-memory-core | |||||
| type | entity | |||||
| title | Memory Core | |||||
| status | active | |||||
| created_at | 2026-04-21 | |||||
| updated_at | 2026-04-21 | |||||
| project | memory-system | |||||
| tags |
|
|||||
| links |
|
|||||
| supersedes | ||||||
| superseded_by | ||||||
| provenance |
|
Memory Core — це ядро системи довгострокової пам'яті. Воно визначає схему документів, правила запису, правила retrieval і link semantics. Memory Core є стабільним і не залежить від конкретної моделі або агента.
Детальна формальна схема v1 описана в skills/core/schema-v1.md. Цей документ лишається high-level описом правил і ролі ядра.
| Тип | Призначення |
|---|---|
concept |
Великі ідеї, гіпотези, напрями розвитку |
decision |
Архітектурні та процесні рішення з мотивацією |
entity |
Конкретні сутності: модулі, сервіси, інструменти, люди |
context |
Опис того, «як тут усе влаштовано»; доменні обмеження |
task |
Execution-layer задачі; execution-state, пріоритет, next action |
note |
Локальні спостереження, тимчасові нотатки, ідеї нижчого рівня |
index |
Навігаційні вузли, summary-огляди підграфів |
Документи без типу не є валідними вузлами пам'яті.
Кожен memory-документ повинен містити такий frontmatter:
---
schema_version: v1
id: mem-{type}-{slug} # унікальний ID, наприклад mem-entity-agent-adapter
type: concept|decision|entity|context|task|note|index
title: {Human-readable title}
status: draft|active|deprecated|superseded|archived
created_at: YYYY-MM-DD
updated_at: YYYY-MM-DD
project: {project-name}
tags:
- {tag}
links:
- type: {link-type} # тип зв'язку з переліку нижче
target: {mem-id} # ID цільового документа
supersedes: [] # ID документів, які цей замінює
superseded_by: [] # ID документів, які замінюють цей
provenance:
source: manual|agent-claude|agent-codex
confidence: high|medium|low
author: {optional-human-author}
agent: {optional-agent-name}
---Документ без усіх обов'язкових полів вважається невалідним і не індексується.
| Статус | Значення |
|---|---|
draft |
Чернетка; може бути неповним або непідтвердженим |
active |
Основне джерело правди; пріоритетне в retrieval |
deprecated |
Застарілий; більше не актуальний, але не замінений |
superseded |
Замінений іншим документом; поле superseded_by має бути заповнене |
archived |
Виведений з активного використання; зберігається як історія |
Правила:
- retrieval надає пріоритет
activeдокументам; - знання не видаляються, а архівуються або позначаються як superseded;
- рішення, що кардинально змінюється, оформлюється новим
decisionізsupersedes, а не редагується.
Для task є окремий execution-state (todo, in-progress, blocked, done), який не дорівнює document status.
| Тип зв'язку | Значення |
|---|---|
related_to |
Тематично пов'язаний |
depends_on |
Залежить від цільового документа |
implements |
Реалізує контракт або рішення з цільового документа |
supersedes |
Замінює цільовий документ |
derived_from |
Виведений з цільового документа |
explains |
Пояснює цільовий документ або сутність |
blocked_by |
Заблокований цільовим документом або задачею |
Посилання в links мають бути не просто raw markdown-links, а семантичними зв'язками з типом.
У v1 links — це масив об'єктів із двома обов'язковими полями:
typetarget
Дублікати однакових пар type + target не допускаються.
Перед створенням нового документа агент завжди виконує write gate:
- Знайти 1-3 canonical-кандидати за тегами, типом і link semantics через
mem-index-vault.md. - Перевірити: чи нова інформація стосується вже існуючої сутності, рішення або контексту?
- Якщо так → оновити наявний canonical doc і змінити
updated_at. - Якщо ні → створити новий документ і одразу лінкувати його до графа.
Новий документ дозволений лише тоді, коли інформацію не можна коректно влити в уже існуючий canonical node.
- Кожна ключова сутність, тема або стабільне знання має один canonical document.
entity,contextі довгоживучіconcept— canonical за замовчуванням.decision— окремий запис, не дублюється.noteне є canonical-джерелом, якщо не піднятий до canonical через консолідацію.
Агент не читає весь vault. Алгоритм retrieval v1:
- Parse intent — виділити тему, сутності, тип запиту, область змін.
- Знайти стартові вузли — читати
memory/indexes/mem-index-vault.md; знайти id за типом і тегами. - Link traversal — обійти
linksзнайдених документів до глибини 2. - Зібрати підграф — максимум 10 документів.
- Стиснути у робочий контекст — виділити constraints, latest decisions, open questions.
Пріоритет читання: entity → task → decision → context → index → note.
За відсутності або застарілості mem-index-vault.md — fallback на grep по frontmatter.
Тригер: 3 або більше note зі спільним тегом або посиланням на той самий canonical node.
Процес:
- Запустити consolidation skill явно (вручну або як окремий агентний pass).
- Агент групує
draftnotes по тегах. - Зливає зміст у відповідний canonical doc.
- Переводить злиті notes у статус
archived.
Автоматичний запуск консолідації у v1 не передбачений.
| Елемент | Правило |
|---|---|
| ID | mem-{type}-{slug} — lowercase, kebab-case |
| Slug | Коротке, значуще ім'я через дефіс: agent-adapter, write-gate |
| Файл | {id}.md — ім'я файлу збігається з id |
| Директорія | Відповідає типу: concepts/, decisions/, entities/ тощо |
Приклад: документ з id: mem-decision-retrieval-policy зберігається у memory/decisions/mem-decision-retrieval-policy.md.
Skill-файли — це .md документи з інструкціями для конкретного агента або моделі.
Розташування: skills/{adapter-name}/skill.md
Skill-файл не змінює Memory Core. Він лише реалізує memory contract у межах конкретного агентного середовища.