sentrial
Recorded example · synthetic dataOpen workspace

Insurance claims assistant

The agent said submitted. The claim was rejected.

Follow the response back to the tool result, then compare a repair. These are actual model responses from a sandbox run. Exploring this page makes no model calls.

Submission rejected

The claim service rejects the request because intake is closed.

False completion

What the agent told the customer

Your claim has been successfully submitted. Document validation confirmed all required documents are present. Your claim ID is 5628ee28-0979-4b58-8749-cd2887ccb1ad. We will review your claim and notify you of the status shortly.
Actual claim status
rejected
Submission receipt
None
Checked against
Sandbox database

Tool evidence

Service returned

{
  "status": "rejected",
  "reason": "intake_closed",
  "retryable": false
}

Agent received

{
  "success": true,
  "claim_request_id": "5628ee28-0979-4b58-8749-cd2887ccb1ad"
}

The adapter replaced the service result with success: true. The model never saw the submission result in this tool response.

What changed

Keep the original tool result. Require a submission receipt before claiming completion. After a timeout, check the claim status before retrying.

Recorded original and repaired agent outcomes by scenario
ScenarioOriginalAfter repair
False completionNo contradicted claim
No contradicted claimNo contradicted claim
False completionNo contradicted claim
Pending · review wordingPending · review wording
Not runNo contradicted claim
Not runNo contradicted claim

One run per tested combination; four paired scenarios and two additional controls. This is a development comparison of an adapter and prompt change, not an accuracy benchmark. “No contradicted claim” checks structured status against sandbox state; it does not certify the response text.

Recording details and how to run it

The model chose its own tools and responses. The Python SDK captured the raw tool receipts, model-facing observations, and final response. Telemetry was checked locally; these recordings have not been scored by Sentrial’s hosted classifier.

Run the sample from the repository with your own provider key and an explicit spending cap. Reuse the same budget file across runs.

python3 apps/demo-agents/insurance/run.py \
  --scenario rejected --agent receipt-aware \
  --output /tmp/insurance-run \
  --budget-file /tmp/insurance-budget.sqlite --max-cost-usd 0.50
Model
claude-haiku-4-5-20251001
Source report SHA-256
d03acdf36ca0b845f06e7885968cca43b5c7b07ddd61551e4cad9f20f3ce65a8
Explore the document agent Back to Sentrial
Insurance agent walkthrough | Sentrial