Candidate routes
Existing Platform keys gain no memory scope automatically. The key principal selects the tenant;
the request body cannot provide tenant, actor, organization, or Praxa user authority.
Try the frozen request contract
The portable-envelope schema is frozen and aligned across the runtime and the published@praxa/sdk/memory package. The API Playground
now generates requests from that OpenAPI document, and the hosted-memory
tutorial walks through create, lexical
query, NDJSON export, and hard erasure.
Use disposable content and a least-privilege personal-workspace key while the
authenticated qualification matrix remains pending. The presence of a request
example does not promote this plane from qualification preview.
The stable boundary is already explicit:
- records remain isolated candidates;
- hosted provider IDs are
mem0,zep,graphiti,langgraph,letta,openai_agents, andcustom; - durable candidate kinds are exactly
message,fact,summary,episode,pinned_context,document,entity, andedge; LangGraph checkpoints are rejected rather than converted; - provenance names an
explicit,observed,inferred, orimportedorigin, confidence from0to1, a capture time, and bounded evidence IDs; - lexical retrieval is labelled lexical;
- provider identity, external ID, revision, record kind, provenance, visibility, and timestamps survive round trips;
- retries bind an idempotency key to the same request digest;
- all-provider failure is not an empty result;
- deletion leaves no candidate content in its receipt;
- no route promotes data into Praxa personal memory or AHCE.
Separate memory planes
POST /v8/memory/query is an OAuth Integration Gateway contract for purpose- and
compartment-scoped retrieval. It neither manages provider connections nor aliases this /v1
candidate plane. See Query Memory for that separate contract.