lab
PolicyGround
Governed RAG where weak retrieval refuses instead of guessing, applied to a finance policy manual
What it does
Every claim is cited, weak retrieval refuses rather than composing something plausible, sensitivity labels decide what is retrievable at all, and groundedness is gated in CI rather than checked by hand.
The graph is retrieve → assess_sufficiency → (refuse | compose → citation_check). Refusal is a node, not an apology appended to an answer. Which is the difference between a system that declines and one that hedges.
The label filter lives in the retriever protocol rather than in the prompt, so a role that cannot see a document cannot have it summarised at them either. The corpus is a 30-policy synthetic accounting manual written for the project; no real policy text and no accounting-standard text is reproduced.
Screens



Stack
- Python
- LangGraph
- FastAPI
- pgvector
- React
All data in this project is synthetic.
Aneeq Khatri