On SimulationSettings, simulation_policy is a single JSON document that holds fine-grained controls: realism, routing, privacy, orchestration, assignment, memory, rollout, KPI gates, propagation, ambient behavior, registry entries, and tool access. The admin API exposes these as individual paths (see POLICY_PATH_PARAMETER_MAPPINGS in src/apis/simulation_admin/settings.py). How updates behave: New values usually merge into the existing policy rather than replacing the whole object. Always validate behavior in a non-production org before rolling out widely. Companion page: Top-level fields that are not under simulation_policy are listed in Simulation settings — full catalog. Basic vs Expert coverage: Mode labels on this page are sourced from POLICY_PATH_PARAMETER_MAPPINGS; all documented policy paths are included with their current UI mode.

Experience & routing

simulation_policy.realism_profile

Valuese.g. conservative · balanced · immersive (per product contract)
Defaultbalanced
UIBasic & Expert · Setup
PurposeCoarse knob for how “real” vs safe the simulation feels across subsystems.
Learner impactHigh — changes tone, risk-taking, and density of drama.
Operational impactMay interact with routing and memory policies; validate with pilots.

simulation_policy.fallback_policy

Valuese.g. none · minimal · role-safe
Defaultrole-safe
UIBasic & Expert · Setup
PurposeHow agents behave when primary routing fails or is uncertain.
Learner impactHigh — affects whether users see errors vs safe generic guidance.
Operational impactSafer modes reduce off-brand outputs but may feel repetitive.

simulation_policy.routing.mode

Valuese.g. adaptive · strict · permissive
Defaultadaptive
UIBasic & Expert · Channels
PurposeHow rigidly the router enforces channel and role boundaries.
Learner impactHigh — strict reduces cross-talk; permissive increases flexibility and risk.
Operational impactStricter routing can increase retries and LLM calls.

simulation_policy.routing.strict_channel_enforcement

Typeboolean
Defaulttrue
UIExpert · Channels
PurposeHarder enforcement of correct channel for a message.
Learner impactMedium — wrong-channel posts get redirected or blocked more often.
Operational impactCan increase clarification loops.

simulation_policy.routing.max_agent_handoffs

Typeinteger
Default2
UIExpert · Channels
PurposeCaps handoffs between agents for one user turn.
Learner impactMedium — lower values shorten multi-specialist flows.
Operational impactLower values reduce LLM spend; higher values increase depth.

simulation_policy.routing.direct_mention_priority_boost

Typefloat
Default0.25
UIExpert · Channels
PurposeBoosts priority when users @mention agents.
Learner impactMedium — improves responsiveness to explicit mentions.
Operational impactMinor cost shift toward mentioned agents.

simulation_policy.routing.dm_routing

Typeobject (enabled, direct/private/single-responder toggles, confidence threshold, keyword list)
DefaultEnabled with direct-mention + private-intent DM routing on, minimum confidence 0.7
UIExpert · Channels
PurposeFirst-class policy for when channel traffic should shift into private DM follow-up.
Learner impactHigh — changes whether agents continue in-channel or move into DM for realism/privacy tone.
Operational impactOver-aggressive settings can hide context from channels; tune alongside incident/privacy rules.

simulation_policy.routing.dm_routing.enabled

Typeboolean
Defaulttrue
PurposeMaster toggle for DM routing behavior beyond sensitive-category forcing.

simulation_policy.routing.dm_routing.allow_for_direct_mentions

Typeboolean
Defaulttrue
PurposeIf on, direct @mentions can switch to DM follow-up when confidence threshold is met.

simulation_policy.routing.dm_routing.allow_for_private_intent

Typeboolean
Defaulttrue
PurposeIf on, private-intent phrases (from keyword list) can force DM delivery.

simulation_policy.routing.dm_routing.allow_for_single_responder

Typeboolean
Defaultfalse
PurposeOptional realism mode: single-responder outcomes default to DM even without mention/keyword cues.

simulation_policy.routing.dm_routing.min_confidence_for_dm

Typefloat (0..1)
Default0.7
PurposeConfidence gate before non-sensitive DM policy rules are applied.

simulation_policy.routing.dm_routing.private_intent_keywords

Typestring[]
DefaultIncludes phrases like dm me, message me directly, keep this private
PurposePhrase list used by routing to detect user intent for private follow-up.

Privacy & sensitive content

simulation_policy.privacy.auto_dm_for_sensitive

Typeboolean
Defaulttrue
UIExpert · Approvals
PurposeWhether to route sensitive topics to DMs automatically.
Learner impactHigh — privacy-sensitive HR topics move off public channels when on.
Operational impactReview for compliance with customer policies.

simulation_policy.privacy.sensitive_categories

Typestring[]
DefaultIncludes salary, harassment, performance review, disciplinary action, etc.
UIExpert · Approvals
PurposeVocabulary of sensitive categories for routing and safeguards.
Learner impactHigh — expands or narrows what triggers privacy behavior.
Operational impactOver-broad lists over-trigger DMs; too narrow misses risk.

simulation_policy.privacy.log_redaction

Typeobject
DefaultRedaction toggles (emails, phones, URLs, etc.)
UIExpert · Approvals
PurposeControls PII redaction in logs and telemetry paths that honor this policy.
Learner impactLow direct; indirect via safer logging and support workflows.
Operational impactStricter redaction complicates debugging—balance with support needs.

Context windows (conversation history)

simulation_policy.context

Typeobject (limits for thread, channel, DM, summaries, casual history, feed mode, …)
DefaultSee SimulationSettings default policy in src/common/models.py
UIExpert · Memory
PurposeCentral place for history limits and summarization thresholds that feed agents.
Learner impactHigh — affects continuity, recall, and how much prior chat informs replies.
Operational impactToken cost scales with limits; summary thresholds affect extra LLM calls.

Approvals (policy-native)

simulation_policy.approvals

Typeobject (enabled, required_for, timeouts, action_matrix, …)
DefaultApprovals off by default in template
UIExpert · Approvals
PurposeStructured approval workflows beyond legacy safety_enabled lists.
Learner impactVery high when enabled — introduces wait states and escalations.
Operational impactRequires clear operational ownership for approvers.

Orchestration (multi-agent bursts)

simulation_policy.orchestration

Typeobject (relay depth, follow-up bursts, cooldowns, escalation keywords, graphs, internal channels, …)
DefaultSee model defaults
UIExpert · Channels
PurposeLimits how agents chain, escalate, and cool down within incident-style flows.
Learner impactHigh — shapes depth of multi-agent incidents and escalation drama.
Operational impactDeeper chains cost more LLM calls; cooldowns reduce thrash.

Task assignment profiles

simulation_policy.assignment

Typeobject (enabled flag, default profile, named profiles like at_risk, developing, …)
DefaultEnabled with conservative defaults
UIExpert · Tasks
PurposeControls how many active tasks and priority gating per learner profile.
Learner impactVery high — directly affects workload and fairness perception.
Operational impactMis-tuning can overload learners or starve challenge.

Memory quality & vectors

simulation_policy.memory

Typeobject (degradation mode, retries, circuit breaker, coherence weights, cross-context mode, …)
DefaultSee model defaults
UIExpert · Memory
PurposeRuntime behavior when vector memory is slow, inconsistent, or conflicting.
Learner impactMedium — affects answer quality under load or conflict.
Operational impactHigh — interacts with Qdrant and embedding pipelines; strict-fail modes increase errors visible to users.

Rollout & KPI gates

simulation_policy.rollout

Typeobject (feature booleans such as policy/routing/task engine flags)
DefaultGenerally enables v2 flags in template
UIExpert · Scenario Lab
PurposeGradual feature rollout and engine version toggles per org.
Learner impactHigh when toggling behavior-changing engines.
Operational impactCoordinate with release notes; avoid flipping during active cohorts without notice.

simulation_policy.kpi_gates

Typeobject (thresholds, freeze on regression, windows)
DefaultOften disabled by default
UIExpert · Scenario Lab
PurposeOptional quality gates for promoting configuration changes or builds.
Learner impactIndirect — used in evaluation / ops workflows more than live UX.
Operational impactWhen enabled, can block promotions if metrics regress.

simulation_policy.propagation_sla

Typeobject (latency targets, degraded event caps, evaluation window)
DefaultEnabled with targets in template
UIExpert · Scenario Lab
PurposeSLO-style controls for consequence / state propagation latency and quality.
Learner impactMedium — stricter SLA may surface warnings or degraded modes sooner.
Operational impactMay increase monitoring noise if thresholds are too tight.

Ambient nudges

simulation_policy.ambient

Typeobject (meeting reminders, proactive DM, cooldowns, per-trigger cooldowns, …)
DefaultEnabled with cooldowns in template
UIExpert · Scenario Lab (and related surfaces)
PurposeControls proactive DM and ambient check-ins tied to obligations/meetings.
Learner impactHigh — affects nudge frequency and perceived surveillance.
Operational impactHigh LLM and send volume if cooldowns are too short.
Key paths commonly tuned for realism:
  • simulation_policy.ambient.proactive_dm_global_cooldown_minutes — global minimum spacing between proactive DMs.
  • simulation_policy.ambient.proactive_dm_user_cooldown_minutes — cross-trigger per-user cooldown to prevent repetitive nudges.
  • simulation_policy.ambient.proactive_dm_per_trigger_cooldowns_minutes — trigger-specific spacing (missed_obligation, post_meeting_followup, etc.).
  • simulation_policy.ambient.proactive_dm_templates — optional org-defined message templates by trigger to avoid hard-coded wording.

Config registry & tools

simulation_policy.config_registry

Typeobject (thresholds, prompt templates, categories)
DefaultVersioned registry scaffold
UIExpert · Scenario Lab
PurposeDynamic tuning and template hooks for org-specific config without code deploys (where supported).
Learner impactVaries — depends on what your deployment wires through the registry.
Operational impactRisk of misconfiguration; restrict to expert admins.

simulation_policy.tools

Typeobject (e.g. external calls, approval requirements for tools)
DefaultAllows external calls with empty approval list in template
UIExpert · Approvals
PurposeGoverns tool invocation safety (external APIs, dangerous actions).
Learner impactHigh when tools fail closed — users see blocked actions.
Operational impactCritical for security reviews and enterprise pilots.