Footnote
A document question-answering tool based on Agentic RAG that employs a sentence-level citation verification mechanism, supports multi-turn retrieval planning, honest boundary feedback and switching between multiple retrieval modes, and emphasizes the verifiability of answers.
Timeline (last 90 days)
Footnote is an Agentic RAG system that uses an Agent loop for retrieval, returning retrieval results as sentence-level blocks and having the API validate citations, rather than having the model generate citation numbers itself.
Footnote's Agent is given two tools, search_handbook and read_page, which it calls repeatedly in a loop until it is able to answer.
Footnote supports switching operation among three retrieval modes—hybrid, keyword-only, and vector-only—and shows the ranking of each piece of content under both retrieval methods.
Footnote's tech stack is Python + FastAPI, the UI is a single HTML file, and it calls Claude directly through the Anthropic SDK, without using any Agent framework.
Footnote's retrieval layer uses handwritten BM25 plus local bge-small vectors, fuses them with weighted reciprocal rank fusion, and has been tuned on a 59-question evaluation set.
Footnote's demo corpus is the public-domain 18F employee handbook, totaling 232 pages.
Footnote's screenshots come from a key-free demo, where the model turns are scripted, but retrieval and citations run for real.
When there is still no relevant content after retries, Footnote explicitly states that the document does not cover the question and cites the closest passages, rather than making up an answer.
Footnote's source code is hosted in the IbrarYunus/footnote repository on GitHub.
The author deliberately does not use Agent frameworks such as LangChain or LlamaIndex, and instead orchestrates the loop directly with the Anthropic SDK, to achieve a fully controllable and easily debuggable pipeline.
1 more timeline events
All Facts (11)
Footnote is an Agentic RAG system that uses an Agent loop for retrieval, returning retrieval results as sentence-level blocks and having the API validate citations, rather than having the model generate citation numbers itself.
50%UnverifiedFootnote's Agent is given two tools, search_handbook and read_page, which it calls repeatedly in a loop until it is able to answer.
50%UnverifiedFootnote supports switching operation among three retrieval modes—hybrid, keyword-only, and vector-only—and shows the ranking of each piece of content under both retrieval methods.
50%UnverifiedFootnote's tech stack is Python + FastAPI, the UI is a single HTML file, and it calls Claude directly through the Anthropic SDK, without using any Agent framework.
50%UnverifiedFootnote's retrieval layer uses handwritten BM25 plus local bge-small vectors, fuses them with weighted reciprocal rank fusion, and has been tuned on a 59-question evaluation set.
50%UnverifiedFootnote's demo corpus is the public-domain 18F employee handbook, totaling 232 pages.
50%UnverifiedFootnote's screenshots come from a key-free demo, where the model turns are scripted, but retrieval and citations run for real.
50%UnverifiedWhen there is still no relevant content after retries, Footnote explicitly states that the document does not cover the question and cites the closest passages, rather than making up an answer.
50%UnverifiedFootnote's source code is hosted in the IbrarYunus/footnote repository on GitHub.
50%UnverifiedThe author deliberately does not use Agent frameworks such as LangChain or LlamaIndex, and instead orchestrates the loop directly with the Anthropic SDK, to achieve a fully controllable and easily debuggable pipeline.
50%UnverifiedThe author believes retrieval is the easy half; the hard part is making every sentence of the answer verifiable.
50%