· Источник: Habr — RSS-лента на русском про IT

Цепочка такая:
Сессия заканчивается. Транскрипт остаётся на диске.
Хук SessionEnd только ставит session_id в очередь (enqueue). Текст уроков он не пишет.
Systemd-таймер agent-learn-distill раз в ~30 минут будит distill.py.
Скрипт берёт сессию из очереди или простаивающую. Если с последнего обновления ещё нет примерно 25 минут простоя и сессия не в очереди — ждёт. Нужно минимум два хода пользователя, иначе пропуск и повтор позже. Строит выдержку из chat_history: до 12 ходов пользователя и до 4 коротких хвостов ассистента (лимит около 24k символов), не весь сырой транскрипт.
Дальше вызывает Grok без интерактива, с готовым промптом и JSON-схемой. В промпт уже вложены текущий LEARNED.md, заголовок сессии и выдержка; модели нельзя звать инструменты и перечитывать файлы. На выход: либо skip, либо новый полный LEARNED.md (замена целиком, до ~80 строк и ~8k символов: живое оставить, устаревшее и дубли выкинуть; дата сверху, русский, без дампов кода) плюс список уроков с метками learned / gotcha / decision. Тот же текст зеркалится в секцию Auto-learned файла MEMORY.md проекта.
Уроки с меткой learned уже в теле LEARNED.md; gotcha и decision уходят в inbox на воскресный подъём в общие инструкции. В живой сессии тот же прогон можно форсировать командой /learn.
Источник: Habr — RSS-лента на русском про IT.
