Память агента
Память агента в Notarium — это не скрытая магия и не отдельная база: это обычные заметки класса agent-memory, которые агент пишет наблюдениями и которые вы можете прочитать, поправить и удалить. Агент запоминает факты через remember_about_user и remember_about_project, а достаёт контекст через recall. Ключевая дисциплина — искать перед записью, чтобы не плодить дубли.
Две оси: о пользователе и о проекте
Память живёт на двух ортогональных осях:
- О пользователе —
remember_about_userпишет долгоживущие факты о вас (предпочтения, контекст, текущая работа) в приватную память вашего личного домена. Одна и та же, в каком бы пространстве вы ни работали — она не подмешивается в каждое пространство. - О проекте —
remember_about_projectпишет память о конкретном проекте в его поддиректорию. Симметрична записи о пользователе, но привязана к проекту.
Обе оси — класс agent-memory. Агент не выбирает ни класс, ни папку, ни пространство: это навязывает сам инструмент. Общее знание, которое должно жить в дереве проекта как user-doc, пишет отдельный инструмент create_note, а не «remember».
Файл на категорию, не файл на наблюдение
remember_about_user(observation, category) дозаписывает наблюдение в файл категории, а не плодит микрофайл на каждый факт. category — это метка («preferences»), не путь. Новая категория — новый файл. Опциональный summary — однострочный дайджест категории, питающий производный индекс профиля.
Поправить или удалить один записанный факт — это правка обычной заметки: edit_note по id memory-заметки (его возвращает remember_*) режимом findReplace (пустой content убирает сниппет) или replace всей категории. Отдельной «адресации по наблюдению» нет — память редактируется теми же словесными режимами, что и любая заметка.
recall ≠ search
Оба инструмента читают, но решают разные задачи:
search | recall | |
|---|---|---|
| Что возвращает | ранжированные сниппеты со score и path | связный контекст-бандл под токен-бюджет |
| Охват | релевантные заметки | релевантные заметки плюс их граф-соседи (depth шагов по графу) |
| Память | видит память (для дедупа) | тянет из знания и из личной памяти |
| Когда звать | найти конкретное, проверить перед записью | собрать контекст вокруг темы для работы |
recall богаче: он обходит граф вокруг найденного и упаковывает результат под budgetTokens, а maxPerSource не даёт одной крупной заметке съесть весь бандл. search — точечный: он и есть механизм «искать перед записью».
Искать перед записью
Память — единственный класс без защиты от дублей по заголовку, поэтому search намеренно покрывает и память агента. Всегда ищите перед записью: это дедупит и знание, и память.
Перед remember_* вызовите search по теме факта. Если категория уже есть — дозапишите в неё через тот же remember_* (он дозаписывает) или поправьте edit_note, а не создавайте синоним.
Что видит владелец
Память скрыта из обычной навигации (дерево, лента, обычный поиск), но не спрятана от вас: она видна отдельной линзой Memory в дереве-проводнике (заметки открываются как обычные, по адресу /m/<id>), а приглушить категорию можно в разделе Agents → Context. Запись в журнале показывает, что именно записал агент — это ваш контроль над тем, что могла подсунуть инъекция. Реорганизовать память вы не можете: секцией владеет агент (плоский набор + производный индекс), но перемещать её технически безопасно — идентичность держится на id заметки.
Дальше
- Контекст-наборы и пины — как приглушить категорию памяти и что грузится на старте.
- Аудит извлечения — что агент искал через
search/recallи нашёл ли. - Интент-инструменты — полный набор инструментов.