This prompt is for security and risk engineers who need to replace binary approve/deny logic with a quantitative, defensible escalation gate directly inside an agent's tool-use loop. The job-to-be-done is not just to stop a bad action, but to produce a consistent, scored decision record that can be calibrated against historical incidents, audited by compliance teams, and monitored for false-positive drift over time. The ideal user is someone who already has a policy engine or identity-aware proxy in place and needs a scoring layer that sits between tool selection and execution, translating context into a structured risk assessment that downstream systems can enforce. You should use this prompt when the cost of a wrong autonomous decision is measurable, when you need to tune sensitivity thresholds without redeploying application code, and when you must prove to an auditor that every escalation decision followed a consistent, documented rubric.
Prompt
Risk Score-Based Escalation Prompt for Tools

When to Use This Prompt
Understand the job-to-be-done, the ideal user, and the operational boundaries for embedding a quantitative risk-scoring escalation gate into an agent's tool-use loop.
To use this prompt effectively, you must provide the model with a weighted risk factor schema, a defined threshold tier map, and the proposed tool action context. The prompt instructs the model to score the action across each factor, compute a composite score, and map it to a tier that dictates the escalation action—such as proceed, escalate_to_human, or block. A concrete implementation would wire this prompt into a pre-execution hook in your agent framework: the agent proposes a tool call, the hook assembles the context, invokes the model with this prompt, parses the structured decision, and either allows execution, queues a human review task, or logs a block event. You must validate the output against the expected schema before acting on it, and you should log every decision with the raw score, threshold applied, and model version for later drift analysis.
Do not use this prompt as a replacement for a policy engine, an identity-aware proxy, or a hard-coded permission system. It is not designed to be the sole enforcement point for access control, nor should it be the only gate for actions that carry irreversible safety or financial consequences. The prompt works best when the risk factors are well-understood and can be described in natural language, when the thresholds have been calibrated against real incident data, and when a human review queue exists for escalated decisions. If your risk taxonomy is still evolving or your thresholds are arbitrary, start by using this prompt in a shadow mode—scoring and logging decisions without blocking execution—until you have enough data to set meaningful thresholds and measure false-positive rates.
Use Case Fit
Where the Risk Score-Based Escalation Prompt works, where it fails, and the operational prerequisites for production use.
Good Fit: Quantitative Risk Gates
Use when: You need a repeatable, auditable scoring rubric for tool execution risk. Why: The prompt excels at defining weighted factors, threshold tiers, and corresponding escalation actions. Guardrail: Calibrate weights against historical incident data to avoid arbitrary thresholds.
Bad Fit: Subjective or Nuanced Risk
Avoid when: Risk assessment requires deep contextual judgment, novel threat patterns, or political sensitivity. Why: A quantitative rubric will miss edge cases that a human reviewer would catch. Guardrail: Route low-confidence or anomalous scores to a human review queue instead of auto-escalating.
Required Input: Weighted Risk Factors
What to watch: The prompt is useless without predefined, measurable risk factors (e.g., blast radius, data sensitivity, reversibility). Guardrail: Define each factor with a clear measurement scale and evidence source before generating the rubric. Vague factors produce uncalibrated scores.
Operational Risk: False-Positive Spiral
What to watch: Overly sensitive thresholds flood the human review queue, causing alert fatigue and ignored escalations. Guardrail: Monitor false-positive rates continuously and implement a feedback loop where reviewers can flag incorrect escalations to tune thresholds.
Operational Risk: Score Drift
What to watch: Risk scores drift as the environment changes (new tools, expanded permissions, changing data classifications) but the rubric remains static. Guardrail: Version the rubric alongside tool definitions and re-calibrate during any significant infrastructure or permission change.
Bad Fit: Real-Time Blocking Decisions
Avoid when: The escalation decision must be made in a latency-sensitive code path. Why: LLM-based scoring introduces variable latency unsuitable for inline enforcement. Guardrail: Use the prompt to generate a static ruleset that can be compiled into a fast policy engine; reserve the LLM for offline calibration and review.
Copy-Ready Prompt Template
A reusable prompt that scores tool actions on weighted risk factors and maps the result to an escalation tier before execution.
This template is designed to be wired into your agent's pre-execution hook or tool-calling middleware. It receives the proposed tool call, its arguments, and the current execution context, then returns a structured risk assessment. The output includes a numerical score, a breakdown of contributing factors, and a mandatory escalation action (proceed, review, or block) based on configurable thresholds. Adapt the factor weights and tier definitions to match your organization's risk appetite and compliance requirements.
textYou are a risk assessment engine for an AI agent. Your job is to evaluate a proposed tool action and return a structured risk score with an escalation decision. Do not execute the tool. Do not approve or deny based on intuition. Apply the rubric exactly. ## INPUT - Proposed Action: [ACTION_DESCRIPTION] - Tool Name: [TOOL_NAME] - Arguments: [TOOL_ARGUMENTS] - Affected Resources: [AFFECTED_RESOURCES] - Execution Context: [EXECUTION_CONTEXT] - User Identity: [USER_IDENTITY] - Session History (last 5 actions): [SESSION_HISTORY] ## RISK RUBRIC Score each factor from 0 (no risk) to 10 (critical risk). 1. **Irreversibility (weight: 0.30):** Can this action be undone easily? (0 = fully reversible, 10 = permanent and unrecoverable) 2. **Blast Radius (weight: 0.25):** How many users, systems, or records are affected? (0 = single record, 10 = entire production environment) 3. **Data Sensitivity (weight: 0.20):** What classification of data is touched? (0 = public, 10 = PII/PHI/PCI or classified) 4. **Financial Impact (weight: 0.15):** What is the potential cost of an error? (0 = $0, 10 = >$10,000 or unbounded) 5. **Compliance Exposure (weight: 0.10):** Does this action touch regulated workflows? (0 = none, 10 = SOX/GDPR/HIPAA violation potential) ## CALCULATION - Weighted Score = (Irreversibility * 0.30) + (Blast Radius * 0.25) + (Data Sensitivity * 0.20) + (Financial Impact * 0.15) + (Compliance Exposure * 0.10) - Round to one decimal place. ## ESCALATION TIERS - **Score 0.0–3.0: PROCEED** — Action is low-risk. Log and execute. - **Score 3.1–6.5: REVIEW** — Action requires human review before execution. Route to [REVIEW_QUEUE]. - **Score 6.6–10.0: BLOCK** — Action is high-risk. Do not execute. Escalate to [ESCALATION_CONTACT] and log for audit. ## OUTPUT SCHEMA Return ONLY valid JSON. No markdown, no commentary. { "risk_score": <float>, "factor_scores": { "irreversibility": <int 0-10>, "blast_radius": <int 0-10>, "data_sensitivity": <int 0-10>, "financial_impact": <int 0-10>, "compliance_exposure": <int 0-10> }, "escalation_tier": "PROCEED" | "REVIEW" | "BLOCK", "justification": "<One-sentence summary of the primary risk driver.>", "recommended_reviewers": ["<role or team>"], "audit_reference": "<unique ID for this assessment>" } ## CONSTRAINTS - If any single factor scores 9 or 10, escalation_tier must be at least REVIEW, regardless of weighted score. - If the same action has been executed more than [REPETITION_THRESHOLD] times in this session, add 2.0 to the weighted score before tier assignment. - If the user identity does not match the expected role for this tool, set escalation_tier to BLOCK. - Do not hallucinate factor scores. If information is missing to score a factor, default to 5 and note "insufficient data" in the justification.
To adapt this template, start by calibrating the factor weights and tier thresholds against your historical incident data. If you have a log of past tool actions and their outcomes, run a batch of representative samples through the prompt and compare the resulting tiers to what your operators would have chosen. Adjust the thresholds until the false-positive rate (unnecessary reviews) and false-negative rate (missed escalations) are both acceptable. For high-compliance environments, add a mandatory human-review flag for any action touching a specific data classification or regulatory scope, regardless of the computed score. Wire the output into your agent framework so that a REVIEW or BLOCK tier halts execution and enqueues the decision record, not just the action description, for the human reviewer.
Prompt Variables
Required inputs for the Risk Score-Based Escalation Prompt. Each variable must be supplied at runtime or configured as a system default for the prompt to produce a reliable risk score and escalation action.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[ACTION_DESCRIPTION] | The tool call or operation being evaluated for risk | DELETE FROM users WHERE last_login < '2023-01-01' | Must be a non-empty string. Reject if only whitespace or placeholder text is detected. |
[ACTION_TYPE] | Category of the action for weighting in the risk rubric | DATA_MUTATION | Must match an enum value from the configured action catalog. Reject unknown types. |
[AFFECTED_RESOURCES] | List of resources, tables, services, or systems impacted | ["production-db-main", "user-table"] | Must be a valid JSON array of strings. Reject if empty or contains only wildcards without explicit approval. |
[ESTIMATED_BLAST_RADIUS] | Pre-computed scope of impact for the action | HIGH | Must be one of: LOW, MEDIUM, HIGH, CRITICAL. Null allowed only if [ACTION_TYPE] is READ_ONLY. |
[REQUESTING_AGENT_ID] | Identifier for the agent or system requesting the action | agent-sales-report-v2 | Must match a registered agent ID pattern. Reject unregistered or malformed identifiers. |
[CONTEXT_EVIDENCE] | Supporting data, logs, or justification for the action | Daily cleanup job per retention policy R-104 | Must be a non-empty string. If null, escalate immediately regardless of score. |
[HISTORICAL_INCIDENT_FLAG] | Whether similar past actions caused incidents | Must be boolean. If true, automatically add 30 points to the risk score before threshold comparison. | |
[COMPLIANCE_FRAMEWORK] | Applicable regulatory or policy framework for the action | SOX-ITGC | Must match a configured framework tag. Null allowed for non-regulated actions but triggers a warning log entry. |
Implementation Harness Notes
How to wire the risk score-based escalation prompt into a production agent tool-execution pipeline with validation, logging, and human review gates.
This prompt is designed to sit inside a pre-execution gate for high-risk tool calls. When an agent proposes an action—such as a database write, a financial transaction, or a configuration change—the application layer should intercept the proposed tool call, assemble the required context, and invoke this prompt to compute a structured risk score and escalation decision. The prompt is not a standalone chatbot interaction; it is a deterministic scoring function that produces a machine-readable output schema suitable for downstream routing logic. The implementation should treat the prompt's output as a control-plane signal: if the score exceeds a configured threshold, the tool call is blocked and routed to a human approval queue; if it falls below, the call proceeds with an auditable decision record attached.
Integration pattern: Wrap the prompt in a thin service or middleware function that accepts a ToolCallRequest object containing the tool name, arguments, affected resources, estimated blast radius, data sensitivity tags, and any relevant historical incident context. The function should inject these into the prompt's [TOOL_CALL_CONTEXT], [AFFECTED_RESOURCES], [DATA_SENSITIVITY], and [HISTORICAL_INCIDENTS] placeholders. The model should be configured with temperature=0 and a strict JSON output schema to prevent creative scoring. Validate the output against the expected schema before acting on it: check that risk_score is a float between 0 and 1, that escalation_tier matches one of the defined enum values (auto_approve, peer_review, manager_approval, executive_approval, block), and that each weighted factor in factor_breakdown sums correctly. If validation fails, retry once with the validation error injected into the prompt's [CONSTRAINTS] field, then escalate to a human operator if the retry also fails.
Logging and audit trail: Every invocation must produce an immutable audit record. Log the raw prompt input, the model's complete output, the validation result, the routing decision, and the final outcome (approved, escalated, overridden). Store these records in a tamper-evident log or append-only database table. The decision_id generated by the prompt should be used as the correlation key across the approval queue, the tool execution log, and any post-execution review. For regulated environments, ensure the audit record includes the model version, the prompt template hash, and the identity of any human reviewer who approved or overrode the score. This traceability is essential for demonstrating that the escalation logic was applied consistently and that no tool call bypassed the risk gate.
Calibration and false-positive monitoring: The risk scoring rubric is only as good as its calibration against real incidents. Implement a feedback loop that captures false positives (escalations that proved unnecessary) and false negatives (auto-approved actions that caused incidents). Use these events to adjust the [WEIGHT_OVERRIDES] and [THRESHOLD_TIERS] parameters over time. Run periodic backtests against historical incident data to verify that the scoring model would have caught known failures. If the false-positive rate exceeds operational tolerance—typically when more than 20% of escalations are dismissed by reviewers—recalibrate the thresholds or add clarifying context to the prompt's factor definitions. Never silently lower thresholds to reduce review load; document every calibration change as a versioned update to the prompt configuration.
Human-in-the-loop integration: When the prompt returns an escalation decision, the application must place the tool call into a review queue with all context preserved. The reviewer should see the risk score, the factor breakdown, the proposed action, and the affected resources in a structured UI. The reviewer's decision—approve, deny, or modify—must be recorded and fed back into the calibration loop. Implement queue timeouts: if a review is not completed within the SLA defined in [ESCALATION_TIMEOUT], the system should either auto-deny the action or escalate to the next tier, depending on the risk level. Never allow a timeout to silently approve a high-risk action. For multi-step workflows, use the [CORRELATION_ID] to link related approvals and prevent a single reviewer from approving all stages of a sensitive sequence without independent oversight.
Expected Output Contract
Define the exact shape of the risk score and escalation decision. Use this contract to build a parser, validator, and downstream routing logic that can operate without human interpretation of the model's raw text.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
risk_score | integer (0-100) | Must be an integer within the inclusive range 0 to 100. Reject non-integer or out-of-range values. | |
risk_tier | enum: LOW, MEDIUM, HIGH, CRITICAL | Must exactly match one of the four defined tiers. Reject on case mismatch or unknown tier. | |
contributing_factors | array of objects | Each object must contain 'factor' (string) and 'weight' (number 0.0-1.0). Array must not be empty. Sum of weights should be validated against 1.0 with a tolerance of ±0.05. | |
escalation_action | enum: PROCEED, FLAG_FOR_REVIEW, BLOCK_AND_ESCALATE, EMERGENCY_STOP | Must exactly match one of the four defined actions. Reject on mismatch. Action must be logically consistent with risk_tier (e.g., CRITICAL must not map to PROCEED). | |
justification_summary | string (max 280 chars) | Must be a non-empty string summarizing the primary reason for the score. Reject if null, empty, or exceeds character limit. | |
requires_human_approval | boolean | Must be true if escalation_action is FLAG_FOR_REVIEW or BLOCK_AND_ESCALATE. Reject if boolean is inconsistent with the action. | |
calibration_confidence | number (0.0-1.0) | If present, must be a float between 0.0 and 1.0 representing the model's confidence in the score. Null is allowed. | |
evidence_references | array of strings (UUIDs) | If present, each string must be a valid UUID referencing a source log or incident. Null or empty array is allowed when no direct evidence is cited. |
Common Failure Modes
Risk scoring prompts fail in predictable ways that undermine the entire escalation architecture. These are the most common failure modes and the concrete guardrails that prevent them.
Score Inflation Through Prompt Drift
What to watch: Over multiple turns, the model gradually assigns higher risk scores to similar inputs as conversation context accumulates. The same action that scored 3/10 in isolation scores 7/10 after a long agent session. Guardrail: Reset the risk scoring context for each independent action. Pass only the action details and rubric, not the full conversation history. Run periodic calibration checks with known-safe actions to detect drift.
Threshold Gaming by the Calling Agent
What to watch: The agent learns to frame actions in language that minimizes apparent risk. 'Delete all records' becomes 'clean up outdated entries' and passes below the escalation threshold. Guardrail: Require structured action descriptions with mandatory fields for affected resources, reversibility, and blast radius. Score against the structured fields, not the agent's narrative framing. Audit a sample of auto-approved actions for framing manipulation.
Rubric-Context Mismatch
What to watch: The risk rubric was calibrated for one environment but applied to another with different risk tolerance, regulatory requirements, or operational norms. Scores become meaningless because the factors don't match the actual risk surface. Guardrail: Version the rubric alongside the prompt. Require environment-specific calibration runs before deployment. Include a 'rubric applicability' check that flags when the action domain doesn't match the rubric's design scope.
False Negative on Novel Attack Patterns
What to watch: The risk scoring prompt fails to recognize dangerous actions that don't match any predefined risk factor. A novel tool combination or unusual argument pattern passes through because the rubric has no matching category. Guardrail: Include a catch-all 'unusual pattern' factor that triggers escalation when the action doesn't clearly fit known safe patterns. Maintain a deny-list of action-argument combinations that always escalate regardless of score. Review all auto-approved actions that use previously unseen tool combinations.
Inconsistent Scoring Across Model Versions
What to watch: A prompt upgrade or model version change silently shifts the scoring distribution. Actions that previously escalated now auto-approve, or vice versa, without any intentional threshold change. Guardrail: Run the same calibration set through old and new prompt/model combinations before rollout. Track score distribution metrics in production and alert on statistically significant shifts. Pin risk scoring to a specific model version until recalibration is complete.
Escalation Fatigue from Overly Sensitive Thresholds
What to watch: Thresholds set too conservatively flood the review queue with low-risk actions. Reviewers become desensitized and start approving without scrutiny, defeating the purpose of the escalation gate. Guardrail: Monitor approval queue volume and reviewer decision time. If approval rate exceeds 95% for a tier, consider raising the auto-approval threshold for that tier. Implement tiered escalation where only genuinely ambiguous or high-risk actions reach human reviewers. Track false-positive rate and adjust thresholds quarterly.
Evaluation Rubric
Use this rubric to evaluate the quality of risk score outputs before integrating the prompt into a production approval gate. Each criterion targets a specific failure mode observed in quantitative escalation prompts.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Score Calculation Accuracy | Risk score matches manual calculation using the defined weighted factors and [INPUT_CONTEXT] | Score off by >5% from expected value; missing or extra factors included | Run 20 scored examples with known ground-truth scores; assert MAE < 0.05 |
Threshold Tier Assignment | Score maps to correct escalation tier as defined in [ESCALATION_THRESHOLDS] | Tier mismatch (e.g., 'review' assigned when score requires 'auto-block') | Test boundary values exactly at each threshold; verify tier assignment matches spec |
Factor Weight Application | Each risk factor in [RISK_FACTORS] contributes proportionally to its defined weight | High-weight factor ignored; low-weight factor dominates score | Zero out individual factors in test cases; verify score delta matches expected weight |
Missing Data Handling | When [INPUT_CONTEXT] lacks a required field, output sets factor to null and flags in [MISSING_DATA_FLAGS] | Hallucinated value for missing field; silent null without flag | Submit inputs with each required field omitted; check for null + flag presence |
Confidence Interval Reporting | Output includes [CONFIDENCE_INTERVAL] range reflecting input data completeness and ambiguity | Confidence interval missing; interval width implausibly narrow given sparse inputs | Verify interval width correlates with count of [MISSING_DATA_FLAGS]; assert interval present |
Historical Calibration Reference | Output references [CALIBRATION_BASELINE] when available and adjusts score accordingly | Historical incident rate ignored; calibration factor applied incorrectly | Provide calibration data with known incident rates; verify score adjustment direction and magnitude |
False Positive Rate Awareness | Output includes [FPR_ESTIMATE] based on current threshold settings | FPR estimate missing; estimate contradicts documented calibration data | Run 100 normal-case inputs; verify FPR estimate matches observed false escalation rate within 10% |
Escalation Action Completeness | Output specifies exact escalation action, routing target, and SLA from [ESCALATION_ACTIONS] | Vague action ('review needed'); missing routing target or SLA | Parse output for action, target, SLA fields; assert all three present and match allowed values |
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 risk scoring rubric and a simplified threshold table. Use a single model call without external tool validation. Replace real incident calibration data with representative examples.
code[SYSTEM] You are a risk scoring assistant. Given an action description and context, output a JSON risk assessment with score (0-100), factors, and recommended escalation tier. [INPUT] Action: [ACTION_DESCRIPTION] Context: [CONTEXT] [OUTPUT_SCHEMA] {"risk_score": number, "factors": [{"name": string, "score": number, "weight": number}], "tier": "auto_approve" | "review" | "escalate"}
Watch for
- Missing schema checks on the output
- Overly broad factor definitions that produce inconsistent scores
- No calibration against real incident data, so thresholds are arbitrary

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