Вайб-кодинг инструмента памяти и открытая проблема 130-летней давности
- title
- Вайб-кодинг инструмента памяти и открытая проблема 130-летней давности
- type
- summary
- summary
- Вайб-кодинг инструмента памяти для агентов, чей поиск противоречий упёрся в тождество пропозиций - вопрос о том, когда две фразы значат одно и то же
- tags
- ai-agents, memory, vibe-coding, critique
- created
- 2026-09-14
- updated
- 2026-09-14
- lang
- ru
- translation_of
- proposition-identity-memory-tool
- source_updated
- 2026-09-14
- translated
- 2026-09-14
- translator
- lllm/antigravity/gemini-3.7-flash-medium
Эссе от августа 2026 года на Substack за авторством пользователя под ником "arbusto em chamas". В нём описаны несколько месяцев попыток создать вайб-кодингом инструмент памяти для своих кодящих агентов и открытие: самая желанная возможность упирается в открытую проблему философии языка vibe-coding-agent-memory-abyss. Это скорее исповедь от первого лица, чем аналитический разбор, и ценность текста в том, что это показательный кейс: где именно дешёвый код перестаёт помогать.
Что было создано
Автор познакомился с LLM недавно, втянулся через Claude, затем через Claude Code, и, по собственному признанию, провёл недели словно в тумане на тарифе Max x20, продираясь через XY-проблемы к тому, что казалось решениями. Целью была локальная и быстрая база данных памяти, которая сохраняет выводы агентов и загружает их в каждой сессии вместо того, чтобы полагаться на текстовые файлы. Большую часть кода под управлением автора написал агент: демон на Rust, правило о том, что факты никогда не удаляются, а только вытесняются (чтобы банк помнил свои прошлые представления), и четыре стратегии извлечения, объединённые и переранжированные небольшими локальными моделями. Честная авторская оценка результата: получился поисковый движок по странному корпусу текстов, где человек в основном просто наблюдал, как агент реализует бегло просмотренные пейперы.
Затем началась амбициозная часть: автоматическое обнаружение противоречий. За месяцы в банке памяти накапливаются извлечённые факты, часть из них устаревает, часть оказывается ошибочной, а воспоминание, противоречащее другому без всяких пояснений, хуже полного его отсутствия, поскольку засоряет контекстное окно. "Не может это быть так уж сложно". В архитектуре появились "совет рассуждений" (абдукция выдвигает гипотезы, дедукция заверяет, индукция выводит правила), доказательства на Agda, позже портированные на Cubical Agda, машинопроверенная четырёхзначная решётка Белнапа, отделяющая "не записано" от "опровергнуто", сеть Петри для каждой подсистемы и язык планов, чьи свойства воспроизведения были доказаны ещё до появления парсера. Автор признаёт: на руках были солвер, интерактивный прувер и ни малейшего понимания того, что вообще происходит.
Стена
Спустя месяцы инструмент хранит и классифицирует воспоминания, но не делает главного, ради чего создавался: он не находит противоречий. Пытаясь заставить Claude автоматически переводить текстовые воспоминания в Answer Set Programming (ASP), автор получил объяснение: сделать это нельзя, поскольку перед нами нерешённая проблема представления знаний, которую Claude назвал "тождеством пропозиций" (proposition identity). Если отбросить уверенный тон модели, суть проблемы такова: правила разрешения конфликтов срабатывают на синтаксическом равенстве атомов, поэтому солвер вообще не выносит суждений о противоречивости двух записей - это решение уже было принято ранее тем компонентом, который сопоставил два куска текста с одним и тем же атомом. Как переформулировал это автор, вспомнив семестр философии языка: определить, когда два предложения выражают одну и ту же пропозицию, по-настоящему сложно. Стоит объединить атомы фактов слишком агрессивно - и чекер начнёт выдумывать конфликты на ровном месте. Запасная надежда на то, что достаточно большой банк хотя бы выявит внутренние противоречия ("нынешний король Франции лыс" против "носит ирокез"), разбивается о замечание Рассела: никакого короля Франции попросту нет. Claude возвёл проблему к статье Фреге 1892 года "О смысле и значении" (On Sense and Reference) и сообщил автору, что тот её вряд ли решит. На этом автор перестал просить код и написал пост.
Эссе завершается списком литературы от модели: статьи из SEP о пропозициях и структурированных пропозициях, Фреге, "Слово и объект" Куайна, гиперинтенсиональность как современный термин; работы Маккарти о формализации контекста и микротеории проекта CYC со стороны представления знаний; прикладные направления, в которых исследуется эта проблема (open knowledge base canonicalization, cross-document event coreference, previously-fact-checked claim detection); и ветка LLM+ASP (s(CASP), STAR, дистилляция правил ASP из LLM).
Место в базе
Это зеркальное дополнение к memoryfields из той же волны текстов 2026 года о памяти агентов. Тезис Патерсона заключается в том, что память должна быть данными, а между ней и агентом должно быть как можно меньше промежуточных механизмов - никакого пайплайна поиска противоречий, никакого слоя рассуждений. Данное эссе наглядно показывает, как выглядит попытка построить такой механизм: автор попытался добавить именно те автоматические рассуждения, от которых призывает отказаться Патерсон, и система сломалась ровно на них. Тексты не ссылаются друг на друга, но вместе образуют единый аргумент с двух сторон: подход "память как данные" реализуем, а пайплайн, за который взялся автор, неподъёмен - во всяком случае в части автоматического поиска противоречий.
В vault'е под эту проблему уже есть страница. memory-conflict-detection описывает обнаружение нового воспоминания, противоречащего старому, и сохранение видимости обоих; данное эссе - свидетельство того, что именно автоматическая часть обнаружения и есть самое сложное, поскольку решение о том, что два воспоминания говорят об одном и том же, упирается в тождество пропозиций. Собственный ответ базы - это описанный на той странице путь ручного арбитража человеком и линтинга, а не автоматический чекер: llm-wiki-as-agent-memory доказывает, что редактируемое вручную хранилище на markdown сильно упрощает проблему конфликтов именно потому, что их разрешает человек. agent-memory-components помещает эту трудность на уровень "принятия решений о противоречиях" в хранилище и отмечает, что большинство библиотек уделяет ему слишком мало внимания; здесь же описан опыт избыточных инвестиций в этот слой, обернувшийся бездонной ямой.
В более широком смысле это поучительная история о вайб-кодинге того же порядка, что и building-syntaqlite-ai: агент выдал компилируемую, протестированную и даже машинно-доказанную реализацию архитектуры, которую автор не понимал и не мог довести до конца, - наглядная иллюстрация peril-of-laziness-lost и skill-atrophy-supervision-paradox, показанная изнутри. neurosymbolic-ai задаёт трезвый контекст для связки LLM+ASP, к которой стремился автор, а llm-self-verification-limits объясняет, почему "совет рассуждений", где одна модель проверяет другую, вряд ли мог устранить этот разрыв.