awm
A portable, scoped agent memory. SQLite, no service, no network.
platform:*:* everyone
{tenant}:*:* one org
{tenant}:{user}:* one person
{tenant}:{user}:{project} one piece of work
pip install awm
awm remember --scope acme:alice:orchestrator --key recipe --value "rank 16, lr 2e-5"
awm recall --scope acme:alice:orchestrator
Two rules, deliberately asymmetric
A write lands at exactly one scope. Writing "somewhere in this subtree" is how a memory becomes visible to a scope its author never considered.
A read includes ancestors, weighted by distance. A project query surfaces the user's preferences and the platform's conventions — that is the point of a hierarchy — but a platform fact must not outrank a project fact just because it was written first.
One property that is security, not tidiness
Siblings never see each other. acme:alice:* and acme:bob:* share an
ancestor and nothing else. The scope check is segment-wise, never a string
prefix, because "acmecorp:...".startswith("acme") is True — that is one
customer's memory entering another's context, silently, with the answer still
looking like an answer. SQL narrows by an exact computed set, never a LIKE.
platform is a reserved sentinel tenant meaning "everyone", not an
organisation. Treating it as a literal tenant name made the root of the
hierarchy invisible from every scope — every recall still returned results, just
never the platform's. The self-test carries that case.
Licence
Apache-2.0.
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 awm-0.1.0.tar.gz.
File metadata
- Download URL: awm-0.1.0.tar.gz
- Upload date:
- Size: 13.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ade077165a4a6a8ad7f8d47dab384196ac31010fcb5e1274868e88f001c3fa9
|
|
| MD5 |
c2b38752fbc850f83cd8ce4be8ce675d
|
|
| BLAKE2b-256 |
885c04aa03808d2fb296ec7f896add81e717c6d288e2258158093a1a7000ca7e
|
File details
Details for the file awm-0.1.0-py3-none-any.whl.
File metadata
- Download URL: awm-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86734b9bb8f5646538e65f6adf2f6111cd34e4765cd7ceb776aae247634bf1ec
|
|
| MD5 |
3060a609a48b60edd1f1458578c3288f
|
|
| BLAKE2b-256 |
d5056edcd78e4d5cf27abc918afecff14d90e9947b65716ab4a6af33d11acf00
|