Я работал над чем-то под названием **[Neotoma](/posts/truth-layer-agent-memory)**.[^1]

Пока нечего пробовать. Это не стартовый пост, я не анонсирую продукт и не прошу подписаться. Проблема беспокоила меня уже некоторое время и, что более важно, она активно мешала мне в работе, которую я пытался выполнить.

За последний год я провел много времени, экспериментируя с агентными системами: автоматизируя рабочие процессы, делегируя задачи агентам, позволяя системам работать в течение нескольких сеансов, а не начинать каждый раз с нуля. Снова и снова я натыкаюсь на одну и ту же стену. Системы были способны, зачастую впечатляющими, но я не мог доверять им реальное, постоянное состояние.

Это ограничение было не просто теоретическим. Это было практическим препятствием для автоматизации.

## Системы искусственного интеллекта незаметно меняют роли

Раньше вы просто консультировались: задавали вопрос, получали ответ и двигались дальше. Они действуют все чаще. Они пишут файлы и документы, вызывают инструменты и API, ссылаются на прошлые разговоры в ходе сеансов и принимают цепочки решений с течением времени, не получая явных подсказок для каждого шага.

В этот момент персональные данные перестают быть справочным материалом и начинают становиться *государственными*.

А у государства другие требования.

## То, что постоянно ломается, - это не интеллект, а доверие

Современные системы памяти ИИ построены на удобстве. Они оптимизируют запоминаемость, скорость и беглость речи, а также то, чувствует ли система, что она вас помнит. Ни один из них не построен на основе происхождения, возможности проверки, повторения или четкой причинно-следственной связи.

На практике это означает, что я могу заставить агента сделать что-то один раз, но не решаюсь позволить ему сделать что-то *еще раз*. Память меняется неявно. Контекст смещается. Предположения нарастают. И когда что-то идет не так, я не могу ответить, что изменилось, почему изменилось и примет ли система такое же решение, если я перезапущу ее с нуля.

Это терпимо, когда ИИ дает рекомендации, но не когда он работает.

## Частично проблема заключается в несоответствии категорий

Мы по-прежнему относимся к персональным данным как к заметкам, текстовым фрагментам или свободному контексту. Агенты, тем временем, рассматривают те же данные как входные данные, ограничения, триггеры и долговременное состояние. Вы не можете безопасно автоматизировать работу с данными, которые вы не можете проверить, сравнить, проверить или воспроизвести.

Это не проблема UX. Это системная проблема.

## Чего не хватает, так это базового примитива

Явное, проверяемое, воспроизводимое личное состояние.

Другие домены решили эту проблему уже давно. Базы данных сделали состояние приложения надежным. Журналы событий сделали распределенные системы понятными. Леджеры сделали финансовую историю доступной для проверки. Персональные данные никогда раньше не нуждались в таком уровне строгости, поскольку люди могли хранить контекст в голове или реконструировать его, просматривая записи вручную.

Агенты меняют это предположение.

## Неприятный вывод заключается в том, что правильное выполнение этого действия увеличивает трения.

Изменения состояния не могут быть неявными.

Обновления памяти следует называть операциями, а не побочными эффектами. Входные данные должны быть видимыми, а не предполагаемыми. Историю нужно реконструировать, а не махать рукой.

Вы отказываетесь от магии и принимаете больше церемоний. В противном случае вы и ваши агенты в конечном итоге будете жить вместе, ненадежно, сквозь разные призмы реальности.

Для этого компромисса нет короткого пути. Системы, ориентированные на удобство, и системы, безопасные для агентов, движутся в противоположных направлениях.

## Я отношусь к персональным данным так же, как производственные системы относятся к государству

Это приводит к некоторым неизбежным последствиям. Поведение должно быть основано на контракте: изменения состояния — это явные типизированные операции, а не специальные обновления. Мутации должны быть явными. Ничего "просто обновляет память".

Если агенты собираются действовать, им нужны ограниченные, проверяемые интерфейсы, а не непрозрачные подсказки или встраивания. Повтор имеет такое же значение, как и текущий ответ: возможность объяснить, как вы сюда попали, — это часть истины.

Один и тот же ввод всегда дает один и тот же результат, поскольку уровень памяти детерминирован, а агенты имеют надежный субстрат. Изменения неизменяемы и доступны для запроса, поэтому вы можете видеть состояние объекта в любой момент времени.

Память поступает как из загружаемых вами документов, так и из документов, которые агенты данных записывают во время разговоров. Один структурированный граф объединяет объекты и события, чтобы агенты могли анализировать все это.

Это не эстетические предпочтения. Они терпят неудачу в попытках (и неоднократно терпящих неудачу) автоматизировать реальные рабочие процессы, не теряя при этом доверия к системе, выполняющей эту работу.

## Почему я делаю это именно так

Я держу это в первую очередь MCP и CLI. Нет веб-интерфейса и скрытой памяти. По умолчанию он локальный, с явными интерфейсами для агентов. Я принимаю только то, что явно предоставляю, без автоматического сканирования или фоновой загрузки. Это не упущения, это ограждения. Они усложняют, случайно или иным образом, ложь о том, что знает система и как она туда попала.

Я также задумал сделать его кроссплатформенным и с приоритетом конфиденциальности. Он работает с ChatGPT, Claude и Cursor через MCP и не привязан к одному провайдеру. Ваши данные остаются вашими, контролируются пользователем и никогда не используются для обучения. Это не удобства; они являются предпосылками доверия.

## Чем это не является

Это не приложение для заметок или «второй мозг»; это структурированная основа памяти для агентов.

Это не контролируемая провайдером память ChatGPT или проекты Claude; это ваш собственный субстрат, доступный через MCP, поэтому его может использовать любой агент.

Это не векторное хранилище или слой RAG; это структурированная память, ориентированная на схемы и имеющая происхождение.

Это не автономный агент, механизм рабочего процесса или помощник искусственного интеллекта с невидимой памятью; агенты уровня памяти читают и пишут, а вы управляете ими.


И это еще не то, что я бы назвал надежным. Я пытаюсь создать фундамент, прежде чем притворяться, что гарантии существуют.

## Почему сейчас

Мы нормализуем системы, которые действуют от нашего имени, сохраняют убеждения и накапливают решения с течением времени. Когда эти системы выйдут из строя, а это произойдет, первым вопросом будет: «Как это произошло?»

Прямо сейчас большинство инструментов не смогут ответить на этот вопрос. И за последний год именно эта неспособность была главной причиной, мешавшей мне доверить агентам все, что имело значение. Эта проблема будет масштабироваться.

Появляется агентская сеть. Нам нужен такой, в котором пользователи сохраняют контроль над памятью, а не тот, в котором мы передаем ее централизованным платформам, а агенты действуют от нашего имени, используя непрозрачные и ненадежные методы. Я создаю Neotoma, чтобы обеспечить это: субстрат, который можно проверять, воспроизводить и контролировать пользователем по мере роста агентной сети.

## Предстоящая предварительная версия для разработчиков

Я работаю над выпуском предварительной версии для разработчиков для собственного использования и публичного тестирования. Это будет грубо и явно ненадежно (например, API могут измениться). Его целью будет проверка этих идей на практике, а не продажа чего-либо.

Как я подхожу к сборке: сначала я тестирую ее в своем собственном агентском стеке, чтобы увидеть, где детерминизм и происхождение действительно помогают, а где они мешают. Варианты использования включают в себя:

- **Задачи и выполнение** – задачи, планы, проекты и результаты со сроками выполнения и напоминаниями о последующих действиях.
- **Контакты и отношения** — записи контактов и график отношений, связанные с сообщениями, задачами и событиями.
- **Коммуникации** – сортировка электронной почты, обработка, инициируемая рабочим процессом, и отслеживание разговоров.
- **Финансы** — операции, потоки, доходы, резервы, передача и учет затрат.
- **Ведение учета** — отчеты о покупках, счетах, имуществе и разовые аналитические отчеты.
- **Контент** — публикации, личная история, любимые медиа и источники потребления.
- **Здоровье** – привычки, упражнения и постоянное отслеживание.

Я отдаю приоритет стабильности MCP и минимальному интерфейсу командной строки, прежде чем добавлять больше площади поверхности, объект стресс-тестирования, разрешение отношений и запросы временной шкалы в качестве масштабов использования.

Если эта формулировка находит отклик, значит, работа здесь происходит под открытым небом:
[https://github.com/markmhendrickson/neotoma](https://github.com/markmhendrickson/neotoma)

Пометка репозитория звездочкой — это самый простой способ отслеживать его развитие. Всегда приветствуются мнения людей, думающих об агентных системах и масштабируемом состоянии.

[^1]: Назван в честь рода *Neotoma* (паккраты), известного сбором и сохранением материала.