Contact
← Work

rag-lab

A search system measured one design choice at a time on 94 questions over a public standard. Most ideas did not help. Every number regenerates offline, and CI fails if one moves.

Year
2026
Kind
Agents & RAG · Python
Status
Shipped
rag-lab, image 1

I built a search system over NIST's digital identity guidelines and measured each choice on its own: chunking, keyword settings, fusion, reranking and query rewriting. The rule for picking a winner was written down before each sweep ran. Every results page regenerates from the repo, offline, and CI fails if a number moves.

Most ideas lost. Keyword search beat embedding search on ordering. Semantic chunking did not beat a fixed 128-word window. None of nine re-scoring methods helped. A failure taxonomy found that 7 of 23 misses were label errors, not retrieval errors. The questions were produced with a language model and checked only for consistency, so recall numbers are lower bounds.

The second half is a sandbox for untrusted Python. Each of its ten escape tests runs the attack twice: with that one boundary removed, where it must succeed, and under the strict policy, where it must fail. The no-network claim was false until a working payload showed io_uring slipping past the syscall filter. That payload is now a test.

rag-lab, image 2
Next projectbench-lint →