Как я держу документы и инструкции для агентов в актуальном состоянии
Habr ·

Цепочка такая: Сессия заканчивается. Транскрипт остаётся на диске. Хук 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 . Читать далее
Цепочка такая: Сессия заканчивается. Транскрипт остаётся на диске. Хук 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 . Читать далее