Blueprints

Zep Underwriting Context Agent Blueprint

BlueprintInsuranceZepLangGraph
Trida AI·
Share
Zep Underwriting Context Agent Blueprint

An underwriter opens a renewal file in the morning. The summary at the front says the limit is five million. It was, until an endorsement cut it to two and a half million mid-term, four months ago. Nobody hid that endorsement. It sits in the file, a few documents deep. But the summary was assembled by hand, from whichever version of the file someone read first, and the stale figure is the one wearing the confident formatting.

Underwriting rarely suffers from a shortage of information. It suffers from assembly. Everything a carrier knows about one account — submissions, claims history, endorsements, inspection reports, broker correspondence, its own earlier decisions — is scattered across years of paper, and several documents disagree because each was true at a different time. Whoever builds the brief decides, invisibly, which version of each fact the underwriter sees.

So this open blueprint, the Zep Underwriting Context Agent, keeps the account's history in a time-aware memory built on Zep, and assembles the brief from it under rules enforced before the brief is shown: current facts only, every fact cited to the document it came from, superseded facts shown as superseded. Then it stops. The underwriter decides.

Current means current as of today

Every fact in the account's memory carries the dates it is in force. Policies get endorsed, locations change, limits move. When two documents give different values for the same line of the file, the brief resolves them as of today: the value whose dates cover today, recorded most recently, stands as current. The older value is not deleted and never presented as live. It moves to a superseded section that names what replaced it, so the underwriter can see the change itself — a limit endorsed down mid-term is underwriting information, not clutter.

Facts dated in the future stay out entirely; a brief never borrows from next term's paperwork. And when the file does not contain something the decision needs, the brief lists it as missing. A named gap invites a question to the broker. An estimate dressed as a fact invites a bad decision.

How a brief is assembled. Documents are screened on arrival, facts are resolved as of today, and the finished brief is checked before anyone is asked to decide from it.
How a brief is assembled. Documents are screened on arrival, facts are resolved as of today, and the finished brief is checked before anyone is asked to decide from it.

One account, and only that account

A brief for one insured must never carry another insured's facts. That sounds obvious until two accounts carry near-identical names, which in a real book is a matter of time. Retrieval is fenced to a single account, and the brief is checked again before it is shown: every fact traced to a document belonging to that account, anything foreign failing the brief outright.

The checks are graded against planted traps. Cases are built where a superseded figure is the easy answer, where a decision rests on facts that later change, where two accounts differ by a word in the name. Leakage between accounts is graded at zero tolerance — one foreign fact fails the whole pack. Passing those cases means the assembly still behaves as designed on the traps the builders thought of. That is a regression gate, not evidence about your book. The habit that gives it value is unglamorous: when the desk meets a new failure shape, the case goes in first, and the behaviour changes second.

A broker's letter is a claim, not a fact

Correspondence gets two kinds of scrutiny. The first is blunt: a document that tries to instruct the file — asking, in so many words, for the claims history to be ignored and a clean record shown — is quarantined. Its assertions never become facts, and the brief names the document and the reason.

The second is quieter, and applies to honest letters too. Filed documents and the carrier's own records enter the file on arrival. A broker letter's assertions wait. They sit in a review queue, grouped under the letter they came from, with the passage to read them against, until an underwriter confirms or rejects them. A rejection stays on the record, with its reason: the file keeps an audit of what the desk refused alongside what it accepted.

The brief also says how well each fact is supported. A fact standing on the carrier's own record, or on filed paper a second document agrees with, carries the strongest mark. A fact resting on a single letter, or standing where an earlier value was replaced, is listed in a soft-spots section — what it is, why it is thin, what it replaced — so the underwriter knows what to verify before leaning on it. The grading informs. It decides nothing.

One case, end to end. The endorsement does not edit the old brief; it flags the decision made from it, and the next brief shows both figures in their proper places.
One case, end to end. The endorsement does not edit the old brief; it flags the decision made from it, and the next brief shows both figures in their proper places.

Decisions go stale, and the file says so

A decision is a statement about the facts as they stood. Paper keeps arriving afterwards. When new material changes a fact a decided brief relied on, the system flags that decision as stale — the brief itself is never edited, and the flag clears only when an underwriter assembles a fresh brief and decides again on current facts. There is no dismiss button. A flag that could be waved away would let a queue look clean while a decision still rests on superseded facts, which is the failure this whole design exists to prevent.

When an underwriter asks for more information instead, that request becomes a tracked ask: the missing items named the way the desk names them, plus any quarantined document the broker should resend cleanly. The system drafts the note for the underwriter to copy. It sends nothing — there is no send path. As answers arrive, each item is recognised against a fresh assembly and marked received, until the file is ready for review again.

Renewals get the same discipline pointed at the last decision. A renewal brief quotes the decision it follows and carries a change ledger since it: what is new, what was superseded and by what, what has lapsed, and a count of what stands exactly as decided. The desk's morning view ranks the whole book by what is outstanding — stale decisions first — with the ranking weights printed on the view itself, so anyone can argue with the numbers in the open. And when the same insured appears twice under two accounts, the pair is flagged with its evidence for a person to judge. Nothing merges them automatically.

Where the agent stops

The agent never prices, binds, or declines. A model may draft the short narrative at the top of a brief, but it may not add a fact: every figure in the narrative is checked against the cited facts, and a narrative that invents a number is discarded for a plain, labelled summary. Whether a risk belongs on the carrier's book at all — appetite — is deliberately left to the carrier's own policy machinery.

Two limits deserve plain statement. Verification against a live Zep workspace is still pending: the connection is built to Zep's published interface and pinned by tests over a stand-in, and the local memory used for testing follows the same rules without Zep's extraction and ranking quality. The results prove the assembly discipline — the temporal rule, the citations, the gate. They do not prove retrieval quality on your book, and the blueprint would rather say that than grade its own homework.

Work with us

If your underwriters are deciding renewals from summaries assembled by hand — and finding last term's figures in them — the fix is a memory that knows what was true when, and a brief that shows its working. Start with Trida AI's intake: a few questions about your book and your lines, then a conversation with the founders and engineers who would build it with you.

Get the Code on GitHub: github.com/tridaai/blueprint-zep-underwriting-context