Use cases by industry
Use case: claims operations
A claims operation runs on facts that have to be right: which treaty backs a catastrophe loss, who is drowning in open files this week, and whether the Homeowners line just blew through its loss-ratio target. This guide builds that assistant for Sentinel Mutual Insurance— a policyholder-owned property & casualty (P&C) insurer — end to end, touching seven module slices: Intake to ingest the claim files, Atlas to type the graph, Warrant to certify the reinsurance terms, Conduit to read the live claims database, Lens to answer with citations (or abstain), Lineage to trace any answer to its file, and Crucible & Ports to run the analyst agent against a measured golden set.
Seed this workspace and follow along
yarn demo:seed insurance and it appears as Sentinel Mutual Insurance (P&C) — adjusters, underwriters, coverage lines, policies, claims, and reinsurance treaties, densely wikilinked so the graph populates with zero LLM calls. Every identifier in this guide (entity names, the sentinel-cms connector, the query slugs, the claims-analyst agent) is what you will actually see. Browse the full catalog at Demo workspaces.Prerequisites
- A workspace key with
kb:write,kb:read,data:read,data:run,agents:run, andruns:read, exported as$ELI_KEY. See Getting started. - Owner/admin on the workspace, to certify treaty terms and verify source documents.
- An enabled chat model, so
/queryand the agent can generate — otherwise409 no-model-configured.
1 · Intake — ingest the claim files
The seed already loaded Sentinel's corpus — the company overview, the team roster, one document per coverage line, the two reinsurance treaties, the policy-admin and claims systems, and the open claim files (CL-4471, CL-5238, CL-6012). New material arrives the same way it did: as markdown documents with explicit names and links that later enrichment can reconcile into entities. Post a fresh first-notice-of-loss note; its storage response arrives before that graph work:
/api/v1/documentsBearer · kb:writeSave markdown through the vault. The file, chunks, and full-text index commit before 201; embedding and graph enrichment continue as detached work, so the response contains stored-document metadata only.
At 201, the claim note is durably searchable through FTS. Atlas extracts and reconciles entities later as detached enrichment; the create payload does not claim that work is complete. The live claims database comes later, in Conduit; here we are building the governed record of what each file says.
2 · Atlas — type the claims graph
Free text is not enough for claims work — you need to know that CL-4471 is a Claim filed against a Policy, handled by an Adjuster, on a CoverageLine that cedes to a ReinsuranceTreaty. Sentinel's ontology defines exactly those six entity types — Adjuster, Underwriter, CoverageLine, Policy, Claim, ReinsuranceTreaty — plus four relation types: adjusts, underwrites, filed_against, and ceded_to. Retrieval reasons over that structure, not just the prose. Expand the neighborhood around the Homeowners Line to see the typed edges the seed built:
/api/v1/entities/{id}/neighborhoodBearer · kb:readThe knowledge-graph frontier around one entity: its card plus typed edges out to depth hops. This is the structured backbone that grounds retrieval and powers Conduit's entity-bound live queries.
Query parameters
The graph is the join key
ceded_to the Property Catastrophe Excess-of-Loss Treaty is a typed edge, an answer about a hail loss can walk straight from the claim to the treaty that backs it — no keyword luck required. Manage types and edges by hand or let extraction fill them in; see Manage entities.3 · Warrant — certify the treaty terms
The single most consequential fact in this workspace is where the catastrophe protection attaches. Extraction gives you the Property Catastrophe Excess-of-Loss Treaty at authority machine_extracted — fine for search, not something an analyst should quote in a reserving call. In Warrant, pin its terms as a reviewable change, then certify it — certified is the only tier the answer policy states without hedging:
/api/v1/change-requestsBearer · kb:writePropose the canonical treaty terms as a reviewable change rather than editing silently. Approval promotes authority to at least curated and records the reviewer on the revision.
/api/v1/entities/{id}/certifyBearer · kb:writeOwner/admin sign-off — authority certified. Also starts the review clock: nextReviewAt lands at now + the workspace's reviewIntervalDays, so a treaty term can't quietly go stale between placements.
Do the same for the source document — verify the treaty write-up so its provenance carries a governance tier that Lineage reports and the manifest counts:
/api/v1/documents/{id}/verifyBearer · kb:writeGlean-style document verification. Stamps the verification tier, the verifier, and the next re-verify date — the governance block Lineage reports.
Certification is what lets the policy answer plainly
answer with the reason confidence_above_answer_floor precisely because the grounding source is certified rather than machine-extracted. Curate all of this in the UI too — the Curation page writes the same append-only revisions.4 · Conduit — read the live claims database
The documents tell you what each file says; the numbers live in the claims system. Sentinel exposes a read-only Conduit connector named sentinel-cms (Postgres) with three governed named queries bound onto entities: open-claims-by-line (bound to Claims Management System), loss-ratio-by-line (bound to Homeowners Line), and adjuster-workload (bound to Marcus Del Rio). List them, then run one — every execution is row-capped, timed, and writes an append-only data_calls row that hands back a dataCallId, the [Dn] provenance anchor you can cite:
/api/v1/data/queriesBearer · data:readList named queries (domain components) available to run, with their parameter specs. Credentials and connection configs are never returned.
/api/v1/data/queries/{slug}/runBearer · data:runExecute a named query with validated params. Read-only, row-capped at the connector's maxRows, timed, and provenance-logged. Params are bound, never interpolated. Returns a dataCallId — the [Dn] provenance anchor.
That is Marcus Del Rio's morning view — open reserves by line, largest first — as a live, cited number instead of a month-late spreadsheet. Run loss-ratio-by-line with {"params":{"line":"Homeowners"}} and the same connector returns the incurred losses over earned premium; when it crosses 75%, the workspace raises a loss_ratio.breachalert ("Homeowners Line loss ratio exceeded the 75% underwriting threshold this quarter") so a breach is caught the day it happens, not at quarter-end. Full mechanics in Query live data.
5 · Lens — the analyst asks, and gets a cited answer
Now the payoff. An analyst asks in plain language; Lens retrieves, grounds, and returns an answer with inline [Sn] citations, an atomic claimsbreakdown, and a policy decision that says how much to trust it. Ask one of Sentinel's golden questions — the treaty behind a Homeowners catastrophe loss — and because the treaty is certified, the policy answers plainly:
/api/v1/queryBearer · agents:runRun the grounded query pipeline: retrieval + entity detection + one generation + a groundedness check + the answer-policy engine. Returns a cited answer with a policy decision. The workspace comes from the key.
Fuse the semantic and data layers in one call. Ask a reserving question with includeData: true and the detected Homeowners Lineentity's bound query runs as a governed [Dn] lookup alongside the document [Sn] citation:
/api/v1/queryBearer · agents:runGrounded answer fusing documents and live data: detected entities' bound queries run as governed [Dn] lookups next to document [Sn] citations. The policy verdict reflects the seeded post-stage decision for this question.
The policy abstains rather than bluffs
"Will there be a hurricane this hail season?" — and the pre-stage verdict is abstain_with_pointers (confidence 0.1, reason no_relevant_chunks): no guessing about future catastrophes. Ask a coverage question the file only partly supports — "Is claim CL-6012 covered under Policy CP-77420?" — and it comes back answer_with_caveat (0.42, confidence_in_caveat_band), surfacing the facts and routing the actual coverage decision to the adjuster of record. That is the abstain-first behavior claims work demands.6 · Lineage — trace the answer to its file
A reserving reviewer asks the fair question: where is this treaty term coming from, and can I trust it? The golden answer cited S1 → docId 01KZDOCCATXOL…. Pull that document's lineage and read the whole trail in one call — origin, governance, and the downstream answers it is grounding right now:
/api/v1/documents/{id}/lineageBearer · kb:read or runs:readThe unified per-document lineage trail: origin provenance, governance, the audit trail, derived knowledge, and downstream impact. This is how you prove an answer's pedigree end to end.
There it is, closed loop: the answer traces to reinsurance/property-cat-xol-treaty.md, the document is certified (from step 3), and it is currently grounding 6answers — so an edit to the attachment point has a known blast radius across every reserving answer that leans on it. The reviewer didn't have to trust the model; they read the pedigree. The full trail also lists the derived entities (the treaty, the two lines that cede to it) and the dependent cache entries that would invalidate if the treaty write-up changed.
Same trail, three surfaces
DocumentLineage as a visual trail on the document page (via the BFF at GET /api/w/{workspaceId}/documents/{docId}/lineage), and the claims analyst agent can pull it mid-run with the kb_document_lineage MCP tool. One shape, three surfaces.7 · Crucible & Ports — the golden set and the analyst
Claims facts change every week — reserves move, files close, the loss ratio drifts — and a wrong answer in a reserving call is expensive. Capture the questions the team actually asks as a golden set so Crucible can prove the assistant still answers them after every change. Sentinel ships the Claims Q&A baselineset — "Which reinsurance treaty covers catastrophe losses on the Homeowners line?", "Who is the adjuster on claim CL-4471?", "Why did the Homeowners line loss ratio spike in Q2?". Anchor a golden item to the certified treaty concept and seed a provenance qrel from the chunk that should ground it:
/api/v1/qrelsBearer · kb:writeAuthor a graded relevance judgment for a golden item. source=provenance derives the highest-grade judgment from the item's anchored citation — deterministic, no judge model needed.
The same grounded pipeline is packaged as a named agent — Ports exposes the Claims Operations Analyst (claims-analyst), whose system prompt cites a source for every claim and abstains without support, and which never makes a coverage or claim-denial decision — it surfaces facts and routes the call to the adjuster or underwriter of record. Run it on a golden question and get a blocking RunResult:
/api/v1/agents/{slug}/runsBearer · agents:runStart a run of the named agent. SSE stream when stream is true (default); a blocking JSON RunResult when false. Same harness the workspace UI uses — keyed, attributed, and budgeted.
Request body
Run the golden set through the evals workspace, then read the metrics for the run. Retrieval and abstention numbers are deterministic; RAGAS numbers carry the judge model that produced them:
/api/v1/evals/runs/{id}/metricsBearer · kb:read or runs:readRetrieval, RAGAS, and abstention metrics for one run of the Claims Q&A baseline — overall and by facet. The ruler for 'did the analyst get worse?'
When faithfulness drops after a reserve update or a treaty edit, the golden set names exactly which question regressed — and promoting that miss back into the set turns it into a permanent test. That is the dashed loop in the diagram: Crucible's regressions steer the next round of Warrant curation. Compare two configs behind a two-gate significance test in Measure & compare.
The leverage
Seven slices, one claims knowledge base, one audit trail. The analyst gets a fast, cited answer — or an honest abstain; the reviewer can trace any answer to a certified treaty term and see its blast radius; the live claims database turns "what's our open reserve by line?" and "who's overloaded?" into grounded numbers; and a loss-ratio breach or a catastrophe approaching the $10M treaty attachment fires as an operational alert instead of a quarter-end surprise. Swap Sentinel's P&C corpus for life, health, or specialty lines and the shape is identical — the platform doesn't care what the claims are about, only that every answer is grounded, governed, traceable, and measured.
Keep going