Response styles are voice presets, not personalities. Each one is a single short directive appended to the composed system prompt. The base persona and refusal norms don't change; the assistant's register does. Set a default in Settings → Behavior; override per-chat via the STYLE chip in the composer's tools popover.
The five styles
Each style is defined by a single short directive appended to the composed system prompt. The base persona is unchanged; only the register on the axes below shifts.
Precedence — chat override wins
The send route reads two potential style sources: the current chat's response_style column (per-chat override), and the profile's ui_prefs.response_style (account default). The chat-level value wins. If a chat has no override set, the profile default applies. If neither is set, Default (no directive) is used.
Where the style directive sits in the composed prompt
After the base persona and before the memory / custom / project / knowledge blocks. Order matters — later blocks are treated as lower-priority context. Style is high-priority so it shapes tone even when a project's custom instructions might otherwise push the reply toward a different register.
Changing the style mid-chat
Toggling the STYLE chip in the composer applies from the NEXT turn forward. Previous replies keep their original register (they're already persisted). If you want an existing reply in a different register, regenerate it after changing the style — the sibling branch will use the new directive.
When each style earns its keep
Default: general use. Concise: quick lookups, drafting short messages, when you already know what you want. Thorough: research questions, math/logic problems, code that needs careful reasoning. Direct: technical debugging, business decisions where hedging wastes time, editing where you want opinionated feedback. Friendly: casual conversation, brainstorming, tutoring / learning scenarios.
Docs: Memory and instructions