apps/docs/concepts/user-profiles.mdx
User profiles are automatically maintained collections of facts about your users that Supermemory builds from all their interactions. Think of it as a persistent "about me" document that's always up-to-date.
<CardGroup cols={2}> <Card title="Instant Context" icon="bolt"> No search needed — comprehensive user info always ready </Card> <Card title="Auto-Updated" icon="rotate"> Profiles update as users interact with your system </Card> </CardGroup>Traditional memory systems rely entirely on search:
| Problem | Search Only | With Profiles |
|---|---|---|
| Context retrieval | 3-5 queries | 1 call |
| Response time | 200-500ms | 50-100ms |
| Basic user info | Requires specific queries | Always available |
Search is too narrow: When you search for "project updates", you miss that the user prefers bullet points, works in PST, and uses specific terminology.
Profiles provide the foundation: Instead of searching for basic context, profiles give your LLM a complete picture of who the user is.
Profiles separate two types of information:
Long-term, stable facts:
Recent context and temporary states:
Profiles are built automatically through ingestion:
Profiles don't replace search — they complement it:
User asks: "Can you help me debug this?"
Without profiles: LLM has no context about expertise, projects, or preferences.
With profiles: LLM knows:
Profiles provide: expertise level, communication preferences, tools used, current projects.
const systemPrompt = `You are assisting ${userName}.
Background: ${profile.static.join('\n')}
Current focus: ${profile.dynamic.join('\n')}
Adjust responses to their expertise and preferences.`;
Profiles provide: product usage, previous issues, tech proficiency.
Profiles provide: learning style, completed courses, strengths/weaknesses.
Profiles provide: preferred languages, coding style, current project context.