Configure Omega memory profiles
A MemoryProfile controls how Omega forms, retrieves, retains, and consolidates memory for an authenticated scope. A profile is policy, not an authorization grant: the server derives tenant, owner, and scope references, and generated RBAC and ACL checks still determine visibility.
Use profiles when administrators need consistent limits for memory types, retention, retrieval modes, context size, provider privacy, or consolidation.
Read the effective profile
Read the resolved profile for the current principal:
GET /v1/graymatter/omega/memory-profile
curl --fail-with-body --silent --show-error \
--header "Authorization: Bearer $VALKYR_AUTH_TOKEN" \
https://api-0.valkyrlabs.com/v1/graymatter/omega/memory-profile \
| jq '{profileKey, scopeKind, memoryTypes, allowedRetrievalModes, providerPrivacy, policyVersion}'
The response is the effective policy after server-side inheritance and narrowing. Do not treat a stored profile row as proof that the current principal may read a memory or use a provider.
Profile controls
| Control | Purpose |
|---|---|
memoryTypes | Limits the durable memory classifications allowed by the profile. |
retentionDays | Sets a bounded retention period. |
formationMode | Controls whether extracted candidates are explicit, suggested, or automatic. |
extractionMode | Controls extraction from bounded interaction evidence. It does not change an explicit remember request. |
consolidationEnabled, consolidationThreshold | Enables consolidation and sets its minimum eligible count. |
providerPrivacy | Selects PRIVATE_ONLY, TENANT_APPROVED, or EXTERNAL_WITH_APPROVAL. |
allowedRetrievalModes, defaultRetrievalMode | Limits the usable FAST, BALANCED, DEEP, AUDIT, and PRIVATE modes. |
maxContextTokens | Caps the context budget from 256 through 100,000 tokens. |
externalProviderApprovalRequired | Preserves an approval requirement for external disclosure. |
The current live contract resolves tenant and user scopes. Other scope values remain in the schema for compatible policy ordering but are not a signal that their write path is enabled.
Create a profile
Manage stored profiles through the generated MemoryProfile API. Send only policy choices. Do not send ownerId, tenantId, scopeRef, audit dates, or other server-owned fields.
{
"profileKey": "tenant-agent-memory",
"scopeKind": "TENANT",
"status": "ACTIVE",
"memoryTypes": ["preference", "decision", "todo", "business_fact"],
"retentionDays": 365,
"formationMode": "SUGGESTED",
"extractionMode": "SUGGESTED",
"consolidationEnabled": true,
"consolidationThreshold": 50,
"providerPrivacy": "TENANT_APPROVED",
"allowedRetrievalModes": ["FAST", "BALANCED"],
"defaultRetrievalMode": "BALANCED",
"maxContextTokens": 4096,
"externalProviderApprovalRequired": true,
"policyVersion": "tenant-memory-v1"
}
Only an authorized tenant administrator can create a tenant profile. A user profile may narrow the inherited tenant policy; it cannot widen allowed modes, privacy, retention, context, or formation behavior.
Validate a change
After creating or updating a stored profile:
- Read the effective profile through
/v1/graymatter/omega/memory-profileas the intended user. - Confirm the returned
policyVersion, retrieval modes, provider privacy, and context limit. - Exercise a bounded remember or recall request and inspect its receipt and policy result.
- Test a disallowed mode or provider path and confirm that it fails closed.