User namespace
The user namespace is the stable "who's asking" context that every agent run has access to. It's the smallest of the four namespaces — and the one that changes least often.
What's in it
Three things, in this order:
- Identity — name, email, role, tenant_id, timezone, locale.
- Preferences — output style preferences, language preferences, notification preferences, opt-ins.
- Profile context — anything the user (or an admin) explicitly pinned: "I'm the VP of Sales at Acme," "I focus on enterprise deals," "I report into our CRO weekly."
The block stays small on purpose. Anything more dynamic belongs in memory (auto-promoted) or skills (explicit playbook). USER is "what the agent should always know about you."
Where it comes from
| Source | Captured into |
|---|---|
| Sign-up + onboarding wizard | Identity + initial preferences |
| Settings → Profile | Identity edits |
| Settings → Preferences | Output style, language, notifications |
| Settings → Profile context | Pinned profile notes (free text) |
| Memory promotion pipeline | Pinned facts that recur enough to become preferences |
The last one is the magic: if you tell the agent "respond in JSON" across 10+ different runs, the promotion pipeline promotes that into the USER namespace as a stable preference. The agent stops asking and starts complying by default.
Output style
The most-leveraged piece of the namespace. Options:
| Style | Output behavior |
|---|---|
| Brief (default) | Tight summaries, bullets where helpful, no preamble. |
| Detailed | Multi-paragraph synthesis with section headings. |
| JSON | Structured object matching the implied schema. |
| Markdown table | Tabular when there's tabular data; falls back to brief. |
| Voice | Conversational tone, full sentences. Used by speech surfaces. |
The orchestrator respects this on every run. Subagents inherit it. You can override per-run by saying "respond in X" — the override applies to that run only and doesn't change your preference.
Locale + timezone
- Locale drives string formatting (currency, dates, numbers) in agent output.
- Timezone is anchored to your profile and used everywhere the agent emits a relative time ("3 days ago", "next Tuesday at 10am EST").
If you travel, override via Settings → Preferences → Working timezone — this changes notification windows + scheduled-action timing without touching the canonical preference.
Notification preferences
Three channels:
| Channel | When it fires | Configurable? |
|---|---|---|
| In-app | Always, can't disable | No — required for the Inbox flow |
| Pending actions, daily Today summary, weekly digest | Per-category opt-in | |
| Push | Pending actions, mentions | Browser permission required |
Quiet hours are honored across all three: if you're outside your working window, async notifications are batched and delivered when you're back on.
Profile context
A free-text field where you (or your admin) pin context that should always be available to the agent. Examples:
I'm the VP of Sales at Acme Corp, focused on the enterprise segment
(>$50K ACV deals). My team has 6 AEs and 2 SDRs. I report to the
CRO and present pipeline weekly. Prefer concise insights — give me
the "what's different from last week" framing.
The orchestrator reads this on every run and weaves it into its reasoning. Keep it short — 200 words is plenty; 2000 words is too many.
Multi-tenant impersonation (cloud only)
Cloud-edition support engineers can impersonate a user with proper audit-logged authorization. When impersonation is active, the agent's USER namespace reflects the impersonated user, not the impersonator — so the agent behaves identically to how it would for the real user. A persistent banner shows "Impersonating <user>" at the top of every page so it's never ambiguous.
Self-host doesn't have impersonation (no separation between platform operator and tenant).
Read next
- Knowledge graph — the substrate under all four namespaces.
- Settings surface — where most of the USER namespace gets edited.