Governed RAG for Regulated Industries
Evidence-backed answers. Fail-closed refusal. On your hardware.
Every response scored for factual consistency. Query-time role-based access control. Hash-chained, tamper-evident audit trails. Operational deployment and public demo with quantitative evaluation results.
demo.getkeystone.ai (live demo), github.com/getkeystone (source).
Safety-critical knowledge is scattered, unfindable, and unauditable
Hundreds of SOPs live across SharePoint folders, shared drives, and filing cabinets. When a regulator asks which version of a confined space entry procedure was in effect on the day of an incident, finding the right document takes hours. When an internal audit asks who accessed a specific safety procedure last Tuesday, the honest answer is often: we don't know.
Generic AI tools make this worse. They answer with confidence whether or not the evidence supports it, send your operational documents to third-party cloud providers, and produce no audit trail of what was accessed or by whom.
Keystone was built to address this.
What the system enforces
Keystone enforces architectural properties simultaneously. These are not prompt instructions or configuration options. They are structural constraints in the retrieval pipeline, database schema, and API layer.
Your documents. Your hardware. Cited answers and a full audit trail.
Closes the loop between written procedure and field reality
After every answer, workers can flag what was useful, what was missing, and what was wrong. Those signals feed a governed review process. When a procedure owner validates a change, the next person who asks the same question gets a better answer. Your procedures improve because your people use them.
Live demo at demo.getkeystone.ai (operator1 / demo123). Eval baseline (KDAT-001B, 2026-04-11): P@1=0.75, MRR=0.79. Adversarial ACL: 8/8 blocked, 0 leaks. Fail-closed: 5/6 (83%). Audit chain intact.
Quantitative evaluation baseline
All capability claims are backed by evaluation evidence. KDAT-001B (2026-04-11): governed retrieval, 53-document Alberta OHS corpus, 2,674 chunks. KDAT-002D (2026-05-20): governed agent extension, 135-document corpus (Alberta OHS plus supplementary regulatory material), 23,684 chunks.
- Precision at 1 (P@1): 0.75
- Mean Reciprocal Rank (MRR): 0.79
- Corpus: 53 documents, 2,674 chunks
- Hybrid retrieval: pgvector + full-text search
- Adversarial ACL testing: 8/8 blocked, 0 leaks
- Fail-closed accuracy: 5/6 (83%)
- Audit chain: intact, immutable
- INSERT-only DB role enforced
- Governed agent extension
- 186 eval cases, 12 categories
- 558 executions, 0 failures
- 153 strict pass, 33 characterization
- Spec: KDAT-002-SPEC v1.2
- Severity-tier HITL routing
- Per-step evidence gating
- HMAC action audit chain
- Eval identified 4 system bugs; all fixed and re-verified
- Failing run (KDAT-002C) published
- Enterprise HA or disaster recovery
- Multi-node or distributed deployment
- OIDC/SAML production identity integration
- Third-party penetration testing
- WCAG accessibility compliance
Hackathon Demo
Generative UI for governed agent actions, built at AI Tinkerers Global Hackathon May 2026.
Built from operational and infrastructure experience
Arnaldo Sepulveda built Keystone Applied Intelligence after nearly 13 years delivering and supporting enterprise platforms at Genesys for regulated and public sector customers. Those environments required production reliability, security controls, and the ability to prove what happened, when, and who authorized it.
That operational background is why Keystone is built the way it is. Every design decision maps to a documented requirement. Every capability claim maps to a demonstrated proof artifact. No overclaims, no roadmap presented as current capability.
Based in Canada.
More about Arnaldo: arnaldosepulveda.com
Built with
Python, FastAPI, PostgreSQL 16 with pgvector, Ollama (nomic-embed-text, qwen2.5:7b-instruct), React/TypeScript/Tailwind, Docker Compose, Caddy, Cloudflare Tunnels. No cloud dependency for core operation.
Source and evaluation evidence: github.com/getkeystone