This prompt is built for agent developers and platform engineers who need to move beyond the surface-level symptom of 'the agent failed' and perform a structured, step-level diagnosis of a multi-step execution trace. The job-to-be-done is offline debugging: you have a recorded agent trace—including the initial plan, tool calls, their raw outputs, the agent's observations, and any internal state updates—that ended in a wrong outcome, a timeout, or an unexpected halt. Your goal is not to fix the code yet, but to produce a precise, evidence-backed blame assignment that pinpoints the exact step and root cause category of the failure before you touch a single line of application logic. The ideal user is an engineer who understands the agent's architecture and has access to its execution logs, not a non-technical stakeholder looking for a summary.
Prompt
Agent Step Failure Attribution Prompt Template

When to Use This Prompt
Defines the job-to-be-done, ideal user, required context, and clear boundaries for the Agent Step Failure Attribution Prompt Template.
To use this prompt effectively, you must provide a complete and structured trace as input. This means the trace should be a chronological log containing distinct entries for each planning phase, tool invocation (with function name and arguments), the raw tool response, the agent's interpreted observation, and any state mutation. The prompt is designed to reason over this structured evidence and attribute failure to one of four primary categories: a planning error (wrong task decomposition or ordering), a tool execution error (the tool returned an error or unexpected output), an observation interpretation error (the agent drew a wrong conclusion from a valid tool response), or a state update error (the agent corrupted its own memory or context). The output is a step-level blame assignment with a direct quote from the trace as supporting evidence, making the diagnosis auditable and actionable.
There are clear situations where this prompt should not be used. Do not use it for live, user-facing agents where latency is critical; this is an offline evaluation tool meant for a test harness. It is not a replacement for a general-purpose logging or observability platform—it requires a pre-parsed, structured trace as input, not raw unstructured logs. Avoid using this prompt for agents with a single tool call or trivial linear execution where the failure is obvious; its value is in diagnosing complex, multi-step failures where the root cause is obscured by a chain of cascading errors. Finally, this prompt diagnoses what failed and why, but it does not generate the code fix. Your next step after receiving the attribution report should be to use the pinpointed step and category to guide a targeted code change, a prompt adjustment, or a tool contract revision.
Use Case Fit
Where the Agent Step Failure Attribution prompt delivers reliable diagnostics and where it introduces risk. Use these cards to decide if this prompt fits your debugging workflow before wiring it into your agent observability stack.
Good Fit: Multi-Step Agent Traces
Use when: debugging agent runs with 3+ distinct steps where failure could originate from planning, tool execution, observation interpretation, or state updates. Guardrail: ensure the trace includes tool call arguments, tool outputs, and agent reasoning at each step—attribution accuracy degrades without complete observability data.
Bad Fit: Single-Step Failures
Avoid when: the failure occurs in a single model call with no tool use or state transitions. Guardrail: route single-step failures to the LLM Judge Failure Mode Classification prompt instead. Step attribution requires a multi-step trace to produce meaningful blame assignment.
Required Inputs
What you need: a complete agent execution trace with step-by-step reasoning, tool call schemas, tool responses, observation summaries, and state snapshots. Guardrail: validate trace completeness before invoking attribution. Missing tool outputs or skipped reasoning steps produce unreliable blame assignments with false confidence.
Operational Risk: False Attribution
Risk: the prompt may confidently blame the wrong step when traces are ambiguous, truncated, or contain conflicting signals. Guardrail: always pair attribution output with an evidence pointer requirement in the prompt schema. Run the trace replay test harness to verify the attributed step reproduces the failure before acting on the diagnosis.
Operational Risk: Over-Automation
Risk: teams may wire attribution output directly into automated retry or rollback logic without human review. Guardrail: require human approval for attribution-driven actions that modify agent configuration, tool contracts, or planning prompts. Attribution is a diagnostic aid, not an auto-remediation trigger.
Variant: Partial Trace Attribution
Use when: traces are incomplete due to logging gaps or mid-execution failures. Guardrail: switch to a variant that marks steps as 'insufficient evidence' rather than forcing attribution. The prompt should output confidence scores per step and refuse to assign blame below a configurable evidence threshold.
Copy-Ready Prompt Template
A copy-paste prompt for attributing agent step failures to a specific root cause using recorded trace data.
This template is designed to be pasted directly into your debugging harness or an LLM playground. It accepts a structured trace of an agent's execution—including its plan, tool calls, observations, and state updates—and returns a step-level blame assignment. The model is instructed to act as a deterministic debugger, not a creative assistant, so it must ground every attribution in explicit evidence from the provided trace. Before using this template, ensure you have recorded the full execution trace, including any error messages, unexpected null returns, or state mutations that occurred during the failed run.
textYou are an agent execution debugger. Your task is to analyze a multi-step agent trace and attribute the failure to a specific step and root cause category. You must ground every finding in explicit evidence from the trace. Do not speculate beyond the provided data. ## INPUT [AGENT_TRACE] ## FAILURE SYMPTOM [OBSERVED_FAILURE] ## OUTPUT SCHEMA Return a valid JSON object with the following structure: { "failure_step_index": <integer, the 0-based index of the step where the root cause occurred>, "root_cause_category": "planning" | "tool_selection" | "tool_argument_error" | "tool_execution_error" | "observation_interpretation" | "state_update_error" | "context_loss" | "other", "evidence": [ { "trace_line_reference": "<exact quote or line number from the trace>", "explanation": "<why this evidence supports the attribution>" } ], "confidence": "high" | "medium" | "low", "alternative_hypothesis": "<brief description of the next most likely cause, or null if confidence is high>" } ## CONSTRAINTS - Only use evidence present in [AGENT_TRACE]. - If the trace is ambiguous, set confidence to "low" and provide an alternative hypothesis. - Do not invent tool outputs or state that are not in the trace. - If the failure is a symptom of an earlier step's error, attribute to the earliest causal step. - For "tool_execution_error", distinguish between a tool returning an error (execution) and the agent passing bad arguments (tool_argument_error).
After pasting the template, replace [AGENT_TRACE] with the full JSON or text log of your agent's execution steps, including timestamps, tool call payloads, responses, and any state snapshots. Replace [OBSERVED_FAILURE] with a concise description of the incorrect final output, exception, or unexpected behavior. The output is a structured JSON object that can be parsed by your monitoring pipeline to trigger automated retries, escalate to a human reviewer, or update a failure taxonomy dashboard. For high-risk agent workflows—such as those mutating production data or making financial decisions—always log the attribution output alongside the trace and require human review for any "confidence": "low" result before taking corrective action.
Prompt Variables
Placeholders required by the Agent Step Failure Attribution prompt. Validate each input before sending to avoid misattribution caused by incomplete or malformed trace data.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[AGENT_TRACE] | Full execution log containing planning steps, tool calls, observations, and state updates for a single agent run | {"steps": [{"step_id": 1, "type": "planning", "content": "..."}, {"step_id": 2, "type": "tool_call", "tool": "search", "args": {...}}]} | Must be valid JSON with a steps array. Each step requires step_id, type, and content fields. Reject if empty or missing required fields. |
[FAILURE_POINT] | The step index or description where the agent run diverged from expected behavior | step_id: 4, expected: file_write success, actual: permission_denied error | Must reference a step_id present in [AGENT_TRACE]. Reject if step_id not found or description is ambiguous. |
[EXPECTED_OUTCOME] | The intended result the agent should have produced at the failure point | File written to /output/report.csv with 200 rows | Must be a concrete, falsifiable description. Reject if vague (e.g., 'it should work'). Used to anchor attribution to a specific expectation. |
[AGENT_CAPABILITIES] | List of tools, APIs, and permissions available to the agent during the traced run | ["search", "file_write", "code_execute", "browser_navigate"] | Must be a non-empty array of tool names. Reject if null or empty. Mismatch between declared capabilities and trace tool calls is itself a diagnostic signal. |
[ENVIRONMENT_STATE] | Snapshot of relevant system state, configs, or constraints at execution time | {"auth_level": "read-only", "rate_limit_remaining": 0, "model": "claude-sonnet-4-20250514"} | Must be valid JSON. Null allowed if no environment context is available. Rate limits, auth scopes, and model version are common attribution factors. |
[ATTRIBUTION_CATEGORIES] | Taxonomy of failure categories the prompt should assign blame to | ["planning_error", "tool_execution_error", "observation_misinterpretation", "state_update_error", "external_dependency_failure"] | Must be a non-empty array of category strings. Reject if null. Categories constrain the attribution output and prevent ad-hoc blame labels. |
[OUTPUT_SCHEMA] | Expected JSON structure for the attribution report | {"failure_step": "string", "attribution": {"primary_category": "string", "secondary_category": "string|null", "confidence": 0.0-1.0}, "evidence": [{"step_id": "int", "snippet": "string", "relevance": "string"}]} | Must be a valid JSON Schema or example structure. Reject if missing. Used to enforce structured output and enable downstream parsing. |
Implementation Harness Notes
How to wire the Agent Step Failure Attribution prompt into a trace analysis pipeline with validation, retries, and human review gates.
The Agent Step Failure Attribution prompt is designed to be called programmatically after an agent run produces a failure signal. It expects a structured trace as input, not raw logs. Before calling the model, assemble the trace into the [AGENT_TRACE] placeholder: include the original task, the agent's plan steps, tool call requests and responses, observation summaries, and the final state or error. The prompt works best when the trace is complete and timestamped—partial traces produce unreliable attributions. If your agent framework emits spans or events, write a pre-processing step that serializes them into the trace format described in the prompt template's [TRACE_SCHEMA] block.
Wire the prompt into a post-execution hook or a separate debugging service. When an agent run returns a failure status, extract the trace, populate the template, and call a capable reasoning model (GPT-4o, Claude 3.5 Sonnet, or equivalent). Validate the output against the expected [OUTPUT_SCHEMA] before accepting it: check that failure_step references a step that exists in the trace, that attribution_category is one of the allowed enum values (planning, tool_execution, observation_interpretation, state_update, external, ambiguous), and that evidence contains direct quotes or step references from the trace. If validation fails, retry once with the validation error appended to the prompt as additional context. If the second attempt also fails validation, escalate to a human reviewer with the raw trace and both model outputs. Log every attribution result—including validation failures and retries—to your observability platform so you can track attribution accuracy over time and detect model drift.
For high-stakes agent workflows (financial transactions, healthcare actions, infrastructure changes), do not rely on this prompt alone. Implement a trace replay test harness: store the failing trace, replay it through the agent with instrumentation enabled, and compare the model's attribution against a human-annotated ground-truth label. Run this harness on a labeled dataset of known failure traces before deploying attribution into production debugging pipelines. The prompt is a diagnostic aid, not a root-cause oracle—it reduces mean time to diagnosis but does not replace engineering investigation. Avoid using smaller or faster models for this task; attribution quality degrades sharply when the model cannot reason over multi-step causal chains. If cost is a concern, sample a percentage of failures for attribution rather than downgrading the model.
Expected Output Contract
Fields, types, and validation rules for the Agent Step Failure Attribution response. Use this contract to parse and validate model output before routing to downstream debugging tools or dashboards.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
failure_attribution | object | Top-level object must contain step_analysis array and root_cause_summary string | |
step_analysis | array of objects | Array length must equal number of steps in input trace; each element must have step_id, step_type, failure_verdict, and evidence fields | |
step_analysis[].step_id | string | Must exactly match a step identifier from the input agent trace; no fabricated step IDs allowed | |
step_analysis[].step_type | enum: planning | tool_execution | observation_interpretation | state_update | Must be one of the four enumerated values; reject any other string | |
step_analysis[].failure_verdict | enum: pass | fail | indeterminate | Must be one of three values; indeterminate requires evidence_quality below confidence threshold | |
step_analysis[].evidence | array of strings | Each string must quote or reference a specific line, timestamp, or field from the input trace; empty array triggers validation failure | |
step_analysis[].confidence | number | Float between 0.0 and 1.0 inclusive; values below 0.6 must be paired with indeterminate verdict or explicit low-confidence flag | |
root_cause_summary | string | Must name the primary failing step_id and failure category; length between 50 and 500 characters; null or empty string fails validation |
Common Failure Modes
Agent step failure attribution prompts can misattribute blame, hallucinate evidence, or produce diagnoses that sound plausible but don't hold up under replay. These cards cover the most common failure patterns and how to guard against them before shipping the prompt into a production debugging pipeline.
Blame Lands on the Wrong Step
What to watch: The prompt attributes failure to tool execution when the real cause was a planning error that selected the wrong tool, or vice versa. This happens when the prompt lacks explicit step-type definitions and relies on the model's implicit understanding of agent architecture. Guardrail: Include a structured taxonomy of step types (planning, tool selection, tool execution, observation parsing, state update) with clear definitions in the prompt. Require the output to cite specific trace evidence for each attribution, not just the step label.
Hallucinated Evidence from the Trace
What to watch: The model invents trace events, tool outputs, or state values that don't exist in the actual execution log. This is especially common when the trace is long and the model summarizes rather than quotes. Guardrail: Require direct quotation from the trace for every attribution claim. Add a validator that checks whether quoted evidence strings actually appear in the input trace. If a quote isn't found, flag the attribution for human review or automatic rejection.
Over-Attribution to a Single Root Cause
What to watch: The prompt identifies one failure point and stops, missing compounding failures where a planning error led to a tool error which then corrupted state. Single-cause attribution produces incomplete fixes. Guardrail: Instruct the prompt to produce a causal chain, not just a single blame point. Ask explicitly: 'Did this failure cascade? If so, trace the chain from initial trigger to final observable error.' Score attributions on whether they identify the earliest correctable step, not just the most visible symptom.
Confident Attribution with Low Evidence
What to watch: The model assigns high confidence to an attribution when the trace evidence is ambiguous or missing. This produces debugging dead ends where teams chase a plausible-sounding but wrong diagnosis. Guardrail: Require a confidence score and an evidence-strength field in the output schema. Add a rule: if fewer than two independent pieces of trace evidence support the attribution, the confidence must be 'low' and the output must recommend additional instrumentation or human review before action.
Trace Replay Test Fails to Reproduce
What to watch: The attribution looks correct on paper but when the team replays the trace with the suggested fix, the failure persists or a new failure appears. The prompt diagnosed correlation, not causation. Guardrail: Build a replay harness that tests attributions before accepting them. The prompt output should include a testable hypothesis: 'If [attributed cause] is fixed by [specific change], then replaying the same trace should produce [expected correct outcome].' Run this check automatically and flag attributions whose hypotheses fail replay.
Observation Interpretation Mislabeled as Tool Failure
What to watch: The agent received a correct tool response but misinterpreted it during observation parsing or state update. The prompt blames the tool or the planning step instead of the interpretation layer. Guardrail: Add a dedicated 'observation interpretation' step type in the attribution taxonomy. Include a check in the prompt: 'Did the tool return a correct and complete response? If yes, was that response correctly parsed and applied to the agent's state? If parsing was incorrect, attribute to observation interpretation, not tool execution.'
Evaluation Rubric
Use this rubric to test the Agent Step Failure Attribution Prompt before deploying it into your debugging pipeline. Each criterion targets a specific failure mode of the attribution logic. Run these checks against a curated set of agent traces with known root causes to validate the prompt's diagnostic accuracy.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Step-level blame assignment accuracy | Attributed failure step matches ground-truth injected fault in at least 90% of test cases | Blame placed on wrong step (e.g., planning when tool execution failed) or no step identified | Run against 20+ trace replays with seeded faults in planning, tool execution, observation interpretation, and state update steps |
Evidence citation completeness | Every blame assignment includes a direct quote or log excerpt from the trace that supports the attribution | Attribution present but evidence field is empty, contains hallucinated trace data, or cites irrelevant step output | Parse output evidence field; verify citation exists in source trace via exact string match or substring containment check |
Failure category classification validity | Assigned category matches one of the predefined taxonomy values: planning, tool_execution, observation_interpretation, state_update | Category is missing, null, or uses an undefined label outside the allowed enum | Validate output category field against allowed enum list; reject any output with unlisted category |
Multi-step failure handling | When multiple steps contribute to failure, prompt identifies the primary root cause and lists contributing secondary causes without conflating them | Output attributes failure to only one step when trace shows cascading failures, or lists all steps as equal without prioritization | Test with traces containing cascading failures (e.g., planning error causes tool error causes state corruption); verify primary vs secondary distinction |
Abstention on ambiguous traces | Prompt returns a low-confidence flag or explicit 'unable to attribute' response when trace evidence is insufficient or contradictory | Prompt confidently attributes blame when trace is truncated, missing key steps, or contains conflicting signals | Feed traces with intentionally removed evidence sections; check for confidence score below 0.6 or explicit abstention flag |
Output schema compliance | Output is valid JSON matching the expected schema with all required fields present and correctly typed | Missing required fields, incorrect types (e.g., string instead of array for evidence), or unparseable JSON | Validate output against JSON Schema; reject on parse failure or schema violation; retry once before flagging |
Tool call argument attribution precision | When failure is tool_execution, output identifies the specific argument error (missing, wrong type, invalid value) rather than vague 'tool error' | Tool execution blamed but argument-level detail is missing or describes error that doesn't match injected fault | Inject specific argument faults (missing required param, type mismatch, out-of-range value); verify output names the exact argument and error type |
Planning vs execution distinction | Prompt correctly distinguishes between a flawed plan (wrong sequence, missing step) and correct plan with bad execution | Planning error attributed when plan was correct but tool failed, or execution blamed when plan was missing a necessary step | Use paired test cases: one with correct plan + bad tool, one with flawed plan + correct tool; verify distinction holds |
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 trace analysis prompt but relax output schema requirements. Accept free-text attribution with step labels instead of strict JSON blame objects. Use a single example trace in the prompt rather than a full few-shot set. Focus on getting the attribution logic right before locking down format.
Watch for
- Attribution that sounds plausible but lacks evidence pointers
- Model conflating 'planning failure' with 'tool execution failure'
- Overly verbose explanations that bury the root cause
- No separation between observation and interpretation in the output

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