Перейти к содержимому
Александр Медведев
Назад

Память AI между сессиями: append-only JSONL-журналы для решений, ошибок и идей

Claude в каждой новой сессии — чистый лист. Что бы вы ни обсудили в прошлый раз, какое бы решение ни приняли, какую бы ошибку ни разобрали — следующая сессия об этом не помнит. Каждый раз вы либо заново объясняете контекст, либо принимаете что часть знания теряется.

Я решил это просто: завёл три файла .jsonl в стандартизованной директории. В них хранятся решения, ошибки и идеи. Файлы автоматически подгружаются в начале сессии. AI помнит между сессиями.

Этот пост — про устройство этой памяти, почему именно append-only JSONL, и как она интегрируется в ежедневную работу.

Table of contents

Open Table of contents

Проблема: amnesia AI между сессиями

Без структурированной памяти AI работает в режиме “пятиминутки”. Каждая сессия — новый разговор с человеком, который не помнит:

В результате — три повторяющихся проблемы:

  1. Регрессия багов. Вы решили проблему месяц назад. Сегодня она появилась снова, и AI решает её с нуля, не зная что прошлое решение существовало
  2. Споры по уже принятым решениям. Вы выбрали стек / архитектуру / подход. Через месяц AI предлагает “лучше переделать на X” — потому что не знает контекст того решения
  3. Идеи теряются. Вы накидываете 20 идей в течение года — половину забываете. Хорошие идеи смешиваются с мусором, потому что нет места их фиксировать структурно

Решение: три JSONL-журнала

В ~/.claude/data/ лежат три файла:

Все три — append-only. Первая строка каждого файла — schema. Дальше каждая строка — отдельная запись.

При старте сессии AI читает свежие записи (последние 10-20) и понимает текущее состояние. Не нужно ничего объяснять.

decisions.jsonl — что записывать

Записываю когда:

Минимальная схема одной записи:

{"date":"2026-05-24","topic":"cache-strategy","decision":"...","why":"...","alternatives_considered":["...","..."]}

Ключевое поле — why. Решение без обоснования через год выглядит произвольным. С обоснованием его легко проверить на актуальность (“этот аргумент ещё действителен?”).

Пример из моего файла:

{"date":"2026-04-15","topic":"subagent-model","decision":"явно передавать модель Sonnet/Haiku подагентам, не наследовать","why":"при наследовании main session Opus → все агенты Opus → квота сгорает в 15× быстрее","alternatives_considered":["наследование от parent","автоопределение по типу задачи"]}

Через месяц, если возникнет вопрос “почему мы тут явно указываем модель?” — ответ есть в файле. Не нужно вспоминать.

failures.jsonl — связь со skills

Это самый ценный файл из трёх. В нём хранятся причины и решения реальных ошибок:

{"date":"2026-04-08","fail":"добавил секцию в blueprint без grep — оказалось уже была","root_cause":"забыл проверить существующее содержимое перед append","fix":"создан skill blueprint-grep-before-append с обязательным pre-step grep"}

Цикл такой:

  1. Ошибка случилась — записал в failures.jsonl
  2. Случилась повторно — задумался “почему я не предотвратил?”
  3. На третий раз — создал skill с обязательным правилом

Этот цикл я описывал в посте про skills. failures.jsonl — это сырьё для skills. Skill — это формализованное правило, родившееся из конкретных fail-ов.

Через год работы у вас есть каталог собственных ошибок — самое ценное знание о вашей рабочей среде. Никакая статья в интернете этого не даст.

ideas.jsonl — портфель с scoring

В моём ideas.jsonl сейчас 13 проработанных идей продуктов и направлений. Каждая идея — отдельная запись со scoring (5 критериев × 5 уровней) и stream (категория применения).

{"id":"idea-009","title":"...","stream":"helping-pro","scores":{"alignment":4,"market":3,"feasibility":4,"capability":5,"momentum":3},"total":19,"status":"active"}

stream — категория идеи (личные инструменты, продукты для помогающих профессий, технологии, B2B-сервисы). Это позволяет видеть распределение портфеля между категориями и не пропускать перекосы.

total — сумма scores. Минимальный порог для “взять в работу” — например, 15/25. Ниже — отправляется в “наблюдение”.

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

Append-only: почему нельзя редактировать прошлое

Главное правило всех трёх файлов: никаких правок прошлых записей. Только новые строки.

Зачем:

Если запись устарела или неверна — добавляется новая запись с пометкой corrects или supersedes:

{"date":"2026-05-01","corrects":"2026-03-15-decision-X","new_decision":"...","why_changed":"..."}

Схема в первой строке

Первая строка каждого .jsonl-файла — schema. Это документация и контракт для AI:

# decisions.jsonl
# Schema: {date: ISO date, topic: string, decision: string, why: string, alternatives_considered?: string[]}
# Append-only. Не редактировать прошлые записи. Корректировки — новой записью с полем `corrects`.

AI при чтении файла видит схему первой и понимает структуру. Если я добавляю новое поле в записях — обновляю схему в первой строке.

Интеграция в workflow

В AGENTS.md (или эквивалентном файле) у меня есть правила:

## Data layers (cumulative knowledge)

Persistent project-spanning data lives in `~/.claude/data/*.jsonl`.

Read recent entries (last 10-20 lines) when starting work on a related project,
to understand current state without re-explaining.

Write a new entry when:
- making a meaningful decision (decisions.jsonl)
- fixing a non-trivial bug (failures.jsonl)
- capturing an idea worth remembering (ideas.jsonl)

Never overwrite — only append.

Это означает что:

Workflow становится самоподдерживающимся: каждая решённая проблема превращается в защиту от регрессии.

Альтернативы (vector DB, MCP servers) и почему JSONL

Естественный вопрос: почему .jsonl файлы, а не vector database или MCP server?

Vector DB (Pinecone, Weaviate, ChromaDB):

MCP servers для памяти:

JSONL-файлы:

Для personal stack (один человек, до 10-100 записей в каждом файле) JSONL — простейший рабочий вариант. Когда упрусь в лимиты — рассмотрю vector DB. Сейчас — нет повода.

Чек-лист: запустить data layers у себя

Заключение

Память AI между сессиями — это архитектурная задача, не “магия модели”. Решается просто: три текстовых файла с правилом append-only.

Через 3-6 месяцев работы у вас есть журналы накопленного знания — то, что у AI-инженеров отсутствует by design. Это превращает работу с AI из “разовых задач” в систему, которая накапливает интеллект со временем.

Главное правило: никаких правок прошлых записей. Append-only — это не ограничение, это фича. Она делает память честной и полезной для будущего вас.


Если у вас сейчас нет journal-файлов и AI каждую сессию начинает “с нуля” — заведите хотя бы failures.jsonl. Через месяц у вас будет личный каталог типичных ошибок, который сам по себе стоит времени на ведение.


Поделиться постом:

Предыдущий пост
Self-audit по Zapier AI Fluency Rubric: что я увидел в собственной работе с AI
Следующий пост
От QA к AI Transformation: как 14 лет процессного опыта работают на внедрение AI в команды