About this project
Atrium is the second layer of a three-layer memory system, providing derived, disposable retrieval over a canonical conversation archive. It does not own the source data; instead, it builds an index that can be rebuilt from the canonical archive and curated notes. The design emphasizes that the index is disposable and machines sync the archive, not the index, ensuring convergence without copying.
Key features include:
- **Ingestion**: Index conversation archives (JSONL) and curated notes trees.
- **Search**: Adaptive search that fuses lexical (whole-word and substring) and dense (semantic) lanes, with options to use each lane alone. The dense lane embeds only curated notes and session synthesis, not the raw corpus.
- **Session recording**: A Claude Code Stop hook (`stop-record-episode.sh`) that prompts the agent to record a session episode when thresholds are met, using `atrium record-session` to validate, redact, and store the record.
- **Context retrieval**: A `UserPromptSubmit` hook (`user-prompt-context.sh`) that injects relevant evidence into prompts. The `atrium context` command (also available via MCP) returns structured evidence, scoped to the project and curated notes, with bounded budgets and safety checks.
- **State management**: State is stored in a dedicated directory resolved from environment variables or config, keeping derived data separate and never synced.
- **Development**: Tests and linting via `uv` and `pytest`/`ruff`.
The README includes usage examples, configuration for hooks, and details on the protocol acceptance test. It also explains the rationale for keeping search lanes separate and the importance of re-measuring decisions documented in `AGENTS.md`.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.