Quick start · Agent skill · Operations · Security
Portable agent memory. Append-only records, verified provenance, MCP tools, and self-hosting.
Strata gives a team one durable memory that any agent can read and update without mixing projects, leaking secrets, or rewriting history. It is built for work that moves across people, sessions, machines, and runtimes.
Local agent memory breaks when work moves across machines, people, tools, or old sessions. Strata keeps the facts that should outlive one agent run:
- experiment results and decisions;
- dataset notes, source checksums, and extraction status;
- procedures that worked and mistakes to avoid;
- project handoffs for agents joining later.
Strata does not store secrets, raw transcripts, chain-of-thought, API keys, or provider settings.
| Part | What it does |
|---|---|
strata Python package |
CLI, append-only store, REST gateway, MCP bridge, policy checks, export, and restore. |
skills/strata |
Shareable agent skill for reading, writing, and safe service control without hardcoded host values. |
policy and schema |
Rules and JSON contracts agents must follow before writes. |
scripts and deploy |
Local, Docker, and systemd helpers for running the service. |
git clone https://github.com/rx6ru/strata.git
cd strata
python -m venv .venv
. .venv/bin/activate
python -m pip install -e .
strata --helpStart a local gateway:
strata serve --root /tmp/strata-demo --host 127.0.0.1 --port 8787Check it from another shell:
curl -fsS http://127.0.0.1:8787/healthz
curl -fsS -H 'X-Strata-Client: 1' http://127.0.0.1:8787/v1/statusIf you are running from a source checkout before installing the package:
PYTHONPATH=. python -m strata --help
PYTHONPATH=. python -m strata root-hash --root /tmp/strata-demoRead the full setup guide in docs/getting-started.md.
- Copy
skills/strata/into the agent runtime skill directory. - Give the agent only non-secret runtime values, such as the gateway URL, namespace, current task, SSH alias, and optional lifecycle wrapper path.
- The agent fetches policy, prepares scoped context, reads canonical records, and writes only verified durable knowledge.
- Corrections append superseding records. Reorganization appends relocation, split, merge, or invalidation events. Ordinary agents never edit history in place.
The skill does not hardcode hostnames, IP addresses, EC2 instance IDs, usernames, API keys, project namespaces, policy hashes, roots, or record IDs. See docs/agent-skill.md.
Strata checks every write before commit:
- current policy hash is acknowledged before commit;
- schemas validate the record;
- idempotency keys prevent duplicate retries;
- append-only SQLite triggers block in-place history edits;
- content hashes and root manifests make exports checkable;
- secret and raw transcript scanners reject unsafe payloads;
- derived recall is labeled as navigation, not truth.
For the Docker stack:
./scripts/configure.sh
./scripts/control.sh startFor a system service, use the installation guide and the constrained lifecycle wrapper in deploy/. Remote agents should call only that wrapper for status, start, stop, or restart.
The default deployment has no app-level users. Keep it on loopback, a private network, SSH, VPN, firewall, or your own proxy/auth layer. Read docs/security-model.md and SECURITY.md before team hosting.
The REST gateway exposes health, policy, status, search, recall, record, append, supersede, relocate, split, merge, and invalidate endpoints under /v1.
The MCP bridge exposes matching tools such as memory_policy, memory_prepare_context, memory_search, memory_get, memory_capture_verified, and memory_status.
PYTHONPATH=. python -m strata eval --input tests/fixtures/strata_eval/cases.jsonThe fixture checks namespace isolation, provenance, promotion and rejection behavior, derived recall labels, and forbidden-value leakage.
MIT. See LICENSE. Third-party notes are in THIRD_PARTY_NOTICES.md.