Why Legal AI Needs Citations, Not Chat
Contracts already hold the answers. Most legal AI still speaks fluently without a verifiable line. How we built citation checks, versioned retrieval, and human gates into LexVault.
CEO, Brixloop
Every company has some form of customer intelligence. Very few have legal intelligence. Contracts live in inboxes, shared drives, and closing binders. Approvals live in a partner's head. When that person leaves, the firm does not lose a file, it loses the map. This is the problem we kept hitting while building LexVault, and it is why we refuse to ship legal AI as a chat box on a PDF.
The knowledge exists. The system doesn't.
A mid-size firm already has the answers. They are in a 47-page MSA from 2019, a side letter nobody indexed, and a redline thread that never made it into the DMS. Existing "AI for contracts" tools treat that pile as a prompt. You upload, you ask, you get a fluent paragraph. Fluency is not the job. The job is: show me the line, in the document the firm actually signed, and fail closed if you cannot.
We learned this the slow way. Early prototypes retrieved well enough to sound right and still pointed at the wrong clause, the wrong version, or a template that was never executed. In legal work that is not an embarrassing bug. It is malpractice-adjacent. Operators will not adopt a system they cannot defend in a partner review.
Chat is a surface. Citation is the product.
A useful legal answer has four parts the model cannot skip:
- The claim in plain language ("this agreement auto-renews unless notice is given 60 days prior")
- The source document, by name and version, not "your files"
- An exact line or page range the claim was drawn from
- A server-side check that the cited range actually contains the supporting text
If step four fails, we do not show the citation. We show a fallback: retrieve again, ask for a human, or say we do not know. Fabricated references are worse than a blank. Attorneys will trust a confident lie once. They will not trust the product twice.
Why retrieval alone is not enough
Naive RAG chunks a PDF, embeds the chunks, and stuffs the nearest neighbors into a prompt. That works for a knowledge base of blog posts. Contracts are structured documents with defined sections, defined parties, and defined versions. A chunk that says "termination" might be the customer's right, the vendor's right, or a leftover from a playbook. Vector similarity does not know the difference.
What we actually index
- Structural blocks (clause, defined term, signature block) rather than arbitrary token windows
- Line ranges so a citation can be checked against the stored text, not against a regenerated paraphrase
- Matter, party, and date metadata so "the NDA with Acme" is not six NDAs with Acme
- Version identity so a superseded draft cannot answer a question about the executed copy
The generation step still uses a frontier model. The difference is the contract: the model proposes a claim and a span; the server verifies the span. That split is the whole product. We wrote about a similar discipline on agent graphs in LangGraph in production, typed state, human gates, no silent failure.
Human-in-the-loop is not a slogan
Most legal workflows are not "ask the bot, send the email." They are DAG-shaped: associate drafts, senior reviews, client comments, signature, archive. If AI sits outside that graph, it becomes another inbox. If it sits inside it, every model output is an artifact with an owner, a timestamp, and a place to override.
We treat approval gates as data, not UI chrome. Who signed off, on which version, with which citation visible. That is the 365-day audit trail. Firms already do this on paper. The product is only interesting if it makes the paper trail cheaper without making it weaker.
What we killed
- Open-ended "summarize this contract" as the homepage action, too easy to skip the source
- Client-side-only citation highlighting, anyone can fake a highlight; the check has to run on the server
- A single embedding space for executed docs, playbooks, and email, they are different objects with different trust levels
- Per-seat AI chat bolted onto a DMS with no workflow. That is a feature, not a system
Revenue and the harder product
There is a real tension here that we talk about internally: chase studio revenue, or spend years on a cited legal OS. We do both on purpose. Client work at Brixloop pays for the time to get citation validation, DMS integrations, and matter-level access control right. LexVault is the thing we would still be building if nobody booked a call this month. That is not a pitch. It is how we decide what not to compromise.
The founder trap we keep seeing (including in our own first attempts) is polishing the chat UI before the claim can be proven. Perfection over progress looks like a beautiful prompt box. Progress looks like a red fallback when the line range does not match.
If you are scoping legal AI
Write these down before you pick a model:
- What is an acceptable wrong answer, and who sees it?
- Which document is source of truth, DMS, email, or a vault you control?
- Does every answer need a page and line, or is a matter-level summary enough for this workflow?
- Where does a human override get stored?
- What happens when the retrieved span does not support the generated sentence?
If you cannot answer those, you do not have a legal product yet. You have a demo. See the LexVault product page, our scoping framework, or start an inquiry if you are building a review workflow that has to survive a partner asking "where did this come from?"
Related build
LexVault
See the case study.
Continue
More writing
Technical
Mixture of Experts: The Architecture Reshaping Open-Source LLMs
How MoE decouples model capacity from compute, from Switch Transformers to Mixtral, DeepSeek-V3, OLMoE, and FLAME-MoE — with the research papers that define the field.
18 min
Technical
The Age of Self-Hosted SLMs on Infra You Already Have
Small language models belong on the Kubernetes, GPUs, and air-gap you already pay for, not in a new AI island. Classify, extract, and route in-network. Call a frontier API only when the job is actually general.
12 min
Technical
Why AI Coding Assistants Need Live Docs
Assistants fail in production because they remember last year's APIs. Version-specific retrieval, lockfile briefs, and why summarizing a pile of stale wiki pages is not knowledge.
11 min
Building this kind of system?
Send a brief or email hello@brixloop.com. We review fit within one to two business days.