Minimum Viable Memory · Live
Keep less. Decide the same.
POST /v1/mvmem finds the smallest subset of an agent's memory that still produces the same decision — and tells you which entries are safe to drop. One result, two payoffs: data-minimization for privacy regulation, and a token-cost cut on every downstream model call.
/v1/mvmem is an unmetered analysis endpoint: it runs the same scoring engine as /v1/preflight internally, but does not count toward your monthly quota and does not write an audit-log entry.
What it does
Sgraal scores your full memory state to get a baseline decision. Then, for each entry, it tests whether removing it changes that decision. Entries whose removal leaves the decision unchanged are removable; the rest form the minimum_subset — the decision-preserving core.
The result is not a guess: each removable entry was verified by an actual re-score. You get back the essential subset, the removable list with a reason per entry, and an estimated_savings summary.
Why it matters · 1 — Data-minimization
GDPR Article 5(1)(c) requires personal data to be “adequate, relevant and limited to what is necessary.” For an AI agent, “necessary” is hard to argue in the abstract — but MVMem makes it concrete and auditable: the decision-preserving subset is the necessary set for the action being governed.
Drop the rest, and you reduce both your data-retention surface and the personal data exposed to downstream models — with a re-scored record showing the kept set still produces the same decision. A DPO can point at that record.
Why it matters · 2 — Token-cost ROI
Every entry you carry into an agent's context window is tokens you pay for on every call. If a chunk of memory does not change the decision, it is paying rent for nothing.
A simple worked example: an agent carries ten retrieved memories into each prompt; MVMem finds four of them are removable without changing the decision. Trimming to the decision-preserving subset cuts the memory portion of the prompt accordingly — on every subsequent call, indefinitely. The savings compound with call volume; the exact figure is your own token economics, computed from the estimated_savings.entries_removed the endpoint returns.
Request
curl -sS https://api.sgraal.com/v1/mvmem \
-H "Authorization: Bearer $SGRAAL_API_KEY" \
-H "Content-Type: application/json" \
-d @request.json
request.json carries memory_state (the entries to minimise), plus optional action_type, domain, and agent_id — the same memory-entry shape as /v1/preflight.
Response
Two of ten entries are removable without changing the decision. Illustrative values shown.
{
"original_decision": "USE_MEMORY",
"original_omega": 16,
"minimum_subset": ["m_002", "m_005", "m_009"],
"removable_entries": [
{ "id": "m_001", "reason": "removal does not change decision" },
{ "id": "m_003", "reason": "removal does not change decision" }
],
"estimated_savings": { "entries_removed": 2, "percent": 40 }
}
For large memory stores the endpoint samples before testing, and marks the unsampled entries accordingly in removable_entries — so the result stays fast without claiming to have tested entries it did not.
Pairs with the MVMem Certificate
When you need to prove the minimisation — for an auditor, a DPO, or a counterparty — the MVMem Certificate issues a cryptographically signed record that the kept subset preserves the decision. The endpoint here gives you the subset; the certificate makes it externally checkable.
What this does not replace
A legal determination of “necessary”
MVMem identifies the decision-preserving subset for the governed action. Whether that satisfies your specific Article 5(1)(c) obligation is a determination only your DPO or counsel can make — the endpoint provides the evidence, not the ruling.
Deleting the data for you
MVMem tells you what is removable. Acting on that — pruning, retention, or context-trimming — happens in your pipeline. See /v1/memory/prune for the in-store companion.
Versioning
Last reviewed: 2026-05-24. Status: Live · doc-only (endpoint in production).
Related: /docs/proofs · /docs/insights · /comply · /docs/api