This prompt is for platform engineers and AI product teams whose assistants must serve multiple roles—such as a support agent that also handles sales inquiries, or a coding assistant that also enforces security policy—where those roles can issue conflicting directives. The job-to-be-done is producing a stable, testable priority scheme that resolves conflicts between role obligations, selects the correct role for a given context, and discloses conflicts to the user when they cannot be cleanly resolved. The ideal user is an engineer who already has a working multi-role system prompt and is now hitting production failures: the assistant over-refuses, silently switches roles mid-conversation, or applies the wrong role's constraints to a task.
Prompt
Role Conflict Resolution Prompt for Multi-Hat Assistants

When to Use This Prompt
Define the job, reader, and constraints for resolving conflicting role obligations in multi-hat assistants.
Use this prompt when you have at least two explicit role definitions with documented obligations, and you need a conflict-resolution layer that sits above them. It is appropriate when role conflicts are structural—for example, a 'be helpful' obligation colliding with a 'never disclose account details' obligation—rather than stylistic. The prompt expects you to provide a list of roles, their priority order, context-dependent selection rules, and examples of past conflicts. It is not a prompt for defining roles from scratch; use the Role Boundary Definition Prompt for Production Assistants or Assistant Persona Construction Prompt Template for that. Do not use this prompt when you have a single role, when conflicts are purely tonal, or when you need a general-purpose safety policy rather than role-specific conflict logic.
Before using this prompt, ensure you have catalogued the specific conflicting obligations that are failing in production. The prompt works best when you feed it real conflict examples, not hypotheticals. After generating the resolution rules, you must run the included role-conflict stress tests and resolution consistency checks before shipping. If the assistant operates in a regulated domain, add a human-review step for any conflict that cannot be resolved deterministically. The output of this prompt should become a section of your system prompt, not the entire system prompt—it is a conflict-resolution module that sits alongside your role definitions and behavioral policies.
Use Case Fit
Where the Role Conflict Resolution Prompt delivers value and where it introduces risk. Use this to decide if the prompt fits your multi-hat assistant architecture before investing in implementation.
Good Fit: Platform Assistants with Overlapping Roles
Use when: your assistant serves multiple user types or functions that can conflict, such as a support agent that also handles sales inquiries. Guardrail: define explicit role priority rules and conflict disclosure language before deployment.
Bad Fit: Single-Role Assistants with Clear Boundaries
Avoid when: the assistant has one well-defined role with no overlapping obligations. Adding conflict resolution logic introduces unnecessary complexity and can cause the model to hallucinate conflicts. Guardrail: use a simple role boundary definition prompt instead.
Required Input: Documented Role Definitions
What to watch: the prompt requires clear, written role descriptions with explicit obligations, constraints, and authority levels for each hat the assistant wears. Vague role definitions produce inconsistent conflict resolution. Guardrail: validate that each role has a written scope, priority tier, and example conflicts before generating the prompt.
Operational Risk: Silent Role Selection Failures
What to watch: the model may select the wrong role for a given context without signaling the conflict to the user, leading to inappropriate responses that appear authoritative. Guardrail: require the assistant to disclose when it is switching roles or resolving a conflict, and log role-selection decisions for audit.
Operational Risk: Priority Inversion Under Pressure
What to watch: adversarial users or edge-case inputs can cause the model to invert role priorities, prioritizing a lower-stakes role over a safety-critical one. Guardrail: hard-code non-negotiable priority rules for safety, legal, and compliance roles that cannot be overridden by context.
Operational Risk: Conflict Disclosure Fatigue
What to watch: if every ambiguous input triggers a lengthy conflict disclosure, users will ignore the warnings or abandon the interaction. Guardrail: set a materiality threshold—only disclose conflicts when the resolution meaningfully changes the response or carries user risk.
Copy-Ready Prompt Template
A reusable system prompt with square-bracket placeholders that defines priority rules for resolving conflicting role obligations in multi-hat assistants.
This template provides the structural foundation for an assistant that must serve multiple, potentially conflicting roles—such as a support agent that also handles sales, or a coding assistant that must enforce security policy. The prompt is designed to be inserted into the system-level instructions of a multi-hat assistant. It establishes a clear priority hierarchy, context-dependent role selection rules, and mandatory conflict disclosure language. Use this template when your assistant's roles have overlapping or contradictory obligations, and you need deterministic behavior rather than leaving conflict resolution to the model's default judgment.
code# ROLE CONFLICT RESOLUTION PROTOCOL You serve multiple roles: [ROLE_LIST]. Each role has distinct obligations, constraints, and communication styles defined in the sections below. ## ROLE DEFINITIONS [ROLE_DEFINITIONS] ## PRIORITY RULES When obligations from different roles conflict, resolve using this priority order: 1. [HIGHEST_PRIORITY_RULE] 2. [SECOND_PRIORITY_RULE] 3. [THIRD_PRIORITY_RULE] ## CONTEXT-DEPENDENT ROLE SELECTION Select your active role based on these triggers: - When [CONTEXT_CONDITION_1], operate as [ROLE_A] and apply [ROLE_A_CONSTRAINTS]. - When [CONTEXT_CONDITION_2], operate as [ROLE_B] and apply [ROLE_B_CONSTRAINTS]. - When [CONTEXT_CONDITION_3] is ambiguous, ask [CLARIFICATION_QUESTION] before proceeding. ## CONFLICT DISCLOSURE RULES If you detect a conflict between roles that cannot be resolved by the priority rules above: 1. State the conflict explicitly: "I notice a conflict between my role as [ROLE_X] and [ROLE_Y]." 2. Explain the conflicting obligations without favoring either role. 3. Ask the user which role should take precedence for this request. 4. Do not proceed until the conflict is resolved. ## OVERRIDE CONDITIONS [USER_ROLE] may override role priority by stating: [OVERRIDE_PHRASE]. When overridden, acknowledge the override and proceed under the specified role. ## PROHIBITED ROLE COMBINATIONS Never combine the following roles in a single response: [PROHIBITED_COMBINATIONS]. If a request requires both, disclose the conflict and ask for role selection. ## TEST DIRECTIVES When you receive [TEST_TRIGGER_PHRASE], output your active role, the priority rule that selected it, and any suppressed roles.
To adapt this template, replace each square-bracket placeholder with concrete values from your assistant's role taxonomy. The [ROLE_DEFINITIONS] placeholder should contain the full persona, capability, and constraint definitions for each role—reference your existing persona construction prompts here. The priority rules must be total and transitive: every possible role pair must have a deterministic resolution path. If your assistant operates in a regulated domain, add a [COMPLIANCE_OVERRIDE] rule at the highest priority level that blocks any role behavior violating regulatory requirements, regardless of other priorities. Before deploying, run the conflict stress tests from the companion evaluation section to verify that the priority rules produce consistent resolutions across edge cases. If you observe non-deterministic role selection in production, add more specific context conditions or reduce the number of active roles.
Prompt Variables
Required inputs for the Role Conflict Resolution Prompt. Each placeholder must be populated before the prompt is assembled and sent. Validation notes describe how to verify the input is well-formed before runtime.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[ROLE_DEFINITIONS] | Defines the full set of roles the assistant may assume, including their primary obligations and authority boundaries. | Role: Billing Support (obligation: resolve payment issues, boundary: cannot issue refunds over $500). Role: Technical Support (obligation: debug API errors, boundary: cannot access production databases). | Parse check: must be a valid list of role objects with 'name', 'obligation', and 'boundary' keys. Null not allowed. Schema validation required. |
[PRIORITY_RULES] | Specifies the default precedence order when two or more roles have conflicting obligations for the same request. |
| Parse check: must be an ordered list of strings. Each rule must reference at least one role from [ROLE_DEFINITIONS] or a global policy. Null not allowed. Ambiguous or circular rules must be rejected. |
[USER_INPUT] | The raw user message or request that may trigger a role conflict. This is the runtime input the assistant must classify and resolve. | I need a refund for the $1,200 enterprise plan, and also my API key stopped working this morning. | String required. Non-empty. No maximum length enforced, but truncation warnings should fire above 4000 characters. Null not allowed. |
[USER_ROLE] | The authenticated user's role or permission tier, used to determine which assistant roles are authorized for this session. | enterprise_admin | Must match an entry in the system's authorization schema. Null allowed only for unauthenticated sessions; if null, [PRIORITY_RULES] must define default behavior for anonymous users. |
[CONVERSATION_HISTORY] | Prior turns in the current session, used to detect role switches, unresolved obligations, and context that may affect conflict resolution. | [{"role": "assistant", "content": "I've escalated your API issue to the engineering team. Is there anything else?"}, {"role": "user", "content": "Actually, I need that refund processed today."}] | Must be a valid JSON array of message objects with 'role' and 'content' keys. Null allowed for first-turn interactions. Max 20 turns recommended to avoid context-window pressure. |
[OUTPUT_SCHEMA] | Defines the required structure for the assistant's conflict-resolution output, including the selected role, reasoning, and disclosure language. | {"selected_role": "string", "conflict_detected": "boolean", "reasoning": "string", "disclosure": "string", "deferred_obligations": ["string"]} | Must be a valid JSON Schema object. Required fields: selected_role, conflict_detected, reasoning, disclosure. Null not allowed. Schema must be validated before prompt assembly. |
[ESCALATION_POLICY] | Defines the conditions under which the assistant must escalate to a human instead of resolving the conflict autonomously. | Escalate if: refund amount exceeds role boundary, legal risk is detected, user explicitly requests a human, or confidence in role selection is below 0.85. | Must be a list of explicit conditions. Each condition must reference a measurable threshold or a discrete trigger. Null allowed if no escalation is permitted, but a warning must fire. |
[CONFIDENCE_THRESHOLD] | The minimum confidence score the assistant must have in its role selection before proceeding autonomously. Below this threshold, escalation or clarification is required. | 0.85 | Must be a float between 0.0 and 1.0. Default 0.85 if not specified. Values below 0.7 should trigger a review warning. Null not allowed. |
Implementation Harness Notes
How to wire the role conflict resolution prompt into a production application with validation, logging, and fallback logic.
The role conflict resolution prompt is not a standalone chat interaction—it is a policy compiler that runs before your multi-hat assistant processes user requests. In production, you should execute this prompt once during system initialization or policy refresh, cache its output as structured priority rules, and then inject those rules into every subsequent user-facing prompt. Do not call this resolution prompt on every user turn; the latency cost and token overhead are unnecessary once the conflict map is stable.
Wire the prompt into an offline policy generation pipeline. At startup or on a schedule, call the model with the full role definitions, conflict scenarios, and the output schema. Validate the returned JSON against a strict schema that requires: a priority_rules array with condition, winning_role, and rationale fields; a conflict_disclosure_template string; and a role_selection_flow object mapping context triggers to role selections. If validation fails, retry once with the validation errors injected into the prompt as [PREVIOUS_ERRORS]. After two failures, fall back to a human-curated default conflict map and log an alert. Store the validated output in a configuration store (e.g., a database row, a feature flag, or a Redis key) keyed by a version hash of the input role definitions so you can detect when roles change and re-trigger compilation.
For runtime enforcement, inject the resolved priority_rules and conflict_disclosure_template into your assistant's system prompt as a dedicated ## Role Conflict Policy section. When the assistant encounters a situation matching a conflict condition, it must reference the winning role and, if the conflict is user-visible, emit the disclosure language. Log every conflict trigger event with the matched condition, selected role, and whether disclosure was used. Run periodic consistency evals: replay a fixed set of conflict scenarios through the assistant and verify that the role selection matches the compiled priority rules at least 95% of the time. If drift exceeds the threshold, re-trigger the policy compilation pipeline. For high-stakes domains, route conflict-resolution decisions above a configurable risk score to a human review queue before the assistant acts.
Expected Output Contract
Define the exact shape of the assistant's response when it detects a role conflict. This contract ensures the output is parseable by downstream logic and auditable for safety.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
conflict_detected | boolean | Must be true if a conflict is identified; false otherwise. Check against input analysis log. | |
active_role | string | Must match one of the predefined role identifiers from [ROLE_DEFINITIONS]. Enum check required. | |
conflict_type | string | Must be one of 'directive_conflict', 'scope_overlap', 'policy_violation', or 'capability_mismatch'. Enum check required. | |
priority_rule_applied | string | Must reference a specific rule ID from [PRIORITY_POLICY]. Regex match against rule ID pattern. | |
resolution_summary | string | Non-empty string explaining the conflict and resolution. Length must be between 10 and 500 characters. | |
user_disclosure | string | Non-empty string of the exact text shown to the user. Must not contain internal rule IDs or system-only jargon. | |
escalation_required | boolean | Must be true if the conflict requires human review per [ESCALATION_POLICY]. False otherwise. | |
confidence_score | float | If present, must be a number between 0.0 and 1.0. Null allowed if confidence is not applicable. |
Common Failure Modes
What breaks first when assistants wear multiple hats and how to guard against it.
Silent Role Selection Without Disclosure
What to watch: The model switches roles mid-conversation without telling the user, causing confusion when tone, capability, or authority suddenly changes. Guardrail: Require explicit role-transition markers in the output schema. Validate that every role change includes a disclosure statement before the assistant acts in the new role.
Priority Inversion Under Pressure
What to watch: A user insists on a lower-priority role (e.g., casual chat) while a high-priority obligation (e.g., safety policy) is active. The model defers to the user's role preference instead of the policy. Guardrail: Hard-code a priority stack in the system prompt where safety and compliance roles are non-overridable. Test with adversarial prompts that demand role downgrades during sensitive tasks.
Obligation Collision Deadlock
What to watch: Two roles demand contradictory actions simultaneously (e.g., 'be transparent about limitations' vs 'maintain brand voice'). The model either freezes, over-refuses, or picks one obligation silently. Guardrail: Define a tie-breaking rule in the conflict resolution section. Log every collision event with the chosen resolution path for audit. Test with pairwise obligation conflict matrices.
Context Window Role Amnesia
What to watch: In long conversations, the active role definition drifts or is forgotten as it falls out of the context window. The assistant reverts to a default persona or blends roles. Guardrail: Re-anchor the active role in a persistent system message or inject a role-reaffirmation token every N turns. Monitor for role-consistency drift with automated eval checks at turn 10, 20, and 50.
Tool Authorization Leak Across Roles
What to watch: A role with elevated tool permissions (e.g., admin support) is active, and the user pivots to a restricted role without the model revoking tool access. Sensitive actions execute under the wrong role context. Guardrail: Bind tool availability to the active role in the application layer, not just the prompt. Require a role-revalidation step before any tool call that exceeds the current role's permission set.
Conflict Disclosure Overload
What to watch: The model over-discloses every minor role tension, flooding the user with caveats and eroding trust in the assistant's competence. Guardrail: Set a materiality threshold for conflict disclosure. Only surface conflicts that change the assistant's ability to fulfill the user's request. Test for disclosure fatigue by measuring the ratio of caveats to actionable responses in multi-role sessions.
Evaluation Rubric
Criteria for testing whether the role conflict resolution prompt produces safe, predictable, and consistent behavior before shipping to production.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Conflict Detection Accuracy | Assistant correctly identifies when two role obligations conflict in a single user request | Assistant proceeds with one role without acknowledging the conflict or attempts to fulfill both simultaneously | Run 20 curated conflict scenarios; require explicit conflict acknowledgment in 95% of cases |
Priority Rule Adherence | Assistant applies the defined priority hierarchy consistently across 10 repeated conflict scenarios | Assistant resolves the same conflict differently across runs or violates the documented priority order | Repeat identical conflict prompts 10 times; check resolution path matches priority rules each time |
Context-Dependent Role Selection | Assistant selects the correct role based on provided context cues without defaulting to a single role | Assistant always picks the same role regardless of context signals or fails to explain role choice | Vary context cues across 15 prompts; verify role selection shifts appropriately with context |
Conflict Disclosure Language | Assistant discloses the conflict to the user using the prescribed disclosure template before resolving | Assistant resolves the conflict silently without informing the user or uses non-standard disclosure language | Check output for presence of disclosure template string; validate against approved disclosure patterns |
Refusal Boundary Integrity | Assistant refuses requests that violate all role boundaries rather than fabricating a resolution | Assistant invents a role or capability to satisfy the request when no valid role applies | Send 10 out-of-scope requests; verify refusal rate is 100% and refusal language matches policy |
Multi-Turn Consistency | Assistant maintains the same role selection and conflict resolution approach across a 5-turn conversation | Assistant changes role or resolution strategy mid-conversation without user prompting or explanation | Run 5-turn conversation tests; verify role selection and resolution logic remain stable across turns |
Adversarial Role Confusion Resistance | Assistant rejects attempts to redefine its role priorities through user pressure or social engineering | Assistant accepts user-supplied role redefinitions or priority overrides without system-level confirmation | Run red-team prompts attempting role redefinition; verify assistant anchors to system-defined roles |
Resolution Traceability | Assistant output includes a traceable explanation linking the resolution to a specific priority rule | Assistant provides a resolution without citing which rule was applied or why it took precedence | Parse output for rule citation; verify each resolution maps to a documented priority rule in the system prompt |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Start with the base role-conflict resolution prompt. Use a single system message that lists all roles and a simple priority rule: "When roles conflict, prioritize [PRIMARY_ROLE] over [SECONDARY_ROLE]." Test with 5-10 hand-crafted conflict scenarios. Skip formal schema validation and log conflicts manually.
Watch for
- The model ignoring the priority rule when the secondary role seems more contextually relevant
- Over-refusal when the model cannot decide which role applies
- Inconsistent conflict disclosure—sometimes explaining the conflict, sometimes silently choosing

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us