Разработчик под ником Николай несколько месяцев строил архитектуру ИИ-агента Hermes и гордился четырёхуровневой системой памяти: быстрые факты в memory(), граф знаний в HippoRAG, markdown-база в стиле Karpathy и архив на chromadb с 58 тысячами чанков. Система выглядела надёжной на бумаге — и не работала на практике.
Premortem — метод, описанный Гэри Кляйном в книге «The Power of Intuition» и применявшийся в военной аналитике, — предлагает перевернуть обычное планирование. Вместо вопроса «что может пойти не так» задаётся другой: «это уже сломалось — почему?». Разница принципиальная: мозг иначе генерирует гипотезы, когда провал подаётся как свершившийся факт, а не как абстрактный риск. Николай применил метод к своей системе памяти: написал сценарий «агент три месяца в продакшене, начал нести чушь, забывает факты, путает проекты» — и за 20 минут выписал пять причин.
| Уровень памяти | Технология | Проблема |
|---|---|---|
| L1: memory() | Быстрые факты, инжектируются в каждый turn | Лимит на количество фактов, нет автосохранения |
| L2: HippoRAG | Граф знаний, co-occurrence индексация | Крон три дня не обновлял индекс незаметно для автора |
| L3: LLM Wiki | Markdown-база в стиле Karpathy | Ручное наполнение, которое автор забывал делать |
| L4: MemPalace | Архив на chromadb, 58K чанков | 96% содержимого дублировало state.db, падает при переполнении |
Первая и главная: ни один из четырёх уровней не сохраняет данные автоматически. Без явной команды «запомни это» факт умирает в конце сессии. Четыре уровня хранения — это четыре места, где можно забыть. Вторая причина: каждый уровень может отказать независимо и незаметно. Крон HippoRAG три дня не обновлял индекс из-за сломанного пайплайна — таймер тикал, но работы не было. Третья: MemPalace на 96% содержал сырые сессии, которые уже лежали в state.db с полнотекстовым поиском FTS5. 1,1 ГБ и тысячи строк кода ради функциональности, встроенной в платформу. Четвёртая: команда /kg для управления памятью была описана в профиле агента, но не реализована — пользователь получал «я не знаю такой команды». Пятая: корень всего обнаружился позже, в конфиге: параметр memory.provider: basic возвращал None и не сохранял ничего.
Четырёхуровневая память агента (memory, HippoRAG, LLM Wiki, MemPalace) оказалась нерабочей: ни один уровень не сохраняет данные автоматически без явной команды.
Prism — второй инструмент, форк из репозитория Cranot/super-hermes — работает иначе. Это набор из пяти скилов структурного анализа: prism-full, prism-3way, prism-discover, prism-reflect, prism-scan. Главный — prism-full — состоит из трёх фаз. Нулевая фаза, формально необязательная, требует открыть исходный код и проверить, что задокументировано в теории, реально существует. Николай пропустил её при первом анализе и получил разбор архитектурной мечты, а не реальной системы: хуки синхронизации sync_turn и on_session_end существовали в коде как no-op заглушки — не сломанные, просто пустые.
Первая фаза Prism — проектирование аналитических проходов под конкретный артефакт. Для системы памяти Николай выстроил три прохода. Первый — Claim Extraction & Inversion: берётся каждое утверждение о том, как система должна работать, и проверяется на соответствие реальности. Из пяти шагов pipeline памяти четыре оказались нерабочими. Второй проход — Empirical Claim Audit: каждое число из Premortem-анализа проверяется на источник. «0,42%» — из головы, «900 строк» — реально 774, «96% дублей» — оценка на глаз, не измеренная. Третий проход — Platform Capability Inventory: что платформа даёт из коробки. Итог: 52% кастомного кода дублировало встроенные возможности.
Вторая фаза добавляет adversarial-проверку: находки атакуются собственным автором. Так выяснилось, что «4 из 5 шагов — фикция» — overclaim: шаги 4 и 5 работали, но с ограничениями. А «проблема в архитектуре» оказалась неточной формулировкой — проблема была в конкретном значении конфига.
Третья фаза — синтез через Conservation Law: структурное свойство, которое не исчезает от починки отдельных частей. Для памяти Hermes оно звучит так: чем больше уровней хранения, тем меньше автоматики, которая их наполняет. Решение не в добавлении уровней, а в том, чтобы хотя бы один работал без ручного вмешательства.
В связке Premortem и Prism дают разное: первый находит симптомы, работая от катастрофы назад; второй объясняет, почему симптомы предопределены архитектурно. Оба инструмента опубликованы в открытом доступе на GitHub.


