What it is
Clinical decision-support built at LyraGen for a regulated domain: a Next.js app in front of a FastAPI service that runs a nine-agent system. A triage agent reads the case and routes it to specialists (pharmacology, lab analysis, medical imaging) via handoff tools, so the routing decision lives in the graph rather than in prompt glue.
What I built
- Designed the agentic pipeline as a standalone FastAPI microservice behind the app, secured with JWT auth.
- A 5-layer safety pipeline screening every agent response: emergency detection, deterministic rules, and an LLM safety evaluator.
- A RAG pipeline (Dagster, PGVector) with query-expansion retrieval over the clinical corpus.
- Automated the GDPR data lifecycle: DSAR deletion propagates across the app, LangGraph state, and object storage via an outbox pattern.
- Full request observability and tracing with Langfuse; CI/CD and tests across all three services (pytest, Vitest, ruff).
Notes on the build
The interesting constraint was that "correct" is not enough in a clinical setting. A plausible-but-unsafe answer has to be caught before a human ever reads it. That pushed the safety work out of the model and into a pipeline that can be reasoned about, tested, and audited independently of whichever model is behind it.
Requirements came directly from non-technical clients, so most of the design work was translating domain rules into agent boundaries and hard-coded guardrails.
Source is private. This is a commercial product.