Об этом проекте

Atrium — это второй слой трёхуровневой системы памяти, обеспечивающий производный одноразовый поиск по каноническому архиву бесед. Он не владеет исходными данными; вместо этого он строит индекс, который можно перестроить из канонического архива и курируемых заметок. Дизайн подчёркивает, что индекс одноразовый, а машины синхронизируют архив, а не индекс, обеспечивая сходимость без копирования. Ключевые возможности: - **Приём данных**: индексация архивов бесед (JSONL) и деревьев курируемых заметок. - **Поиск**: адаптивный поиск, объединяющий лексические (по целым словам и подстрокам) и плотные (семантические) каналы, с возможностью использовать каждый канал отдельно. Плотный канал встраивает только курируемые заметки и синтез сессий, а не сырой корпус. - **Запись сессий**: хук Stop в Claude Code (`stop-record-episode.sh`), который предлагает агенту записать эпизод сессии при достижении порогов, используя `atrium record-session` для проверки, редактирования и сохранения записи. - **Извлечение контекста**: хук `UserPromptSubmit` (`user-prompt-context.sh`), который внедряет релевантные свидетельства в подсказки. Команда `atrium context` (также доступная через MCP) возвращает структурированные свидетельства, ограниченные проектом и курируемыми заметками, с ограниченными бюджетами и проверками безопасности. - **Управление состоянием**: состояние хранится в выделенном каталоге, определяемом переменными среды или конфигурацией, что позволяет держать производные данные отдельно и никогда не синхронизировать их. - **Разработка**: тесты и линтинг через `uv` и `pytest`/`ruff`. README включает примеры использования, конфигурацию для хуков и подробности о приёмочном тесте протокола. Он также объясняет обоснование раздельного использования каналов поиска и важность повторного измерения решений, задокументированных в `AGENTS.md`.