# Memory Model
Memory is managed by the runtime memory store and exposed via Acheron service paths.
A small set is Read Only Memory for the agent and contains the basic operating rules (the system prompt).
Some memory is non evict-able and so always loaded in the agents context.
## Implementation
Memory is stored long term by a versioned database, context is a subset of this. Agents explicitly control load, mutates and mutations.
### Access Paths
Use `/agents/self/memory` control files instead of calling `memory_*` tools directly:
- `/agents/self/memory/control/create.json`
- `/agents/self/memory/control/load.json`
- `/agents/self/memory/control/versions.json`
- `/agents/self/memory/control/mutate.json`
- `/agents/self/memory/control/evict.json`
- `/agents/self/memory/control/search.json`
Results and status:
- `/agents/self/memory/result.json`
- `/agents/self/memory/status.json`
## Seeded Runtime Memories
The runtime seeds system instructions and loop/tool contracts on boot (see `src/memory_schema.zig`). These include:
- `system.policy`
- `system.loop_contract`
- `system.tool_contract`
- `system.completion_contract`
## Implementation Pointers
- Memory schema + seeds: `src/memory_schema.zig`
- Memory tool execution + persistence hooks: `src/brain_tools.zig`, `src/agent_runtime.zig`, `src/system_hooks.zig`
- Acheron bridge: `src/fsrpc_session.zig`