Inherited Errors
Issue: Agent Propagates Errors from Sources or Tools
Frequency: Common
Symptoms
- Tool returns incorrect data, agent passes it through
- Source document contains error, agent repeats it
- Upstream agent makes mistake, downstream agent doesn’t catch it
Root Cause Agents trust their inputs. If a tool, document, or another agent provides incorrect information, the agent typically won’t question it.
Example
Tool response: { "user_balance": 1000 } // Database bug, actual: 10000
Agent: "Your current balance is $1,000"
User: "That's wrong, I deposited $9,000 yesterday"
Agent: "According to my records, your balance is $1,000" // Confidently wrong
Result: Agent trusts tool over user, provides incorrect information
Test Scenario & Reproduction
Scenario Setup
- An agent that queries a backend tool/database known to occasionally return incorrect values (e.g., a stale or buggy balance field)
- No cross-check mechanism between a user’s specific, checkable counter-claim and the tool’s returned value
- A user with accurate first-hand knowledge that contradicts the tool output (e.g., a recent deposit not yet reflected)
Trigger Mechanism
- Seed the backend tool/database with an intentionally incorrect value (simulating the documented bug) for a specific field like account balance
- Query the agent for that value and record its initial response
- Have the user directly contradict the value with a specific, checkable counter-claim and observe whether the agent re-verifies or simply re-asserts the same tool output
Example Reproduction Steps:
1. Set the backend user_balance field to 1000 while the true balance (per transaction log) is 10000
2. Ask the agent: "What's my current balance?" and record the response
3. Reply as the user: "That's wrong, I deposited $9,000 yesterday"
4. Record the agent's second response and check whether it re-queries the source, flags a discrepancy, or repeats "According to my records, your balance is $1,000"
5. Check the transaction log independently to confirm the $9,000 deposit is real and should have been reflected
6. Repeat across multiple disputed fields to measure how often the agent re-verifies versus re-asserts
Expected Failure State
- The agent repeats the incorrect tool-sourced value ("$1,000") even after the user supplies a specific, falsifiable counter-claim
- No re-query, re-verification, or discrepancy flag is triggered by the user’s dispute
- The agent’s tone conveys full confidence in the wrong figure (“According to my records…”) rather than acknowledging uncertainty
- The underlying tool bug (user_balance showing 1000 instead of 10000) remains undetected and unescalated after the interaction
Mitigation Strategies
Prevention
- User-assertion cross-check before restating a contradicted fact: When a user directly contradicts a tool-provided value with a specific counter-claim (as in “I deposited $9,000 yesterday”), require the agent to re-query the source or flag the discrepancy for verification rather than simply repeating the original tool output — the example’s core failure is trusting the tool over a specific, checkable user claim. Trade-off: opens a path for users to socially-engineer the agent into distrusting correct data, so the re-check must be a verification step, not an automatic acceptance of the user’s claim.
- Sanity bounds on high-stakes tool outputs: For financial/critical data, validate tool outputs against plausible bounds and recent history (e.g., a balance that doesn’t reflect a very recent, large, known transaction) before presenting it as fact. Trade-off: bounds need domain-specific tuning and can produce false positives on legitimately unusual but correct values.
- Source reliability weighting in multi-agent pipelines: When an upstream agent or tool has a known error history, weight its outputs lower and require corroboration before a downstream agent repeats them as fact — prevents “upstream agent makes mistake, downstream agent doesn’t catch it.” Trade-off: requires tracking reliability scores per source over time, adding operational overhead.
Detection & Response
- Tool-output error-rate tracking by source: Log discrepancies between tool outputs and later-confirmed ground truth per tool/source, so a buggy database (like the “user_balance” bug in the example) is identified by pattern rather than one user complaint at a time.
- User-correction-to-tool-trust feedback loop: When a user disputes an agent’s tool-sourced answer, log it as a candidate tool error and route it to verification rather than silently re-asserting the same tool output on retry — directly prevents the example’s repeated confident wrongness.
- Reasoning-chain provenance audit: For multi-step or multi-agent tasks, periodically audit whether each claim in the final output can be traced to a specific tool/agent output, and flag chains where an unverified claim was propagated unchanged across multiple steps.
Architecture Patterns
- Verification-before-assertion gate for disputed high-stakes claims: Route any tool output that a user directly disputes through a mandatory re-verification call (fresh query, alternate source, or human check) before the agent responds again, rather than looping the same unverified value back to the user. Deployment consideration: needs a way to detect “this is a dispute” versus a general follow-up question, which requires some intent classification.
- Multi-source cross-validation for critical fields: For fields like account balance where being wrong has direct financial consequences, query at least two independent sources (primary DB plus a transaction-log reconciliation) and flag mismatches rather than trusting a single tool call. Deployment consideration: doubles the calls needed for critical fields and requires reconciliation logic for conflicting sources.
- Confidence propagation through the pipeline: Track and surface a confidence/reliability score alongside data as it moves through tool calls and agent handoffs, so a low-reliability source’s output is visibly flagged rather than presented with the same certainty as verified data. Deployment consideration: requires every component in the pipeline to participate in confidence propagation, which is a broader design commitment than a point fix.
Metrics
- tool_output_error_rate: % of tool outputs later found incorrect against ground truth, tracked per source; target < 1%; alert if > 5% for any single source.
- user_dispute_unresolved_rate: % of user-disputed tool outputs where the agent re-asserted the same value without re-verification; target < 2%; alert if > 10%.
- cross_source_mismatch_rate: % of critical-field queries where independent sources disagree; target < 1%; alert if > 5%.
- unverified_claim_propagation_rate: % of multi-step reasoning chains where an unverified upstream claim reaches the final output unchecked; target < 5%; alert if > 15%.
Alerts
- User Dispute Re-Asserted Without Verification (P1): Condition — agent repeats a disputed tool value without triggering re-verification (user_dispute_unresolved_rate spike). Action: immediately escalate the session to human review and patch the dispute-handling path to force re-query.
- Tool Source Error Rate Spike (P1): Condition — tool_output_error_rate exceeds 5% for a given source. Action: page the owning team for that data source/tool, and temporarily downgrade its reliability weighting pending investigation.
- Cross-Source Mismatch on Critical Field (P2): Condition — cross_source_mismatch_rate exceeds 5% for balance/financial fields. Action: freeze automated actions relying on that field until reconciliation logic or the underlying data bug is fixed.
References
- Why Do Multi-Agent LLM Systems Fail? (MAST) - Research on error propagation in multi-agent systems
- Arize: Why AI Agents Break - Analysis of inherited error patterns in AI agent pipelines