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

На проекте в десять файлов это терпимо, весь контекст влезает в одну сессию. Когда файлов становится полсотни, начинается боль. Агент в новой сессии не знает, что модуль авторизации уже готов, и пишет второй. Без ваших conventions он лепит код в своём стиле, и база превращается в лоскутное одеяло. Вы уже выбрали Redis для кэша и обосновали решение, а в следующей сессии он предлагает Memcached, потому что не помнит. Лечится это памятью. Точнее, несколькими её видами, ведь «память» - это семь разных задач, а не одна кнопка.

Memory Bank: память в файлах

Самый дешёвый уровень. Memory Bank - это структурированная документация в markdown, которая лежит в репозитории под git. Агент читает её при старте сессии и «вспоминает» проект. Стоит ноль, ставится за пять минут.

Сердце Memory Bank - индексный файл. И тут ключевая деталь: индекс это роутинг, а не хранилище. Он содержит аннотированные ссылки, что лежит в файле и зачем агенту туда идти. Нужно починить баг в корзине? Агент смотрит индекс, видит строку про cart.md, открывает только его. Не грузит авторизацию, не грузит платежи. Это и есть progressive disclosure: агент читает ровно столько, сколько нужно задаче.

Держится всё на четырёх принципах:

  • Один источник правды - каждый факт живёт в одном месте.
  • Атомарность - один файл, одна тема: auth.md про авторизацию и ничего больше.
  • Прогрессивное раскрытие - индекс, потом обзор, потом детали.
  • Пирамидка знаний - в коде описано, КАК сделано, в документации ПОЧЕМУ и ДЛЯ ЧЕГО.

Нарушите последний - и агент поменяет код, а доку забудет, они разъедутся.

Hindsight: операционная память от Orchestra

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

Здесь работает Hindsight, управляемый MCP-сервер памяти от Orchestra. Подключается к Claude Code как обычный MCP-сервер и даёт четыре команды:

  • retain - запомнить факт.
  • recall - вспомнить по смыслу, а не по точному совпадению.
  • reflect - синтезировать выводы по теме.
  • status - проверить связь.

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

Workflow простой:

  1. В начале сессии - пара запросов recall: «что за проект, открытые задачи», «что меняли в прошлый раз, где блокеры».
  2. Во время работы - retain на ключевые события: приняли решение, закрыли этап, нашли проблему.
  3. В конце - короткий wrap-up: что сделано, что осталось, следующий шаг.

У нас на боевом проекте это экономит по пятнадцать-тридцать минут прогрева каждую сессию.

Не путайте два уровня.

КритерийMemory BankHindsight
Отвечает на«Как устроен проект»«Что делали и что решили»
МеняетсяРедкоЕжедневно
ЖивётВ gitВ облаке
Пример«кэш - Redis, TTL час»«15 марта выбрали Redis из-за latency»

Один и тот же факт спокойно живёт в обоих сразу, просто в разной формулировке.

mem0: память для агентов, которых вы пишете сами

mem0 нужен, когда вы пишете агента кодом, на Python или TypeScript, через Agent SDK. У такого агента нет ни CLAUDE.md, ни Hindsight, ни встроенной памяти. Три живых примера:

  • Slack-бот - без mem0 не помнит, что Петя вчера спрашивал про деплой.
  • Агент поддержки - вместо «здравствуйте, как вас зовут» встречает клиента «здравствуйте, Иван, в прошлый раз чинили оплату».
  • Ночной CI-агент по пул-реквестам - помнит, что этот PR уже видел вчера и там было три бага.

API минимальный, буквально три строки:

from mem0 import Memory

m = Memory()
m.add("Иван предпочитает деплой через GitHub Actions", user_id="ivan")

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

Serena: код как память

Остаётся контекст, который не закрывает ни один из трёх уровней выше, понимание самого кода. По умолчанию Claude Code ищет через Read и Grep, то есть по тексту. Serena подключается MCP-сервером и добавляет семантику.

Разница видна на одном запросе: «покажи все реализации PaymentProcessor».

ИнструментЧто вернёт на этот запрос
Grep, по текстуСтрочки, где встречается имя
Serena, по символамВсе классы, которые реализуют интерфейс

Плюс папка .serena/memories/ хранит память на уровне кода, поддерживает мультипроект и три десятка языков. Разделение простое: CLAUDE.md знает правила проекта, Serena знает его структуру.

Дерево выбора

Собираем всё в одно решение. Задайте себе один вопрос: что именно нужно запомнить?

  • Знания о проекте (архитектура, conventions, бизнес-правила) - Memory Bank.
  • Структуру кода (зависимости, реализации, символы) - Serena.
  • Операционный контекст (что делали, что решили, что осталось) - Hindsight.
  • Формальные архитектурные решения с пересмотром по сроку - Forgeplan и ADR.
  • Личные черновики и растущий промпт - Obsidian.
  • Общую документацию команды - Confluence.
  • Программную память для собственных агентов - mem0.

По уровням это складывается в четыре набора:

НаборЧто входит
МинимальныйCLAUDE.md плюс Hindsight. Для соло-разработчика и небольшого проекта, пять минут на настройку.
СтандартныйСверху Serena и Obsidian.
ProductionЕщё Forgeplan и Confluence: решения не теряются, новых людей быстрее вводить в проект.
AdvancedCross-project Forgeplan и mem0 для мультипроекта и кастомных агентов.

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

Тема: Память

Eli Rum

Автор курса Dev Velocity. Пишет об AI-разработке на практике: агенты, контекст, инструменты.