audit-ready-memory
Audit-ready, local-first memory for AI agents: a time-stamped log you can read, replay, and delete from, instead of hidden state inside a model or a hosted service.
Memory is stored as an append-only sequence of events in an embedded ArcadeDB database. Nothing is ever updated in place. Reads are recorded as well as writes, so you can answer "what did the model actually see, and when?" Deletion is an appended tombstone with a required reason, and deleted content can never re-enter a model's context.
Funded by SIDN Fund.
Install
The package on PyPI is not current yet; install from source until v0.1.0 is released:
git clone https://github.com/humemai/audit-ready-memory
cd audit-ready-memory
uv sync
Python 3.10 or newer. The database is embedded, so there is no server to run.
Thirty-second example
from audit_ready_memory import Memory, Message, Document
with Memory("./memory-db") as memory:
memory.add_message(Message(speaker="anna", content="the water pump failed on tuesday"))
memory.add_document(Document(name="repairs.txt", text="pump replaced on wednesday"))
# Search, and record the search in the same step.
recall, hits = memory.recall("pump")
for hit in hits:
print(hit.seq, hit.kind)
# The read is now in the log too.
print(len(memory), "events")
Every event carries an id, a UTC timestamp, and a seq assigned by the store. seq
gives the log a total order that does not depend on the clock.
What you get
| Capability | How |
|---|---|
| Read the whole history | memory.events(), filterable by kind, session, or seq range |
| Rebuild any past state | memory.replay(up_to_seq=n), a pure fold over the log |
| See what the model saw | every read appends a Recall event naming the exact items |
| Delete with a reason | memory.delete(ids, reason="...") appends a tombstone |
| Run it anywhere | embedded database, no server, no network |
Four kinds of event
Messageis one conversational turn. Who said what.Documentis data someone uploaded, stored as extracted text.Recallis a read. It names which stored items entered the model's context, and for which query.Deletionis a tombstone naming its targets and why they were removed.
Read the memory model for the invariants these guarantee.
Demo
A Streamlit app showing a small group chatting with each other and an AI, sharing documents, on top of an audit-ready memory:
uv run --extra demo streamlit run demo/app.py
Without an OPENROUTER_API_KEY the app still runs. Browsing, the audit log, replay, and
deletion all work. Only the AI chat is disabled.
Honest limits
- Deletion is a tombstone, not erasure. Deleted content stays in the append-only log and is excluded from every read. If you need the bytes gone from disk, this is not that.
retain_untilis a marker, not a policy. The field is recorded but nothing enforces it yet; an expired event is still visible. Track it or set it, but do not rely on it.- Retrieval is keyword overlap. Deliberately simple and deterministic. No embeddings.
- The demo's model call is a cloud call. The memory is local; recalled text sent to OpenRouter is not.
More in limitations.
Documentation
https://docs.humem.ai/audit-ready-memory/latest/
Development
uv sync --all-groups --all-extras
uv run pytest
License
MIT. See LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file audit_ready_memory-0.0.2.tar.gz.
File metadata
- Download URL: audit_ready_memory-0.0.2.tar.gz
- Upload date:
- Size: 184.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d77c76141f800bc65ef5e258f6e2615830f883a1d5a2458bb0b76eaf95d9b399
|
|
| MD5 |
10c73be87e594adb017704d072f610c8
|
|
| BLAKE2b-256 |
5b776d701dbf5d4f922d072528fb51f81020c920a53acfba41b8391a2419fad2
|
Provenance
The following attestation bundles were made for audit_ready_memory-0.0.2.tar.gz:
Publisher:
release-python-packages.yml on humemai/audit-ready-memory
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
audit_ready_memory-0.0.2.tar.gz -
Subject digest:
d77c76141f800bc65ef5e258f6e2615830f883a1d5a2458bb0b76eaf95d9b399 - Sigstore transparency entry: 2468255488
- Sigstore integration time:
-
Permalink:
humemai/audit-ready-memory@75b1f8b42849d9767a02dd6fba219bc3cae2e023 -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/humemai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-python-packages.yml@75b1f8b42849d9767a02dd6fba219bc3cae2e023 -
Trigger Event:
push
-
Statement type:
File details
Details for the file audit_ready_memory-0.0.2-py3-none-any.whl.
File metadata
- Download URL: audit_ready_memory-0.0.2-py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c2ec20567c7c21b0194ac0fce9b2ae118d15d46a6fe89b45385ad4ba842ed43
|
|
| MD5 |
dc8113daa99429a228c40e4eb1e0d240
|
|
| BLAKE2b-256 |
47d0d951190aace3bdcdfb9fc28bfb1cedbe5216e80b530d147d3af28758fbe5
|
Provenance
The following attestation bundles were made for audit_ready_memory-0.0.2-py3-none-any.whl:
Publisher:
release-python-packages.yml on humemai/audit-ready-memory
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
audit_ready_memory-0.0.2-py3-none-any.whl -
Subject digest:
5c2ec20567c7c21b0194ac0fce9b2ae118d15d46a6fe89b45385ad4ba842ed43 - Sigstore transparency entry: 2468255502
- Sigstore integration time:
-
Permalink:
humemai/audit-ready-memory@75b1f8b42849d9767a02dd6fba219bc3cae2e023 -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/humemai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-python-packages.yml@75b1f8b42849d9767a02dd6fba219bc3cae2e023 -
Trigger Event:
push
-
Statement type: