This release is a pre-release and may not be stable for production use.
AetnaMem
AetnaMem is a model-agnostic memory control plane for agents. Its complete reversible memory switch is currently OpenClaw-specific.
Install AetnaMem beside OpenClaw, let it copy and shadow the complete native memory, inspect the result, then activate it when you are ready. Shadow mode does not change the context sent to the model. Activation freezes the verified OpenClaw memory state and replaces native supplemental-memory access with bounded AetnaMem recall. Restore puts the saved OpenClaw configuration and memory paths back.
This is Version 1.0.0a2, an experimental prerelease. The memory engine and MCP interface are model-agnostic. The automated copy, shadow, activation, and restore workflow supports OpenClaw first.
Install and migrate OpenClaw
# 1. Install the engine. Do not install the npm bridge separately.
python -m pip install --pre aetnamem==1.0.0a2
aetnamem --version
# 2. Install the matching bridge and copy all existing OpenClaw memory.
aetnamem openclaw install
# 3. Inspect the shadow copy. OpenClaw is still the memory provider.
aetnamem control status
aetnamem dashboard daemon start
# 4. Switch only after the dashboard reports that the copy is verified.
aetnamem control activate
# 5. Restore OpenClaw memory at any time.
aetnamem control restore
aetnamem openclaw install owns both packages: it installs the matching npm bridge, binds the exact Python executable, copies MEMORY.md and memory/*.md from the beginning of the OpenClaw workspace history, starts change mirroring, restarts the gateway, and verifies the loaded integration. Progress is shown for every stage. If verification fails, it restores the prior plugin configuration.
Read the OpenClaw setup and control-plane guarantees before customer deployment.
What the dashboard provides
The loopback-only dashboard is the operating and investigation surface:
- current provider: OpenClaw in shadow mode or AetnaMem in active mode;
- copy progress, source manifest, hashes, and verification failures;
- memory search, record history, source and interpretation evidence;
- recall scores, context-injection receipts, and agent-response bindings;
- approval or purge of quarantined external observations;
- filtered audit exploration with time, event, actor, session, record, and status facets;
- JSON, NDJSON, CSV, text investigation reports, and deletion receipts;
- one activation control and one restore control.
aetnamem dashboard daemon start # background service at http://127.0.0.1:8766/
aetnamem dashboard daemon open # open the direct loopback URL
aetnamem dashboard daemon status
aetnamem dashboard daemon restart
aetnamem dashboard daemon stop
aetnamem dashboard daemon remove # removes service metadata, not memory/evidence
Model-agnostic engine
Any host that can launch a stdio MCP server can use the engine directly:
aetnamem mcp --db ~/.aetnamem/memories.db --subject local-user
MCP tools: memory_remember, memory_observe, memory_recall, memory_get_record, memory_get_source, memory_recall_block, memory_persona, memory_context_pack, memory_capture, memory_list, memory_forget, memory_forget_artifact, memory_promote, memory_audit, memory_verify, memory_graph_status, memory_graph_merges, memory_graph_history, and memory_log_action.
The protocol does not depend on OpenAI, Anthropic, Google, Meta, xAI, DeepSeek, or another model provider. A host integration is still responsible for authenticated user identity, deciding when model-interpreted statements become memory, and proving which context reached which response.
See the integration guide, audit search, semantic search, and multimodal observations.
Data and trust boundaries
- Canonical memory, provenance, lifecycle state, and audit evidence are stored in SQLite.
- Semantic search is optional. Vectors are a derived index and are verified against canonical records before results are returned.
- External media bytes remain host-controlled. AetnaMem stores a typed text observation, exact byte-stream SHA-256, model identity, and host reference.
- External observations are quarantined until approved. Confidence is evidence, never an automatic promotion rule.
- Forget operations cascade through canonical, graph, media, and vector-derived state and return a receipt.
- The dashboard binds only to loopback and opens without a login. Mutations retain CSRF and origin checks.
See data storage and backup and the auditing guide.
Scope
AetnaMem 1.0 contains one product: the memory control plane. Unrelated legacy experiments remain in Git history and on the unchanged develop branch; they are not shipped as part of the 1.0 product.
Licensed under AGPL-3.0-only.
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 aetnamem-1.0.0a2.tar.gz.
File metadata
- Download URL: aetnamem-1.0.0a2.tar.gz
- Upload date:
- Size: 270.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f4f2aca8e70fb0fc30ccf005813aed3727dafb88c5cd157e8032d78c0f58b1b
|
|
| MD5 |
edaffdfa1461fce10edb0582b2af12e1
|
|
| BLAKE2b-256 |
24582a23158ce27b15f18e8cc5488cfbd3fe44f1e2f69df1d89a38529e4460fe
|
Provenance
The following attestation bundles were made for aetnamem-1.0.0a2.tar.gz:
Publisher:
publish.yml on aetna000/aetnamem
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aetnamem-1.0.0a2.tar.gz -
Subject digest:
2f4f2aca8e70fb0fc30ccf005813aed3727dafb88c5cd157e8032d78c0f58b1b - Sigstore transparency entry: 2320806351
- Sigstore integration time:
-
Permalink:
aetna000/aetnamem@ee0a9c1c68d5b7b2c3c546b192d3c4291bf93a3f -
Branch / Tag:
refs/tags/v1.0.0a2 - Owner: https://github.com/aetna000
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ee0a9c1c68d5b7b2c3c546b192d3c4291bf93a3f -
Trigger Event:
push
-
Statement type:
File details
Details for the file aetnamem-1.0.0a2-py3-none-any.whl.
File metadata
- Download URL: aetnamem-1.0.0a2-py3-none-any.whl
- Upload date:
- Size: 173.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a0d85a60575ff44a874852f799171c5301793dd419432e09433ae4c5234e5b2
|
|
| MD5 |
1b483fa956cc7774dd92a5310e71ab76
|
|
| BLAKE2b-256 |
ed44a6417c990128a0e686bcaf22abd89ed1efb2331ceede3c284391eecae7ba
|
Provenance
The following attestation bundles were made for aetnamem-1.0.0a2-py3-none-any.whl:
Publisher:
publish.yml on aetna000/aetnamem
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aetnamem-1.0.0a2-py3-none-any.whl -
Subject digest:
2a0d85a60575ff44a874852f799171c5301793dd419432e09433ae4c5234e5b2 - Sigstore transparency entry: 2320806580
- Sigstore integration time:
-
Permalink:
aetna000/aetnamem@ee0a9c1c68d5b7b2c3c546b192d3c4291bf93a3f -
Branch / Tag:
refs/tags/v1.0.0a2 - Owner: https://github.com/aetna000
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ee0a9c1c68d5b7b2c3c546b192d3c4291bf93a3f -
Trigger Event:
push
-
Statement type: