Skip to main content
MemoryOS has one SDK and multiple backend memory behaviors. Choose the tenant domain based on the product you are building. Your application code should still center on add() and get().

Current production choices

Tenant domainStatusUse for
General EngineAvailableAny AI product that needs durable user facts, preferences, goals, procedures, relationships, or expertise
EdTech SchemaAvailableTutoring, exam prep, learning apps, student dashboards
Customer Support SchemaAvailableSupport agents, support copilots, customer continuity, escalation context

Upcoming domains

DomainCurrent docs posture
HR TechComing soon; use the general engine for production HR products today
HealthTechComing soon; use the general engine for production healthcare products today
AgriTechPlanned
If you are building an HR product today, start with the general engine and model your own HR source-of-truth data in your application. Move to the HR domain schema when MemoryOS exposes it as an available tenant domain.

Decision guide

Use the general engine when:
  • the product does not need domain-specific structured profiles
  • you only need prompt-ready memory context
  • you want the fastest integration path
Use EdTech when:
  • users are students, learners, teachers, tutors, or education admins
  • the AI should remember weak topics, strong topics, grade level, curriculum, exams, or learning style
  • you need student profile data for dashboards
Use Support when:
  • users are customers contacting support
  • the AI should remember open issues, customer preferences, sentiment patterns, and escalation risk
  • support admins need customer memory summaries or support stats

Activation

Check available domain choices:
GET /v1/tenant/domain-schema
Authorization: ApiKey mem_...
Enable a domain:
PATCH /v1/tenant/domain-schema
Authorization: ApiKey mem_...
Content-Type: application/json
{
  "domain_schema": "edtech"
}
Disable a domain and return to the general engine:
{
  "domain_schema": null
}

Integration rule

Do not branch your main model-call path by domain unless your product UI needs it.
result = mem.get(
    query=current_task,
    external_user_id=external_user_id,
    context_max_tokens=700,
)

system_prompt = BASE_PROMPT
if result.has_context:
    system_prompt = f"{system_prompt}\n\n{result.system_prompt_addition}"
MemoryOS decides whether the tenant is general, EdTech, or Support on the backend.

When to use profile endpoints

Use profile or tenant domain endpoints for dashboards and settings screens. Use get() for model calls.
NeedAPI
Prompt context for an AI responsePOST /v1/memories/retrieve or SDK get()
Store conversation memoryPOST /v1/memories/add or SDK add()
Student profile UIGET /v1/memories/edtech-profile
Support customer dashboardGET /v1/tenant/customers
Support aggregate statsGET /v1/tenant/support-stats
Tenant domain settingsGET /v1/tenant/domain-schema or PATCH /v1/tenant/domain-schema