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
| Values | e.g. conservative · balanced · immersive (per product contract) |
| Default | balanced |
| UI | Basic & Expert · Setup |
| Purpose | Coarse knob for how “real” vs safe the simulation feels across subsystems. |
| Learner impact | High — changes tone, risk-taking, and density of drama. |
| Operational impact | May interact with routing and memory policies; validate with pilots. |
simulation_policy.fallback_policy
| Values | e.g. none · minimal · role-safe |
| Default | role-safe |
| UI | Basic & Expert · Setup |
| Purpose | How agents behave when primary routing fails or is uncertain. |
| Learner impact | High — affects whether users see errors vs safe generic guidance. |
| Operational impact | Safer modes reduce off-brand outputs but may feel repetitive. |
simulation_policy.routing.mode
| Values | e.g. adaptive · strict · permissive |
| Default | adaptive |
| UI | Basic & Expert · Channels |
| Purpose | How rigidly the router enforces channel and role boundaries. |
| Learner impact | High — strict reduces cross-talk; permissive increases flexibility and risk. |
| Operational impact | Stricter routing can increase retries and LLM calls. |
simulation_policy.routing.strict_channel_enforcement
| Type | boolean |
| Default | true |
| UI | Expert · Channels |
| Purpose | Harder enforcement of correct channel for a message. |
| Learner impact | Medium — wrong-channel posts get redirected or blocked more often. |
| Operational impact | Can increase clarification loops. |
simulation_policy.routing.max_agent_handoffs
| Type | integer |
| Default | 2 |
| UI | Expert · Channels |
| Purpose | Caps handoffs between agents for one user turn. |
| Learner impact | Medium — lower values shorten multi-specialist flows. |
| Operational impact | Lower values reduce LLM spend; higher values increase depth. |
simulation_policy.routing.direct_mention_priority_boost
| Type | float |
| Default | 0.25 |
| UI | Expert · Channels |
| Purpose | Boosts priority when users @mention agents. |
| Learner impact | Medium — improves responsiveness to explicit mentions. |
| Operational impact | Minor cost shift toward mentioned agents. |
simulation_policy.routing.dm_routing
| Type | object (enabled, direct/private/single-responder toggles, confidence threshold, keyword list) |
| Default | Enabled with direct-mention + private-intent DM routing on, minimum confidence 0.7 |
| UI | Expert · Channels |
| Purpose | First-class policy for when channel traffic should shift into private DM follow-up. |
| Learner impact | High — changes whether agents continue in-channel or move into DM for realism/privacy tone. |
| Operational impact | Over-aggressive settings can hide context from channels; tune alongside incident/privacy rules. |
simulation_policy.routing.dm_routing.enabled
| Type | boolean |
| Default | true |
| Purpose | Master toggle for DM routing behavior beyond sensitive-category forcing. |
simulation_policy.routing.dm_routing.allow_for_direct_mentions
| Type | boolean |
| Default | true |
| Purpose | If on, direct @mentions can switch to DM follow-up when confidence threshold is met. |
simulation_policy.routing.dm_routing.allow_for_private_intent
| Type | boolean |
| Default | true |
| Purpose | If on, private-intent phrases (from keyword list) can force DM delivery. |
simulation_policy.routing.dm_routing.allow_for_single_responder
| Type | boolean |
| Default | false |
| Purpose | Optional realism mode: single-responder outcomes default to DM even without mention/keyword cues. |
simulation_policy.routing.dm_routing.min_confidence_for_dm
| Type | float (0..1) |
| Default | 0.7 |
| Purpose | Confidence gate before non-sensitive DM policy rules are applied. |
simulation_policy.routing.dm_routing.private_intent_keywords
| Type | string[] |
| Default | Includes phrases like dm me, message me directly, keep this private |
| Purpose | Phrase list used by routing to detect user intent for private follow-up. |
Privacy & sensitive content
simulation_policy.privacy.auto_dm_for_sensitive
| Type | boolean |
| Default | true |
| UI | Expert · Approvals |
| Purpose | Whether to route sensitive topics to DMs automatically. |
| Learner impact | High — privacy-sensitive HR topics move off public channels when on. |
| Operational impact | Review for compliance with customer policies. |
simulation_policy.privacy.sensitive_categories
| Type | string[] |
| Default | Includes salary, harassment, performance review, disciplinary action, etc. |
| UI | Expert · Approvals |
| Purpose | Vocabulary of sensitive categories for routing and safeguards. |
| Learner impact | High — expands or narrows what triggers privacy behavior. |
| Operational impact | Over-broad lists over-trigger DMs; too narrow misses risk. |
simulation_policy.privacy.log_redaction
| Type | object |
| Default | Redaction toggles (emails, phones, URLs, etc.) |
| UI | Expert · Approvals |
| Purpose | Controls PII redaction in logs and telemetry paths that honor this policy. |
| Learner impact | Low direct; indirect via safer logging and support workflows. |
| Operational impact | Stricter redaction complicates debugging—balance with support needs. |
Context windows (conversation history)
simulation_policy.context
| Type | object (limits for thread, channel, DM, summaries, casual history, feed mode, …) |
| Default | See SimulationSettings default policy in src/common/models.py |
| UI | Expert · Memory |
| Purpose | Central place for history limits and summarization thresholds that feed agents. |
| Learner impact | High — affects continuity, recall, and how much prior chat informs replies. |
| Operational impact | Token cost scales with limits; summary thresholds affect extra LLM calls. |
Approvals (policy-native)
simulation_policy.approvals
| Type | object (enabled, required_for, timeouts, action_matrix, …) |
| Default | Approvals off by default in template |
| UI | Expert · Approvals |
| Purpose | Structured approval workflows beyond legacy safety_enabled lists. |
| Learner impact | Very high when enabled — introduces wait states and escalations. |
| Operational impact | Requires clear operational ownership for approvers. |
Orchestration (multi-agent bursts)
simulation_policy.orchestration
| Type | object (relay depth, follow-up bursts, cooldowns, escalation keywords, graphs, internal channels, …) |
| Default | See model defaults |
| UI | Expert · Channels |
| Purpose | Limits how agents chain, escalate, and cool down within incident-style flows. |
| Learner impact | High — shapes depth of multi-agent incidents and escalation drama. |
| Operational impact | Deeper chains cost more LLM calls; cooldowns reduce thrash. |
Task assignment profiles
simulation_policy.assignment
| Type | object (enabled flag, default profile, named profiles like at_risk, developing, …) |
| Default | Enabled with conservative defaults |
| UI | Expert · Tasks |
| Purpose | Controls how many active tasks and priority gating per learner profile. |
| Learner impact | Very high — directly affects workload and fairness perception. |
| Operational impact | Mis-tuning can overload learners or starve challenge. |
Memory quality & vectors
simulation_policy.memory
| Type | object (degradation mode, retries, circuit breaker, coherence weights, cross-context mode, …) |
| Default | See model defaults |
| UI | Expert · Memory |
| Purpose | Runtime behavior when vector memory is slow, inconsistent, or conflicting. |
| Learner impact | Medium — affects answer quality under load or conflict. |
| Operational impact | High — interacts with Qdrant and embedding pipelines; strict-fail modes increase errors visible to users. |
Rollout & KPI gates
simulation_policy.rollout
| Type | object (feature booleans such as policy/routing/task engine flags) |
| Default | Generally enables v2 flags in template |
| UI | Expert · Scenario Lab |
| Purpose | Gradual feature rollout and engine version toggles per org. |
| Learner impact | High when toggling behavior-changing engines. |
| Operational impact | Coordinate with release notes; avoid flipping during active cohorts without notice. |
simulation_policy.kpi_gates
| Type | object (thresholds, freeze on regression, windows) |
| Default | Often disabled by default |
| UI | Expert · Scenario Lab |
| Purpose | Optional quality gates for promoting configuration changes or builds. |
| Learner impact | Indirect — used in evaluation / ops workflows more than live UX. |
| Operational impact | When enabled, can block promotions if metrics regress. |
simulation_policy.propagation_sla
| Type | object (latency targets, degraded event caps, evaluation window) |
| Default | Enabled with targets in template |
| UI | Expert · Scenario Lab |
| Purpose | SLO-style controls for consequence / state propagation latency and quality. |
| Learner impact | Medium — stricter SLA may surface warnings or degraded modes sooner. |
| Operational impact | May increase monitoring noise if thresholds are too tight. |
Ambient nudges
simulation_policy.ambient
| Type | object (meeting reminders, proactive DM, cooldowns, per-trigger cooldowns, …) |
| Default | Enabled with cooldowns in template |
| UI | Expert · Scenario Lab (and related surfaces) |
| Purpose | Controls proactive DM and ambient check-ins tied to obligations/meetings. |
| Learner impact | High — affects nudge frequency and perceived surveillance. |
| Operational impact | High LLM and send volume if cooldowns are too short. |
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
| Type | object (thresholds, prompt templates, categories) |
| Default | Versioned registry scaffold |
| UI | Expert · Scenario Lab |
| Purpose | Dynamic tuning and template hooks for org-specific config without code deploys (where supported). |
| Learner impact | Varies — depends on what your deployment wires through the registry. |
| Operational impact | Risk of misconfiguration; restrict to expert admins. |
simulation_policy.tools
| Type | object (e.g. external calls, approval requirements for tools) |
| Default | Allows external calls with empty approval list in template |
| UI | Expert · Approvals |
| Purpose | Governs tool invocation safety (external APIs, dangerous actions). |
| Learner impact | High when tools fail closed — users see blocked actions. |
| Operational impact | Critical for security reviews and enterprise pilots. |
Related
- Full top-level catalog — includes the
simulation_policyobject as a whole. - Architecture system design — request → policy → agents → memory.