Skip to main content
Memory in EverOS OSS is partitioned by ownership and routed automatically. The directory layout is self-explanatory by design: open memory-root/ and the structure tells you what lives where without needing to read a schema.

Three Tracks

TrackRouted fromDirectoryAnswers
User Memoryrole="user" senderusers/<user_id>/Who is this user? What have they said?
Agent Memoryrole="assistant" senderagents/<agent_id>/What has this agent learned? What can it do?
Wiki Memory (coming soon)User upload or global configknowledge/What does the system know about the world?
Writes are routed based on message role. No manual routing is required.

User Memory

User Memory captures everything about a specific user across their interactions. The key design is multi-granularity coexistence — four types of memory exist side by side, each serving a different retrieval need.
users/u_jason/
├── user.md          User Profile   · identity, goals, preferences, values
├── behaviors.md     Procedural     · behavioral history, proactive service input
├── episodes/        Episodic       · narrative summaries (daily append)
│   └── episode-2026-04-22.md
├── atomic_facts/    AtomicFact     · independently retrievable facts (daily append)
│   └── fact-2026-04-22.md
└── foresights/      Foresight      · time-bounded plans and predictions (daily append)
    └── foresight-2026-04-22.md
TypeFormWhat it stores
user_profileSingle file, in-place updateAggregated portrait — identity, preferences, values
behaviorsSingle file, in-place updateBehavioral patterns for proactive service
episodeDaily append logNarrative summary of a conversation segment
atomic_factDaily append logA single, independently retrievable extracted fact
foresightDaily append logA time-bounded plan or prediction about the user
episode and atomic_fact represent different granularities of the same conversation. Neither replaces the other — both are retained. At retrieval time, mRAG selects the granularity that best fits the query. See Retrieval.

Agent Memory

Agent Memory captures what an agent has learned and who it is. The key design is the experience feedback loop and the separation of stable identity from dynamic experience.
agents/agent_zhangsan/
├── soul.md          Identity     · core persona, values, behavioral boundaries
├── agent.md         Playbook     · behavior rules, workflows, user feedback
├── tools.md         Declaration  · tool capabilities and constraints
├── skills/          Procedural   · reusable skills distilled from cases
│   └── skill_contract_risk_scan/
│       ├── SKILL.md             T1 — entry point, lightweight description
│       ├── references/          T3 — read on demand
│       └── scripts/             T3 — execute on demand
└── cases/           Episodic     · execution traces (raw material)
    └── case-2026-04-22.md

Identity files

FileLayerPurpose
soul.mdIdentityCore persona, values, behavioral constraints — who the agent is
agent.mdPlaybookBehavior rules, workflows, tool usage, user feedback — how the agent operates
tools.mdDeclarationDeclared tool capabilities and boundaries
These files are the stable layer — maintained intentionally by humans, not automatically updated by the system.

Experience files

TypeFormPurpose
agent_caseDaily append logFull execution trace — input, tool calls, decisions, outcome
agent_skillNamed directoryReusable skill distilled from a cluster of cases
case and skill are the dynamic layer — accumulated and evolved automatically by the system.

The experience loop

execute task  →  record case (success or failure trace)
     ↑                        ↓
reuse skill          offline clustering
     ↑                        ↓
     └──────────  distill skill  ──┘
Each execution produces a case. Cases are periodically clustered into skills — generalized, reusable approaches to a class of task. The result is an agent that compounds capability over time, with a transparent record of what it has learned: open skills/ and you can see exactly what the agent knows how to do.

Why stable and dynamic layers are separated

An agent’s values and identity (soul.md) are maintained deliberately. Its experience (cases/, skills/) accumulates automatically. Keeping these separate ensures that a failed case doesn’t corrupt the agent’s core persona — identity is not overwritten by experience.

Skill file structure

Each skill is a directory with three tiers:
  • SKILL.md — entry point, lightweight description and usage instructions (always loaded)
  • references/ — supporting material, loaded on demand
  • scripts/ — executable scripts, run on demand
This progressive disclosure design means an agent never loads all skill detail into context at once — it loads the entry point and pulls deeper tiers only when needed.

Wiki Memory

Wiki Memory is not yet available in the current release. The design and directory layout are documented here for reference — the API and ingestion pipeline are coming in a future version.
Wiki Memory answers a different question from User and Agent Memory: not “what did this user experience” or “what has this agent learned,” but “what is objectively true about the world.”
knowledge/
└── <knowledge_entry_id>.md    KnowledgeEntry · extracted from multimodal sources
PropertyDetail
OwnershipGlobal — not bound to any specific user or agent
SourcesUser-uploaded files, crawled pages, internal wikis, product manuals
Extractionevercore.Knowledge.KnowledgeExtractor unifies heterogeneous sources (PDF, image, video, URL) into KnowledgeEntry records
BoundaryFactual knowledge, not experiential memory — “what is known,” not “what happened”
Placing shared knowledge in users/ would pollute personal memory. Placing it in agents/ would bind it to a specific agent. knowledge/ is a separate track precisely to avoid both problems.

Zero-Config Identity

There is no “create user” or “register agent” API. The first time a message is written with a given sender_id, EverOS OSS creates the owner directory on demand. The same sender_id aggregates automatically across sessions. Naming is the caller’s responsibility — EverOS OSS does not generate or manage identifiers.

The Three Tracks as a Cognitive System

User MemoryAgent MemoryWiki Memory
AnswersWho is this user? What did they experience?What can this agent do? What has it learned?What is true about the world?
Cognitive analogAutobiographical memoryProcedural memorySemantic memory
OwnershipSingle userSingle agentGlobal
Evolved byUser interactionsExecution experienceExternal ingestion
Example query”What did Jason say last time?""How do I scan a contract for risk?""What does GDPR require?”
Three tracks, physically isolated, linked by reference — a complete cognitive coordinate system for an AI agent.