Почему твой ИИ каждый раз начинает с нуля, а мой помнит всё за полгода
Обычный чат забывает контекст между сессиями — каждый разговор с чистого листа. У Claude Code память лежит в файлах: после каждой сессии он сам дописывает выводы в свой блокнот. В моём сейчас ~200 тысяч ссылок и ~70 тысяч строк. Здесь — полная инструкция, как собрать такую память у себя за один вечер.
Почему обычный чат каждый раз начинает с нуля
Открой ChatGPT, объясни ему свой проект, серверы, любимый стиль кода — а завтра в новом чате всё это придётся объяснять заново. У большинства чатов память живёт только внутри одного диалога: кончился контекст или закрыл вкладку — и накопленное знание испарилось. Да, есть «memory»-фичи, которые запоминают пару фактов о тебе, но это короткие заметки, а не рабочая база знаний.
В итоге ты каждый день заново вводишь ассистента в курс дела. Это и есть режим «вопрос → ответ»: спросил — получил ответ — связь оборвалась. Полезно, но это справочник, а не коллега, который помнит, что вы делали вместе вчера, неделю и полгода назад.
Разница не в «уме» модели, а в опыте. А опыт нарабатывается одной-единственной вещью — памятью. Дай ИИ память — и рубрика «вопрос-ответ» превращается в полноценного сотрудника, который помнит контекст и зачем вы всё это делаете.
Память на файлах — и почему это меняет всё
Claude Code — это агент, который работает прямо в твоих папках и умеет читать и писать файлы. Поэтому его память — не магия внутри модели, а обычные текстовые файлы у тебя на диске. Их можно открыть, прочитать глазами, поправить руками, положить в git. Память видимая и под твоим контролем.
Конструкция держится на трёх слоях:
Грубая аналогия: CLAUDE.md — это памятка «как мы тут работаем», которую сотрудник перечитывает каждое утро. memory/ — это его картотека заметок по делам. А MEMORY.md — оглавление этой картотеки: чтобы найти нужную заметку, не читая все подряд.
Новая сессия начинается не с чистого листа, а с прочитанных правил и карты знаний. Спросил «а где у нас прод-сервер?» — он не гадает, а лезет в свою заметку и отвечает по факту. Контекст не теряется между днями.
Как это устроено внутри — цикл «прочитал → поработал → записал»
Цикл памяти простой и повторяется каждую сессию. Понимая его, ты перестаёшь воспринимать память как чёрный ящик.
Старт сессии — чтение правил
Когда ты запускаешь Claude Code в проекте, он автоматически подтягивает CLAUDE.md в самое начало контекста. Это значит: правила и договорённости попадают в «голову» агента ещё до твоего первого сообщения.
Работа — recall по описаниям
Сами факты в memory/ агент целиком в контекст не тянет — это раздуло бы его. Вместо этого он смотрит в индекс MEMORY.md с короткими описаниями каждого файла и подгружает только нужную заметку под текущую задачу. Это и есть recall — «вспоминание по описанию».
Финал — запись выводов
В конце работы агент сам формулирует выводы и дописывает их: новый факт — отдельным файлом в memory/, строчку про него — в индекс. Так после каждой сессии база знаний прирастает, а не обнуляется.
Запись выводов — это поведение, которое ты задаёшь сам: в правилах прописываешь «после задачи фиксируй важные выводы в память». Это не скрытый системный флаг, а инструкция агенту. На уровне концепции: ты учишь его вести блокнот, а дальше он делает это по привычке, заданной в CLAUDE.md.
CLAUDE.md — правила, которые грузятся каждую сессию
Это самый важный файл. Положи его в корень проекта — и его содержимое будет в контексте всегда. Сюда пишут не факты-однодневки, а устойчивые правила игры: стек, договорённости, стиль, запреты, ссылки на ключевые места. Держи его коротким и плотным — каждая строка тратит контекст.
/CLAUDE.md — каркас правил проекта
# Проект: reels-bot ## Что это Бот автопостинга Reels в Instagram + автоответы по кодовым словам. ## Стек и где что лежит - Python 3.11, прод на Mac (живой токен только тут) - Публикация — прямой 3-шаг через pub_mac.py (НЕ через очередь) - Видео кладём на NL-CDN, RU-origin Meta отвергает ## Правила (ОБЯЗАТЕЛЬНЫ) - Все отчёты и скрипты — в ~/brain/, НЕ в /tmp и НЕ на Desktop - Перед визуальной работой читать design/DESIGN-SYSTEM.md - После задачи — фиксировать выводы в memory/ + строку в MEMORY.md ## Память Индекс знаний — в memory/MEMORY.md. Recall по описаниям файлов.
Правило-проверка: «это будет верно и через месяц?» Если да — в CLAUDE.md (стек, пути, запреты,
стиль). Если это разовый факт сегодняшнего дня — ему место в memory/,
а не в правилах. Можно держать и личный ~/.claude/CLAUDE.md с правилами,
общими для всех проектов.
Система memory/ и индекс MEMORY.md
Факты живут не одной свалкой, а отдельными файлами по темам в папке
memory/. У каждого файла сверху — небольшой блок метаданных (frontmatter):
тип, дата, краткое описание. По этим описаниям агент и понимает, какую заметку открыть под задачу.
Анатомия одного факта-файла
memory/feedback_telethon-no-setdc.md
--- type: feedback date: 2026-06-01 title: Telethon: не вызывать set_dc на залогиненной сессии summary: client.session.set_dc() на живой сессии → ключ revoke links: [[tma-bot]], [[infra-secrets]] --- # Что произошло Вызов set_dc() на залогиненной сессии Telethon отзывает ключ — сессия умирает молча, переавторизация не помогает. # Правило НИКОГДА не дёргать set_dc() на уже авторизованной сессии. Нужен другой DC — создавать новую сессию с нуля.
Четыре рабочих типа заметок
| type | Для чего | Пример |
|---|---|---|
| user | Факты о тебе и твоих предпочтениях | «отчёты складывать в ~/brain», любимый стиль |
| feedback | Уроки на ошибках — «так больше не делать» | грабли с API, что однажды сломалось |
| project | Состояние проектов: что сделано, что дальше | сервер X, статус фичи Y, что осталось |
| reference | Справочные знания: формулы, стили, рецепты | канон оформления, дизайн-система, чек-листы |
Индекс MEMORY.md — карта, а не свалка
Индекс — это оглавление: одна строка на каждый факт-файл с коротким описанием и ссылкой. Агент читает индекс целиком, а сами файлы — выборочно, под задачу. Поэтому индекс должен быть плотным: одна строка ≈ одна мысль.
memory/MEMORY.md — индекс (фрагмент)
# Память ## Главные правила - [[feedback_telethon-no-setdc]] — не звать set_dc на живой сессии - [[reference_design-system]] — читать перед визуальной работой - Все файлы и отчёты → ~/brain/ (НЕ /tmp, НЕ Desktop) ## Проекты - [[project_reels-bot]] — автопостинг Reels, прод на Mac - [[project_ig-platform]] — multi-tenant SaaS, app на сервере ## Инфраструктура - [[infra_servers]] — список серверов и доступов - Пароли/токены — в ~/.secrets/ (НЕ в git, НЕ в индексе)
Записи связываются ссылками вида [[имя-файла]] — как вики. Из одной заметки
можно «прыгнуть» в связанную. Именно из этих перекрёстных ссылок и набираются те самые сотни тысяч
связей в большой базе: каждый факт ссылается на соседние.
Как это выглядит на дистанции в полгода
Один файл — мелочь. Но память растёт каждую сессию, и за полгода это превращается в живую базу знаний. Вот порядок цифр из реальной памяти, накопленной такой системой:
В этой базе агент помнит какие серверы, какие проекты, какие дизайн-скиллы, где лежит важная информация — и, главное, зачем всё это делается. Появляется конкретная цель, из которой он выстраивает работу. Это и отличает «справочник» от «сотрудника».
~70к строк и ~200к ссылок — порядок величины конкретной большой памяти, а не норматив. Тебе столько не нужно: ценность даёт уже первая сотня осмысленных строк. Объём растёт сам, по мере работы.
Что НЕ стоит писать в память и как не раздуть индекс
Главная угроза большой памяти — не нехватка фактов, а мусор. Раздутый индекс агент читает каждую сессию, и если он засорён — recall тупеет, а контекст тратится впустую.
- Секреты в открытую — пароли, токены, приватные ключи. Их место в защищённом хранилище (например,
~/.secrets/вне git), а в памяти — лишь указатель «где взять». - Длинные дампы и логи — простыни вывода, сырые ответы API. Записывай вывод, а не процесс.
- Сиюминутное — «сейчас чиню баг X». Сегодня правда, завтра шум.
- Дубли — один факт в трёх файлах рассинхронится и начнёт врать.
- Одна строка — одна мысль. Описание факта в индексе ≤ ~200 символов. Деталь — в самом файле.
- Сжимай периодически. Раз в N недель проходись по индексу: устаревшее — в архив, неактуальное — удалить.
- Архивируй, не копи. Заведи
_archive/и убирай туда завершённое, чтобы активная часть оставалась короткой. - Деталь — в топик-файл, индекс — только карта. Если строка в индексе разрослась в абзац, вынеси её содержимое в отдельный файл.
Память — это не «записать всё», а «записать то, что пригодится снова». Если факт не сэкономит время в будущей сессии — ему не место в памяти.
Чек-лист «настрой память за вечер»
Минимальная рабочая система собирается за один присест. Делай по порядку:
- Создай
CLAUDE.mdв корне проекта. Впиши 5–10 строк: что за проект, стек, где что лежит, 2–3 жёстких правила. - Добавь в правила строку про память: «после задачи фиксируй важные выводы отдельным файлом в
memory/и строкой вMEMORY.md». - Заведи папку
memory/и в ней пустой индексMEMORY.mdс парой заголовков-разделов (Правила / Проекты / Инфра). - Запиши 3 первых факта — по одному типа
project,feedback,reference. С frontmatter сверху (type, date, summary). - Пропиши их в индекс — по одной строке-описанию со ссылкой
[[имя]]. - Положи всё под git — память версионируется, откатывается и не теряется. Секреты — в
.gitignore. - Проверь recall: начни новую сессию и спроси то, что записал. Если ответил по факту из памяти — система работает.
- CLAUDE.md с правилами лежит в корне и подгружается на старте
- В правилах есть инструкция дописывать выводы в память
- Есть папка memory/ с индексом MEMORY.md
- Минимум 3 факта с frontmatter и ссылками в индексе
- Секреты НЕ в памяти, всё под git
Через пару недель ты заметишь: новые сессии стартуют «в курсе дела», агент перестаёт переспрашивать очевидное и ссылается на прошлые решения. Рубрика «вопрос-ответ» тихо превращается в сотрудника с опытом.
Память — это та самая одна вещь
Буквально одно изменение в работе с Claude Code превращает «чат для ответов» в коллегу, который помнит контекст за полгода. Не модель умнее — у неё просто появился опыт. А опыт нарабатывается только памятью. Начни с CLAUDE.md и трёх заметок сегодня вечером — дальше база растёт сама.