← Back to work

Agentic RAG over the Real IETF RFC Corpus

Personal, RAG & Retrieval Systems · 2026

Cited, revision-aware retrieval over 321,124 real IETF RFC chunks, with zero LLM in the answer path. It resolves the real RFC 2616 obsoletion exactly, six ways into RFC 7230 through 7235, by walking a supersession graph.

321,124
real ingested chunks measured RFC text + index + errata + IANA registries
~12s / query
native Qdrant retrieval measured ~16× faster than a prior pure-Python scan, this hardware
6-way
RFC 2616 to 7230–7235 obsoletion resolved exactly measured supersession graph walk, not retrieval
  • RAG
  • Qdrant
  • BAAI/bge embeddings
  • MCP
  • Citation-gating
  • Knowledge graphs
  • Python

The gap

Most RAG demos answer confidently and cite nothing. Over the full public IETF RFC corpus (the documents that define the internet), this one retrieves, cites the exact source, and abstains when the evidence is thin. No language model sits in the answer path, so it cannot smooth over a gap by inventing one.

It is a standalone, public build: the same retrieval-and-verification discipline I apply to a proprietary corpus at work, applied here to an open corpus anyone can inspect.

How it works

  • Ingestion covers 321,124 chunks from RFC text, the RFC index, errata, and IANA registries, embedded with BAAI/bge-base-en-v1.5 into Qdrant.
  • A supersession graph resolves revision questions with a deterministic walk over obsoletion edges rather than a similarity search. A question about HTTP/1.1 resolves the real RFC 2616 split into all six successors, RFC 7230 through 7235, exactly.
  • Every claim is bound to a source span, or it is not made.
  • An MCP server exposes the whole thing as tools an agent can call.

What it proves

Retrieval that is fast and honest about what it does not know is the hard part of RAG, and the part most demos skip. Native Qdrant search cut a query from a ~16× slower pure-Python scan down to about 12 seconds on my hardware, and the answer path stays deterministic and inspectable end to end.