Attested memory for AI agents

Your agent remembers more.
Your memory bill stays flat.

Text-memory re-prefills your whole context every single turn — so cost climbs the more your agent remembers. amem recalls memory by meaning and returns it as reusable KV: prefill is paid once, recall is near-free. And every memory op — add, supersede, erase — lands on a hash-chained, auditor-verifiable log. The cost curve flattens; the audit trail doesn’t break.

v0.1.1 on PyPI 63 tests · CI green adversarial suite public benchmark misses published
$pip install atelya-attestCOPY
See the benchmark
cost_curve.svg
200 queries to the same memory cost 6.12× less served as KV
0 50k 100k 150k 200k 1 200 queries to the same memory → tokens (cumulative prefill) cold — re-prefillevery query 227,105 tok amem — KV reused 37,134 tok ≈1× cheaper 96% agreement · n=200 RTX 4070 · 2026-07-11
context: best-case amortization ≈54× on a 30-query stable session · 2026-06 · report-only, not the headline
Measured, not extrapolated

The numbers buyers don't trust — so they're reproducible.

Run the same benchmarks on your own model and your own memory — the 63-test adversarial suite ships in the public repo, and the hostile acceptance suites run on your machine during a pilot. Don’t trust us; rerun them.

−76.8%
Memory tokens at turn-12 through the closed-API proxy. Full-system incl. extraction tax: +33.5% — missed our own bar by 1.5 pts, published anyway.
own Anthropic bill · 2026-07-08
6.12×
Cheaper prefill at 96% per-query agreement with cold full-prefill (+1 pt accuracy).
RTX 4070 · n=200 LongMemEval · 2026-07-11
seq=N
One tampered byte fails verification at the exact record; GDPR hard-erase leaves only a sha256 marker.
atelya-attest 0.1.1 · 63 tests · adversarial suite public
Drop-in

Point any OpenAI client at it. (engine — design partners)

No new SDK to learn. Swap the base URL — memory becomes KV-native, per-tenant, and recalled as reusable KV.

  • Swap the base URL — no new SDK to learn.
  • Per-tenant memory, recalled as reusable KV.
  • Prefill is paid once; the next query on the same memory reuses it.
  • Engine (design partners): proxy · MCP · self-host.
Get it on PyPI
your_agent.py
from openai import OpenAI

# engine (design partners) — run it on your own GPU:
#   pip install -e ".[selfhost]"  →  amem kv-serve --model <your-open-model>

client = OpenAI(base_url="http://localhost:8001/v1", api_key="…")

resp = client.chat.completions.create(
    model="amem-kv",
    messages=[{"role": "user", "content": "what did we decide last week?"}],
    extra_body={"user": "alice"},   # per-tenant memory, recalled as reusable KV
)
# prefill is paid once; the next query on alice's memory reuses it — near free.
Memory-state attestation

Prove what your agent remembers — and how it forgot.

Your agent's memory changes between sessions: facts get added, superseded, erased. atelya-attest hash-chains that lifecycle, so a silent edit fails verification at the exact record, and a GDPR erasure leaves a marker you can verify. Stdlib-only — three files, zero dependencies: your auditor rewrites the verifier in an afternoon.

  • Hash-chained lifecycle — add / supersede / erase.
  • Tamper fails at the exact record.
  • GDPR hard-erase leaves only a sha256 marker.
  • Stdlib verifier — runs offline.
Watch the tamper demo
atelya-govern auditchain: VERIFIED
seqtimeopiddetail
02026-07-16adda91f"works at Boeing" [key=employer]
12026-07-16addb8b9"works at Airbus" [key=employer]
22026-07-16flaga↔bemployer conflict
32026-07-16purgeb8b9erasure:sha256:a2f9e0b0 — content removed
demo data
atelya-attest · live

Three commands, zero dependencies.

Every output line is verbatim from the recorded walkthrough. One tampered byte fails verification at the exact record.

The three questions buyers actually ask
atelya-attest · live
amem trust

Why did the agent answer that?

  • Per-answer memory citations.
  • Conflict surfacing.
  • Staleness visibility.
See the audit chain
amem trust
▸ where does the user work?
You work at Boeing.
memories used (2)
a91f"works at Boeing" [key=employer]
e7c2"prefers metric units" [key=units]
conflicts: 0 staleness: 3 days
amem trust · demo data
The bridge between two layers

Memory is moving from outside the model into it.

Text-memory tools own meaning but pay to re-prefill it every turn. KV-cache engines own reuse but have no idea what's relevant. amem is the bridge: semantic recall that returns reusable KV.

Layer A · text

Text memory

Unit = text. Recalled by an external embedder, then re-prefilled into the model every turn.

the text-memory approach
↑ cost grows with memory
amem · the bridge

Semantic KV subsystem

Recall by meaning (the model's own signal) → return the matching memory's precomputed KV. Residency, eviction & lifecycle live in the memory layer.

recall → reusable KV
flat cost · reuse ~free
Layer B · KV

KV cache engines

Unit = KV chunks. Mechanical reuse by prefix/position — no semantics, no recall by meaning.

the KV-reuse approach
no idea what's relevant
Priced on the meter

Billed on savings, not promises.

We meter avoided prefill; you pay a share of measured savings — the meter ships in the engine (design-partner pilots).

See the measured savings
amem invoice --share-pct 20
tenantprefill tokens saved$ saved @ $3/MTokyour 20% share
demo-a120.0M$360.00$72.00
demo-b75.0M$225.00$45.00
demo-c240.0M$720.00$144.00
total435.0M$1,305.00$261.00
demo ledger · illustrative
Narrow and deep, on purpose

Built for people who own their inference.

You'll feel it if…

  • You self-host an open model (vLLM / SGLang) and own the KV.
  • Your agents carry heavy, long-lived memory and run many turns.
  • Self-hosted coding agents, on-prem regulated assistants, on-device / edge agents, companion apps.
  • Your overnight / long-running agent bill climbs the more it remembers.
  • Regulated teams whose auditors ask “who changed what the agent believes?”

Not for you (yet) if…

  • You only call a closed API (Claude / GPT) — no KV to reuse. Use the proxy as an on-ramp.
  • Your sessions are short-lived or fire-and-forget.
  • Your memory is tiny — you won't feel the curve.
Before you ask

The three questions buyers actually ask.

Is this “tamper-proof”?

No — and anyone claiming that is overselling. It is tamper-evident: any silent edit fails verification at the exact record. Against rewrite-and-rechain, anchor the root externally — atelya-anchor ships for exactly that, and a forgotten label fails loudly instead of silently passing.

We already have a memory stack.

Keep it. If your system can emit a one-event-per-line JSONL log, the attest layer bolts on today — three commands, zero dependencies. You get the chain, GDPR hard-erase with sha256 markers, and auditor exports without replacing anything.

You don’t have SOC 2. Why would our auditor care?

Because they never have to trust us. The verifier is stdlib Python — an auditor rewrites it in an afternoon and reruns the 63-test adversarial suite straight from the repo. We publish our benchmark misses in the changelog. Certifications are roadmap; verifiability ships now.

Memory moves into the model.
Run the layer that does it.

prove it on your own workload → see your own flat curve
pip install atelya-attest Read the docs Become a design partner