Your agent should be able to say why it believes something.
Most agent memory is a list of facts. When two of them conflict, one silently overwrites the other and the history is gone. OMEM keeps both, tracks which one is believed right now, and can reconstruct what was believed at any point in the past.
Runs on your own machine, with no external services.MIT · Python 3.9+ · no dependencies
Customer prefers email over phone
As of now, this assertion is contradicted.
Provenance
- ticket:8842Event “prefer email please”
- d:1Derivation extraction from event
- a:alice-emailAssertion prefers_email_over_phone
Contradicted by
Both claims are kept. Neither was deleted, and either can be reconstructed at any point in the past.
Belief interval
The useful part of a memory layer is the part that says no.
Anything can store a fact. What decides whether your agent is trustworthy is what it declines to do with one.
- It will not decide what is true
- Two claims conflict only when a caller has declared the pair opposed. OMEM never reads two sentences and concludes they disagree, because that judgement is what would stop the same question having the same answer a year from now.
- It will not run what nobody authorised
- A model may propose a repair. Only action types registered in code can execute, the risk class comes from OMEM's registry rather than from the plan that claims it, and a high-risk action needs a named approver on top of the permission.
- It will not quietly overwrite
- A contradiction keeps both claims, records which is currently believed, and can reconstruct either side at any past point in time. Nothing is lost when something changes.
A model proposed exec_shell. OMEM did not run it.
OMEM records what breaks and repairs it under policy. The model is a reasoning component that may propose a plan; OMEM decides what is permitted, what executes, and whether it actually worked.
Error text and model output are data here. Neither can name an action into existence, and the refusal is written down with the reason for every action rather than disappearing.
How the healing loop worksTwo agents disagree. Both are kept, one is believed, and you can ask why.
Belief state over time
Every claim carries an interval. Ask what was believed last Tuesday and get last Tuesday's answer, not today's.
Provenance you can follow
Ask why something is believed and get the chain of assertions and evidence that led there.
Private by default
Memory belongs to an agent unless you share it with a team or the project.
The dashboard is included
One pip install serves the API and the UI on the same port. No Node at runtime, no second process.
This is early software, and the second list matters as much as the first.
OMEM is free while it is in beta, and it is missing things you would need before putting it somewhere serious. They are written down rather than discovered during a security review.
- No SSO or SCIM
- No SOC 2, ISO 27001 or HIPAA BAA
- No key rotation tooling
- No region pinning
- An audit chain that detects tampering, not one that prevents it
- One writer per database, so no high availability
The whole thing runs on your laptop in about a minute.
No signup, no card, no quota, and no service to depend on. If it breaks or feels wrong, that is exactly the feedback worth having right now.