Долговременная память ИИ-агента: как не терять контекст между сессиями

Обновлено: 12 июля 2026

Если вы плотно работаете с ИИ-агентом — Claude Code или подобным, — вы уже видели эту стену. Каждая новая сессия начинается «с чистого листа»: агент не помнит ни прошлых договорённостей, ни того, как устроен ваш проект, ни ваших замечаний «делай вот так, а не так». Наивное лечение напрашивается само: свалить всё важное в один файл (обычно CLAUDE.md) и подкладывать его каждую сессию. Работает ровно до той недели, когда файл раздувается, факты в нём начинают дублироваться, а копии — расходиться. Агент читает первую попавшуюся версию правды, и вы снова тратите время на «нет, мы же договаривались иначе».

Эта статья — не «смотрите, как здорово я всё устроил». Это уже пройденный за вас путь: рабочая система из нескольких слоёв хранилищ, честный разбор, кому она вообще нужна (а кому нет), и десять граблей, на которые наступают все. В конце — готовый шаблон-репозиторий: клонируете, оставляете слои под свой масштаб, заполняете под себя.

Сначала честно: нужно ли это именно тебе

Слои памяти — не бесплатны: каждый требует поддержки (уборки, синхронизации, бэкапа). Заводить их «на вырост», заранее — значит платить за обслуживание впустую. Поэтому новый слой заводят в ответ на боль, а не заранее. Найдите свою ступень — и увидите, чего достаточно сейчас и по какому сигналу пора выше.

СтупеньТы здесь, если…Чего достаточноСигнал «пора выше»
0. Разовоеразовые задачиничего, хватает памяти одной сессиивозвращаешься к тому же и заново пересказываешь контекст
1. Один малый проектредкие сессииодин файл заметок (проектный CLAUDE.md)заметок много, ищешь «а где я это записал»
2. Один долгий проекткопятся решения и замечанияпамять проекта: 1 факт = 1 файл + индекс MEMORY.mdпоявился второй проект, знание из первого пригодилось бы
3. Несколько проектовзнания пересекаютсяобщая вика + типизация (переносимое → вика, проектное → память)«записал в память одного, а нужно везде»; дубли между проектами
4. Крупный проекту одного проекта свой большой объём данныхлокальная вика в git проектапамять распухла, в неё сползает «журнал под видом памяти»
5. Передаёшь другимнаработал повторяемые приёмыслой навыков-методичек + обязательный бэкапприём сработал третий раз; страшно потерять всё

Мораль лестницы: ступень определяется не амбициями, а числом проектов и плотностью пересечений между ними. Один проект — даже большой — почти не требует слоёв. Окупаться они начинают, когда знание перетекает между проектами (это ступень 3).

Кому это НЕ нужно. Если у вас один небольшой или разовый проект — не городите систему. Один файл заметок закрывает всё. Дальше можно не читать: вернётесь, когда появится второй проект и знание из первого захочется переиспользовать.

Решение: не одно хранилище, а слои по ролям

Правильная система — это несколько хранилищ, у каждого своя роль. Их четыре.

Четыре слоя памяти ИИ-агентаВертикальный стек из четырёх слоёв хранилищ: 1 — правила поведения («конституция», грузится в каждую сессию); 2 — память проекта (точечные факты и обратная связь, по релевантности); 3 — база знаний, вика (переносимое знание, перелинкованная энциклопедия); 4 — навыки и методички (оформленные приёмы для повторного применения).Четыре слоя — у каждого своя роль1Правила поведения«конституция» — грузится в каждую сессию2Память проектаточечные факты и обратная связь — по релевантности3База знаний (вика)переносимое знание — перелинкованная энциклопедия4Навыки / методичкиоформленные приёмы для повторного применения
Четыре слоя хранилищ ИИ-агента: правила поведения, память проекта, база знаний (вика по методу Карпаты) и навыки. Один и тот же факт, положенный не в свой слой, превращается в источник путаницы.
СлойЧто этоРольГде живёт (пример)
Правила поведенияинструкции агенту«конституция», грузится в каждую сессиюглобальный CLAUDE.md + проектные CLAUDE.md
Память проектаточечные факты, обратная связьпривязана к проекту, подгружается по релевантностипрофиль агента: projects/имя-проекта/memory/
База знаний (вика)осмысленное переносимое знаниеперелинкованная «энциклопедия»общая вика + локальные вики крупных проектов
Навыки / методичкипередаваемые методы-уменияоформленные приёмы для повторного примененияотдельная папка методичек в общей вике

Ключ к слоям — не в названиях, а в вопросе «что это по типу?». Инструкция агенту, как себя вести, — правило. Разовый факт про конкретный проект — память. Знание, которое пригодится и в другом проекте, — вика. Приём, который хочется применять снова и передать, — навык. Один и тот же абзац, положенный не в свой слой, превращается в источник путаницы.

Грабля, на которую наступают все: где физически лежит память

Прежде чем про принципы — про место, потому что здесь спотыкается почти каждый. Память проекта хранится не в папке проекта. Есть два разных места, и их путают:

  1. Папка проекта на диске — сам проект: код, файлы. Памяти агента тут нет. Вложенная служебная папка бывает пустой или хранит только настройки — и это нормально, не пугайтесь.
  2. Служебная папка агента в профиле пользователя (~/.claude) — вот тут живёт всё «агентское»: глобальные правила и подпапка projects с отдельной папкой на каждый проект, а внутри — memory (файлы памяти) и логи сессий.
Где физически лежит память ИИ-агентаДва разных места. В профиле пользователя (тильда слэш .claude) лежит вся память агента: глобальный CLAUDE.md и папка projects, внутри неё — папка проекта, чьё имя получено из пути проекта заменой слэшей и двоеточий на дефисы (например D--projects-myproject), а в ней папка memory с файлом-индексом MEMORY.md и файлами памяти (один факт — один файл). В самой папке проекта на диске (D двоеточие слэш projects слэш myproject) лежит только код — памяти агента там нет.Два места — а память только в одном~/.claude/├── CLAUDE.md└── projects/ └── D--projects-myproject/ └── memory/ ├── MEMORY.md └── *.md← профиль пользователя, не папка проекта← имя = путь проекта: / и : → дефисы1 факт = 1 файлD:\projects\myproject\└── (код и файлы — памяти агента здесь НЕТ)
Память агента лежит в профиле пользователя (~/.claude), а не в папке проекта. Имя служебной папки получается из пути проекта заменой слэшей и двоеточий на дефисы — отсюда типовая растерянность «включил память, а папка проекта пустая».

Связь между ними — по имени: путь проекта кодируется в имя служебной папки заменой разделителей (двоеточий и слэшей) на дефисы. Условно путь проекта D:\projects\myproject превращается в папку памяти с именем вроде D--projects-myproject. Отсюда и типовая растерянность: «я включил память, а папка проекта пустая» — потому что смотреть надо в профиль агента, а не в проект.

Почему так устроено: память и история сессий — приватные данные о работе, их держат в профиле пользователя, чтобы не засорять репозиторий и чтобы они случайно не попали в git. Вику, наоборот, кладут в папку проекта — чтобы она версионировалась вместе с ним.

Принципы — и почему они такие

Слои держатся на нескольких принципах. Каждый — не догма, а лечение конкретной боли.

Десять граблей — коротким кейсом каждая

Самое ценное для практика — не теория, а конкретные ямы. Вот те, в которые наступают чаще всего.

  1. Ищут память в папке проекта. Её там нет — она в профиле агента. Пустая папка проекта — это норма, а не поломка.
  2. Продвинули правило, а копию не удалили. Записали и в память проекта, и в глобальные правила — две копии разошлись. Лечение: «продвинул — удали источник».
  3. Универсальное правило — в память одного проекта. Память проекта грузится только в его сессиях; в других правила не будет. Универсальное правило поведения — в глобальный CLAUDE.md.
  4. Кросс-проектное знание застряло в памяти полигона. Наработка, полезная многим проектам, но записанная в память одного, — невидима остальным. Заведите ей «паспорт» в общей вике.
  5. Устаревший статус. «Ждём X», «этап N» — когда всё давно изменилось. Память — снимок; живые статусы ведите в вике, а память периодически чистите.
  6. Журнал под видом памяти. Файл памяти, который растет дописыванием сессия за сессией до сотен строк. Память — «один файл = один факт»; хронику выносите в архивную страницу вики.
  7. Смешали типы в одном файле. Правило поведения и знание в одном месте. Разделите: первое — в правила/память, второе — в вику.
  8. Хранилище без бэкапа. Единственная копия на одном диске, без git и удалённого репозитория. Реальный случай: вика со всеми знаниями долго жила без git — одна поломка диска стёрла бы всё.
  9. Имя удалённого бэкапа ≠ имя локальной папки. Репозиторий назвали иначе, чем папку, от которой зависят пути. При восстановлении git clone создаст папку по имени репозитория — и все пути, ждущие старое имя, сломаются в момент восстановления. Правило: имя репозитория = имя папки (или задокументируйте точную команду клона).
  10. Указатель ведёт на неверный путь. Ужали память до указателя «детали — в такой-то папке», а файл лежит в другой. Файл не потерян, но переход бьётся — и это тихо: проверка «а есть ли файл с таким именем?» проходит, потому что имя-то верное. Лечение: после ужатия сверять путь указателя целиком — имя и папку.

Гигиена: уборка и бэкап

Система живёт, пока за ней убирают. Два ритуала держат её здоровой.

Периодическая уборка («линт»). Раз в несколько недель или по симптому (нашёл один дубль — почти наверняка есть и другие) проверяйте всю систему на дубли, битые ссылки, устаревшие статусы, факты не в своём слое. Важная тонкость: полный прогон делайте свежим взглядом — агент, который только что сам правил файлы, склонен подтверждать свою работу, а не проверять её. Если хранилища под git, точный журнал того, что уборка сделала, даёт история коммитов — по ней чистку удобно ревизовать постфактум.

Бэкап. Единый источник истины защищает от расхождения, но не от потери. Каждое критичное хранилище должно иметь копию вне машины: вику и проекты — под git и удалённый репозиторий (приватный, если данные личные); память — бэкапить отдельно, она не в git. Физическое расположение (какой диск) от потери не спасает — спасает копия вне машины. Системный диск переустанавливают, диски выходят из строя. Не откладывайте: незабэкапленное хранилище — риск с первого дня.

Честные границы — и чем этот подход отличается

Начистоту: это авторская сборка известных паттернов, а не готовый стандарт с одним именем. Кирпичи индустриальные: единый источник истины, разделение ответственности, слои памяти и база знаний по методу Карпаты — знание компилируется в перелинкованную вику в момент поступления, а не переоткрывается из сырых документов при каждом запросе. Первоисточник — публичный гист Андрея Карпаты (апрель 2026).

И тут важная оговорка, чтобы не продавать вам велосипед. Идея «вики для LLM по Карпаты» не уникальна — на GitHub уже есть популярные репозитории на эту тему. Ценность здесь не в самой вике, а в том, что это шаг дальше, а не её повтор:

И повторим границу из лестницы: система стоит своих усилий не для всех. Одному маленькому проекту хватит одного файла заметок. Слои окупаются, когда проектов несколько и знания между ними пересекаются. Конкретика (расположение памяти, имена файлов, кодирование пути в имя папки) — специфика Claude Code; принцип «слои по ролям + единый источник истины» переносится на любого агента, детали — нет.

Готовый шаблон: клонируй и заполни под себя

Чтобы не собирать это с нуля, есть открытый скелет — llm-wiki-starter (публичный, лицензия MIT). Внутри: слой правил (CLAUDE.md), демо-проект с памятью (наглядно показано, что память лежит не в папке проекта), общая вика с кросс-ссылками, шаблоны-бланки файлов памяти и страниц вики, образец оформленного навыка. Папки размечены по ступеням лестницы — включаете слои под свою ступень, остальное удаляете.

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

Если вы только выбираете, с каким ассистентом всё это ставить, — загляните в разбор как выбрать нейросеть под задачу и в словарь: там про разницу моделей и про то, чем «модель» отличается от «агента».

Частые вопросы

Где Claude Code хранит память между сессиями?

Не в папке проекта, а в профиле пользователя — в служебной папке агента (~/.claude), в подпапке projects с отдельной папкой на каждый проект, а в ней memory. Путь к проекту закодирован в имя этой папки заменой слэшей и двоеточий на дефисы. Папка самого проекта при этом бывает пустой — это нормально.

Почему нельзя держать всё в одном файле CLAUDE.md?

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

Обязательно ли заводить вики и навыки, или хватит памяти проекта?

Зависит от масштаба. Одному небольшому проекту хватает одного файла заметок. Слои окупаются, когда проектов несколько и знания между ними пересекаются: тогда появляется общая вики и типизация «переносимое знание против проектного». Навыки нужны ещё позже — когда приём срабатывает не первый раз и его хочется передать другим.

Что такое метод Карпаты и LLM-wiki?

Подход, при котором знание компилируется агентом в перелинкованную вики в момент поступления материала, а не переоткрывается из сырых документов при каждом запросе. Сила такой базы — в плотности связей между страницами, а не в объёме. Первоисточник — публичный гист Андрея Карпаты (апрель 2026).

С чего начать, если проект уже большой и заметки разрослись?

С развязки типов. Разнесите то, что свалено в один файл: правила поведения агента — в глобальный CLAUDE.md, точечные факты и обратную связь — в память проекта (один факт = один файл), переносимое знание — в вики. Затем заведите бэкап вне машины. Готовый скелет с этими слоями можно клонировать и заполнить под себя.