The client
Getting patients to treatments that are not yet approved
A company that connects patients and physicians with treatments still in development. When a patient has run out of approved options, it helps their physician find a lawful route to an investigational treatment — a clinical trial, an expanded access or compassionate use programme, or an orphan drug scheme.
Which route is open depends on where the patient is, and on rules that regulators revise continuously.
The challenge
Compliance tracking that depended on someone reading
Every regulatory update was found, read and recorded by hand. Registries, government websites and regulatory publications each change on their own schedule, in their own format.
The surface area
Knowledge sat with whoever had last read the source. An answer to “is this pathway still open here?” depended on who was asked, and how recently they had checked.
Constraints
What we had to design around
- StakesA wrong answer about an access pathway can send a physician down a route that is closed. Speed mattered, but never more than being right — and being able to show where the answer came from.
- SourcesSome regulators publish structured registries with APIs. Others publish web pages and guidance documents. The pipeline had to read both and normalise them into one model across jurisdictions.
- ConsistencyThe same question asked twice had to get the same answer. A system that paraphrases a rule differently each time cannot be relied on for compliance.
- Human authorityRegulatory affairs owns the final word. Changes in high-stakes jurisdictions, and anything ambiguous, had to reach an expert before reaching the graph.
- Existing estateThe client already ran a graph database, cloud infrastructure and monitoring. The system had to plug into them, meet ISO 27001 and SOC 2 expectations, and leave room for further jurisdictions.
Our approach
Model the rules first, then let agents keep them current
A search engine over regulatory documents finds text. It does not tell you which pathway is open. That needs the relationships: which body governs which pathway, in which jurisdiction, with which requirements, as of which date.
So we built the ontology before any agent. A knowledge graph holds the structure. Agents keep it current — one to spot changes, one to judge them, one to answer questions — and people approve the changes that carry real risk.
The solution
Five layers, from a regulator’s page to a cited answer
- Ingestion — Cloud-native ETL pulls from US, UK and EU registries, government websites and regulatory publications. Extraction modules handle APIs and semi-structured pages; transformation modules normalise formats across jurisdictions, with completeness and accuracy checks on the way in.
- Regulatory knowledge graph — An ontology of regulatory bodies, jurisdictions, access pathways — clinical trials, expanded access, compassionate use, orphan drug programmes — and their requirements, plus a historical timeline. Every fact keeps its provenance.
- Agents — Orchestrated with Agno. A change detection agent watches the sources and classifies updates by significance and region. An LLM-as-judge agent validates each one. A GraphRAG agent retrieves the relevant subgraph and answers with the source cited. Contextual memory recalls earlier decisions and how a framework has evolved.
- Human review — Flagged and high-stakes changes land in a review workflow. Regulatory experts approve or correct them before they are written to the graph.
- API and alerts — A role-based API with query and suggest-update endpoints serves the regulatory affairs team, site managers and client applications. Alerts go to stakeholders by subscription, and every detected change sits in an audit trail.

Responsible by design
Four rules for agents near patient access decisions
Cite
No answer without its source.
Every response points to the regulation it came from, so a reviewer can check it in one click rather than trusting the model.
Judge
Every extracted change is checked before it is stored.
An LLM judge tests each update against defined accuracy criteria. An accuracy dashboard and drift detection show when that standard slips.
Escalate
High-stakes and ambiguous changes go to a person.
Regulatory experts approve anything the agents are unsure of, and anything in a jurisdiction where an error would be costly.
Trace
Every change has a history.
Provenance on each fact, versioning on each document and an audit trail on each detected change. The graph can say what a rule was last month, not just what it is today.
The third rule is the one the others serve. The agents do the reading and the checking. The regulatory team keeps the authority, and spends it on the changes that need it.
Results
What changed for the regulatory team
- Regulatory changes in the graph within 24 hours — from a registry update or a government notice to a validated, queryable fact, without anyone reading the source by hand.
- Above 90% accuracy on regulatory pathway data, with an LLM judge on every change and an expert on the ones that matter most.
- Cited answers in under 5 seconds, deterministic, so the same question gets the same answer next week.
- 99%+ availability and 100+ concurrent queries through a role-based API that the regulatory affairs team, site managers and client applications all use.
- Manual compliance tracking replaced — the regulatory team reviews flagged changes instead of searching for them.
The team stopped searching for changes and started deciding on them.
Beyond the numbers
What else changes
The rules become something you can ask, not something you have to remember. “Which pathways are open for this treatment in this jurisdiction, and what changed since last quarter?” is one query against the graph, answered with the sources attached.
And because the schema was built to extend, a new jurisdiction is a new set of sources feeding the same graph and the same agents, not a new system.
If your compliance team spends its week reading regulators
The first question is which sources change most and which changes matter. That is answerable from a month of your update history, before anything gets built.