Lens
Chat configuration
Grounded chat has sensible defaults, but not one-size-fits-all defaults: a client-facing engagement workspace wants tight, badge-verified answers; a personal sandbox wants breadth and experimentation. Chat behavior is therefore configurable in three layers — workspace defaults, per-user preferences, and per-send overrides — with the most specific layer winning, knob by knob. What is not configurable is the grounding contract itself: citations, the refusal gate, and safety rules sit outside every layer.
The three layers
- Workspace defaults — the
chatDefaultsbag inside workspace settings, owner/admin-set. The baseline every member starts from, and the only layer that can setcustomInstructions— the right place for house rules like an engagement-wide style guide or a conservative temperature. - User preferences— each member's own overrides, set from the chat preferences panel and persisted in the browser, per workspace. Personal and scoped: your preferences in one engagement never leak into another (or onto a colleague's machine). Only explicitly-set keys are stored, so an untouched knob keeps tracking the workspace default.
- Per-send overrides — the optional
optionsfield of the chat request, driven by the composer's inline controls and applying to that one exchange only. Drop the view's data context for a purely document-grounded question, add one-off instructions, then the next message is back on your defaults.
Resolution is per-knob, most specific wins: per-send > user preference > workspace default > built-in. Every layer stores only its overridden knobs, so clearing an override restores inheritance from the layer above — the same precedence discipline as workspace settings generally. Out-of-range numbers are clamped into range server-side rather than rejected — a stale preference can degrade a send, never break it.
The knobs
Chat configuration knobs
A typical setup: the workspace pins temperature low and writes an engagement-wide customInstructions; a member who lives in the graph and report views keeps includeDataContext on and retrievalLimit high in their preferences; and anyone flips a knob in the composer for a single unusual question. After each exchange the route streams back the effectiveconfig it actually applied, rendered as a subtle chip on the answer ("12 sources · verified") — so what happened is never a guess.
Where each layer is set
- Workspace defaults — workspace Settings, owner/admin-gated, stored as the
chatDefaultsbag alongside the other workspace settings (only overridden keys stored;nullclears a key back to the built-in). - User preferences — the preferences panel inside chat, per member per workspace, no admin role required; persisted client-side and sanitized on load, so a corrupt value falls back to the workspace default instead of erroring.
- Per-send overrides— the composer's inline controls next to the send action, submitted as the request's
options; an untouched send carries no options at all, so workspace defaults apply untouched.
What configuration can never touch
Custom instructions cannot override citation or safety rules
customInstructions and per-send instructions alike — are appended inside a delimited style block below the platform's system rules. They are style guidance, not a jailbreak surface: no instruction at any layer can disable the [Sn]/[Dn]citation mandate, bypass the refusal gate when evidence doesn't support an answer, unwrap the untrusted-content delimiters around retrieved chunks, or relax safety rules. "Ignore your citation requirements" in a workspace default does exactly nothing: the grounding contract is enforced by the platform prompt and by deterministic guardrails that run regardless of configuration.The same boundary applies to the other knobs: retrievalLimit and temperature are clamped to platform ranges, turning the groundednessBadge off skips the judge but never the deterministic citation guardrail, and includeDataContext only toggles the [Cn] context blocks the current view already assembles — those blocks ride inside the same untrusted-content delimiters as [Sn] sources, are citable exactly like them, and count as evidence for the groundedness check. The knob grants no data access of its own.
Related
- Retrieval & grounded chat — the pipeline these knobs tune.
- Conversation threading — how configured chats persist and branch.
- Entity graph — where the graph-neighborhood context blocks come from.
- Workspace settings — the same precedence philosophy for operational knobs.