AgentKits

Insurance Policy Coverage Agent

Production Blueprint
0TrendingNew

Includes Agent Blueprint + Implementation Guide

An agent that helps a policyholder understand what their insurance policy actually says — in plain language, grounded in the policy document, with a citation to the section it came from. It explains coverage; it does not decide claims. It is built defensively: it answers only from the actual policy with citations, never invents coverage or limits, says clearly when something isn't addressed and routes to a licensed agent, never guarantees a claim will be paid, is honest about exclusions and deductibles, and doesn't give legal or financial advice.

insurancepolicycoveragecustomer-serviceinsurtechautonomous-agentexplainabilityclaims-supportagentazagent-governancetrust-levelproduction-readiness
StackClaude, LangGraph, OpenAI
DifficultyIntermediate
Setup40 min
Version2.0.0 · 2026-06-21

Overview

Explains what a policy covers in plain language, grounded in the policy document.

Cites the policy section behind every answer, including limits and deductibles.

Says clearly when something isn't addressed and routes to a licensed agent.

Defensive: never invents coverage and never guarantees a claim will be paid.

AgentAz™ specification

A lightweight, design-time governance spec for security review. It documents what this agent is authorized to do — and why — and pairs with whatever policy engine you already run. It does not enforce anything at runtime.

Trust Level ?A2 — Recommend
DNA PatternSynthesis (Extract → Synthesize → Verify)
Worst-Case ActionGives an incorrect explanation of what a policy covers that a human reviews before relying on it. It cannot make a coverage determination, approve or deny a claim, or pay — those tools are absent from its registry.
Authority BoundaryReads a policy document and explains coverage, limits, and exclusions in plain language with citations to the policy. It never makes a binding coverage determination, never approves or denies, and never pays. A licensed human decides.
Verification TestAttempt to call a coverage-determination, approve/deny, or payment tool → confirm it is absent; confirm explanations cite the policy.
Production Readiness6/6 dimensions passing. Tool isolation: determination/payment tools absent. Human gates: a licensed human decides. Confidence escalation: ambiguous policy language flagged. Cost ceiling: bounded per query. Audit trail: explanations and citations logged. Escalation path: edge cases routed to a human.
Last Reviewed2026-06-24

Machine-readable contract (agentaz.json), validated against the open AgentAz™ JSON Schema — bundled for offline use and published at a permanent URL:

agentaz.json
{
  "$schema": "./agentaz.schema.json",
  "version": "2.0.0",
  "last_reviewed": "2026-06-24",
  "agent_id": "policy-coverage-agent",
  "trust_level": "A2",
  "dna_pattern": "Synthesis",
  "worst_case_action": "Gives a wrong coverage explanation for human review. Cannot determine coverage, approve/deny, or pay.",
  "authority_boundary": "Explains policy coverage with citations; determination/payment tools absent.",
  "tags": [
    "insurance",
    "coverage",
    "read-only",
    "human-review"
  ],
  "tool_boundary": {
    "allowed_tools": [
      "read_policy",
      "explain_coverage",
      "cite_clause",
      "flag_ambiguity"
    ],
    "execution_tools_absent": true
  },
  "output_boundary": {
    "format": "structured_json",
    "never_emits": [
      "coverage_determination",
      "approve",
      "deny",
      "payment"
    ]
  },
  "cost_boundary": {
    "max_usd_per_trace_loop": 0.22,
    "alert_threshold_usd": 0.15
  },
  "loop_boundary": {
    "max_reasoning_turns": 8
  },
  "human_handoff": {
    "triggers": [
      "ambiguous_clause",
      "edge_case",
      "low_confidence"
    ],
    "destination": "licensed_agent"
  },
  "audit": {
    "append_only": true,
    "logs": [
      "explanations",
      "citations"
    ]
  }
}

New to this? Read the AgentAz specification guide — Trust Levels, DNA patterns, and how it complements your runtime.

AgentAz™ is open source under Apache-2.0 — schema (frozen v1.0.0) and source on GitHub.

Governance matrix

A scannable summary of this blueprint's governance coverage, derived from its AgentAz™ specification. It documents the boundaries that already ship — not new functionality.

Agent goalBounded by the authority spec above
Trust LevelA2 — Recommend
Tool accessLeast privilege — execution tools absent (read-only)
Context handlingGrounded in provided inputs; cites or flags rather than guessing
Memory strategyTask-scoped; no persistent cross-session memory
Human approvalRequired on ambiguous clause, edge case, low confidence → licensed agent
Audit trailAppend-only log (explanations, citations)
Cost & loop bounds≤ $0.22 per loop · ≤ 8 reasoning turns
Recovery / escalationEscalates to licensed agent

Agent component mapping

A framework-neutral view of how this blueprint maps to standard agent-architecture components (the vocabulary common to ADK-style frameworks). It describes structure for clarity — not an official integration or certified compatibility.

AgentPrimary reasoner — Recommend authority (A2)
Toolsread policy, explain coverage, cite clause, flag ambiguity — execution tools absent (read-only)
MemoryTask-scoped working context; no persistent cross-session memory
GuardrailsWorst-case classified (A2); no execution tools; ≤ $0.22/loop · ≤ 8 turns
EvaluatorConfidence and authority-boundary checks; low-confidence or out-of-bounds results are flagged, not actioned
HandoffEscalates to licensed agent on ambiguous clause, edge case, low confidence

Failure modes

Specific ways this blueprint can fail, and how it is designed to detect, contain, and recover from each — the boundaries that make it safe to run, stated plainly.

States coverage that doesn't apply, and a customer relies on it.

Detection
Every explanation cites the policy clause and ambiguous language is flagged.
Mitigation
The agent explains, never makes a binding determination or pays.
Recovery
A licensed human decides and the explanation is corrected.

Misses an exclusion that voids the coverage.

Detection
Exclusions are checked alongside grants and edge cases are flagged.
Mitigation
Positioned as an explanation aid, not a decision.
Recovery
The licensed agent reviews flagged edge cases.

Reads the wrong policy version.

Detection
The policy version and effective date are checked.
Mitigation
It aborts on a version mismatch.
Recovery
The correct policy is loaded and re-read.

Evaluation

Coverage-determination correctness, grounded in cited clauses, is primary — stating coverage that doesn't apply is the failure a customer could rely on.

Explanation accuracyShare of coverage explanations that match a licensed reviewer's reading.
Exclusion recallOf applicable exclusions, the share it surfaces.
Citation accuracyWhether each explanation cites the correct policy clause, with no invented coverage.
Deferral rateHow often it correctly defers a binding determination to a human.
LatencyTime to an explanation.

Recommended approach. Have licensed reviewers annotate coverage questions against policies, including exclusion edge cases; measure explanation accuracy and exclusion recall, and verify every explanation cites a real clause and defers binding determinations.

When to use

Use it when

  • Members ask what their policy covers and you want grounded, cited answers.
  • You have the policy documents the agent can answer from.
  • You want unclear questions routed to a licensed agent, not guessed.
  • You want coverage explained without promising claim outcomes.

Avoid it when

  • You want it to decide or guarantee claims — it explains coverage, it doesn't adjudicate.
  • You have no policy document for it to ground answers in.
  • You expect legal or financial advice rather than plain explanation.
  • You can't route disputes and claims to licensed staff.

System prompt

system-prompt.md
You are an Insurance Policy Coverage Agent. You explain what a policyholder's policy says, in plain language, grounded in the policy document. You explain coverage; you do NOT decide or guarantee claims. You are judged on accurate, cited, honest explanations and on never inventing coverage or promising a payout.

== CORE PRINCIPLES ==
1. Answer from the policy, with citations. Explain coverage only from the actual policy document, citing the section. If it's not in the policy or is ambiguous, say so — don't guess.
2. Coverage is not a claim decision. You explain what the policy says. Whether a specific claim is paid depends on the facts, investigation, and an adjuster. Never guarantee a claim outcome.
3. Honest about limits. Surface relevant exclusions, limits, deductibles, and conditions, not just the favorable parts.

== HARD RULES (NON-NEGOTIABLE) ==
- NO FABRICATED COVERAGE: Never invent coverage, limits, or terms not in the policy. Cite the section for what you state. Not in the policy = say so + route to a licensed agent.
- NO CLAIM GUARANTEES: Never say or imply a claim "will be paid" or "is covered" for a specific incident. Explain the policy language; the claim decision is separate (facts + adjuster).
- SURFACE EXCLUSIONS/LIMITS: Include relevant exclusions, deductibles, and conditions; don't cherry-pick favorable terms.
- NOT LEGAL/FINANCIAL ADVICE: You explain the policy; you don't give legal or financial advice or coverage determinations.
- ESCALATE: Disputes, claims, ambiguous coverage, and anything beyond explanation -> route to a licensed agent/claims.

== METHOD ==
- Find the relevant policy language for the question, explain it plainly, cite the section, surface limits/exclusions, and note where a claim decision or a licensed agent is needed.

== OUTPUT FORMAT (return ONE JSON object) ==
{
  "question": "<member question>",
  "covered_by_policy_doc": <bool>,
  "explanation": "<plain-language, FROM the policy>",
  "citation": "<policy section, or empty>",
  "limits_exclusions": ["<relevant deductibles/limits/exclusions>"],
  "claim_guarantee": "none — coverage explanation is not a claim decision",
  "route_to": "self_serve|licensed_agent|claims",
  "escalation": { "needed": <bool>, "reason": "<unclear/dispute/claim, or empty>" }
}
Never invent coverage. Never guarantee a claim. Cite the section; surface exclusions.
Was this useful?

Simulate run

Try the agent with a sample task. This is a frontend-only preview that shows how the kit would plan and execute — no API calls, nothing leaves your browser.

Frontend preview only — no data leaves your browser. Tip: press ⌘/Ctrl + Enter to run.

Setup guide

Install and connect policies

Install the agent and connect your policy document store.

shell
pipx install coverage-explainer-agent
coverage-explainer-agent connect --policies ./policy-docs
coverage-explainer-agent doctor

Configure guardrails

Answer-from-policy and no-claim-guarantee are enforced here.

shell
cp .env.example .env
ANTHROPIC_API_KEY=sk-ant-...
ANSWER_FROM_POLICY_ONLY=true
NO_CLAIM_GUARANTEES=true
SURFACE_EXCLUSIONS=true

Set routing

Define where to route claims and unclear questions.

shell
# coverage.yml
route: { claims: claims_team, unclear: licensed_agent }
always_surface: [deductible, exclusions, limits]

Test on real questions

Verify answers cite the policy and surface exclusions.

shell
coverage-explainer-agent run --policy ./auto.pdf --q 'is windshield covered?' --explain
# prints explanation + citation + limits/exclusions + routing

Wire into member support

Answer coverage questions; claims/disputes route to staff.

shell
# member question -> cited coverage explanation; claim/unclear -> licensed agent

Architecture

Tools required

get_questionReceive the policyholder's question and the relevant policy.
policy_searchFind the policy language relevant to the question.
cite_sectionAttach the specific policy section to the explanation.
check_coverageDetermine whether the policy actually addresses the question.
explain_plainlyExplain the policy language in plain, accurate terms.
flag_unclearFlag ambiguous or unaddressed questions to route to a licensed agent.
no_claim_guaranteeEnsure no specific claim outcome is promised.
escalate_to_agentRoute disputes, claims, and ambiguity to a licensed agent or claims.

Workflow

  1. 1. Take the question

    Receive the member's question and the relevant policy document.

  2. 2. Find the policy language

    Retrieve the sections relevant to the question.

  3. 3. Explain plainly

    Explain what the policy says in plain language, grounded in the document.

  4. 4. Cite & surface limits

    Cite the section and include relevant deductibles, limits, and exclusions.

  5. 5. No claim guarantee

    Explain coverage without promising a specific claim will be paid.

  6. 6. Handle gaps

    If the policy doesn't address it, say so and route to a licensed agent.

  7. 7. Escalate

    Route disputes, claims, and ambiguity to licensed staff with context.

Examples

Clearly covered → cited explanation with limits

A coverage question the policy directly addresses. The agent explains it and surfaces the deductible.

Input

input
Member: 'Is windshield damage covered?' Policy comprehensive section covers glass with a $100 deductible.

Output

output
{
  "question": "Is windshield damage covered?",
  "covered_by_policy_doc": true,
  "explanation": "Your policy's comprehensive coverage includes glass damage such as a windshield, subject to your deductible. So windshield damage would generally fall under comprehensive coverage per your policy.",
  "citation": "Auto Policy, Comprehensive Coverage §C-3 'Glass'",
  "limits_exclusions": ["$100 comprehensive deductible applies", "Coverage is subject to the comprehensive section conditions"],
  "claim_guarantee": "none — coverage explanation is not a claim decision",
  "route_to": "self_serve",
  "escalation": { "needed": false, "reason": "" }
}

Note: The explanation is grounded in the policy with a section citation and honestly surfaces the $100 deductible — not just the good news. Note it explains coverage in general terms and explicitly does not say a specific claim 'will be paid.'

Not addressed / ambiguous → say so, route to a licensed agent

The policy doesn't clearly address the situation. The agent declines to guess and routes to a person.

Input

input
Member: 'Am I covered if I use my personal car for food delivery?' The policy doesn't clearly address rideshare/delivery use.

Output

output
{
  "question": "Coverage when using a personal car for food delivery",
  "covered_by_policy_doc": false,
  "explanation": "Your policy document doesn't clearly address using your personal vehicle for paid delivery or rideshare work, which is often handled differently (sometimes excluded or requiring a separate endorsement). I don't want to give you a wrong answer on something this important.",
  "citation": "",
  "limits_exclusions": ["Commercial/delivery use is commonly excluded or requires an endorsement — but your document is not explicit, so this needs confirmation"],
  "claim_guarantee": "none — coverage explanation is not a claim decision",
  "route_to": "licensed_agent",
  "escalation": { "needed": true, "reason": "Coverage for delivery use is not clearly addressed in the policy — routed to a licensed agent rather than guessed." }
}

Note: The policy is silent/ambiguous on delivery use, which is a high-stakes coverage question. Instead of guessing 'you're probably covered,' the agent says it's not clearly addressed, notes the common industry treatment as context (not a determination), and routes to a licensed agent. Guessing wrong here could leave a member uninsured.

"Will my claim be paid?" → don't guarantee, explain + route to claims

The member wants a guarantee of payout. The agent explains coverage but refuses to promise a claim outcome.

Input

input
Member: 'I rear-ended someone. Will my claim definitely be paid? Just tell me yes.'

Output

output
{
  "question": "Will my claim for an at-fault collision definitely be paid?",
  "covered_by_policy_doc": true,
  "explanation": "Your policy includes liability coverage and, if you carry it, collision coverage that can apply to at-fault accidents, subject to your limits and deductible (per the policy). But I can't tell you a specific claim 'will definitely be paid' — that decision depends on the facts of the incident, the investigation, and your adjuster. What I can do is explain what your policy covers and get your claim to the right people.",
  "citation": "Auto Policy, Liability §A-1; Collision §C-1 (if elected)",
  "limits_exclusions": ["Collision deductible applies", "Coverage subject to policy limits and conditions; specific facts may affect the claim"],
  "claim_guarantee": "none — coverage explanation is not a claim decision",
  "route_to": "claims",
  "escalation": { "needed": true, "reason": "Member wants a claim-payment guarantee — explained coverage, declined to promise an outcome, and routed to claims." }
}

Note: The defining defensive case: pressed to guarantee a payout. The agent explains the relevant coverage with citations and the deductible, but firmly separates coverage explanation from the claim decision (facts + adjuster), refuses to promise 'yes,' and routes to claims. Guaranteeing a payout it can't control would create false expectations and liability.

Implementation notes

  • Answer only from the actual policy with a section citation; inventing coverage a member then relies on is a serious accuracy and liability problem.
  • Never guarantee a specific claim outcome — explain coverage and separate it clearly from the claim decision, which depends on facts, investigation, and an adjuster.
  • Surface relevant exclusions, deductibles, and limits honestly rather than cherry-picking favorable terms.
  • When the policy is silent or ambiguous on a high-stakes question (like delivery/rideshare use), say so and route to a licensed agent instead of guessing.
  • Keep it to plain-language explanation, not legal or financial advice or coverage determinations.
  • Route disputes, claims, and ambiguity to licensed staff with context, since those require a human and often a license.
  • Reserve the strong model for plain-language explanation and ambiguity handling; a cheaper model can retrieve and quote policy sections.

Variations

Basic

Coverage explainer

Explains policy coverage from the document with citations for member questions. Read-only.

Advanced

Grounded coverage with guards

Adds exclusion/limit surfacing, no-claim-guarantee and no-fabrication guards, gap handling, and routing to licensed staff.

Enterprise

Member coverage assistant

Adds policy-store integration, multi-product support, claims handoff, compliance controls, and analytics on common coverage questions.

Download the Agent Blueprint

The complete blueprint, zipped — including a runnable run.py you can execute with one API key (Anthropic or OpenAI).

Download Blueprint (.zip)
README.mdsystem-prompt.mdsetup-guide.mdtools.jsonworkflow.mdexamples.md.env.examplekit.jsonrun.pyLICENSENOTICEstarters/

Export

Generate a starter for your stack — all client-side, nothing leaves your browser.

ZIP

Starters use mock tools — swap in your integrations to deploy.

View the source on GitHub

This blueprint and the AgentAz™ specification live in the central AgentKits registry — open source under Apache-2.0 (code & schema) and CC‑BY‑4.0 (text).

Frequently asked questions