Document search and RAG for agents
Loom indexes your documents (Markdown and text, and PDF, .docx and .pptx files that its
extractor service converts) and lets agents search them with citations over MCP, HTTP or
the SDKs. It is the retrieval half of retrieval-augmented generation (RAG): your agent or
model writes the answer from the passages Loom returns.
What you get
- Chunks that follow the document's structure.
knowledge.addstores the text and, optionally, the original file; Loom splits it on its headings, windows each section and embeds every chunk. Knowledge documents - Citations. A hit names its document's
source_uriand passage, so an agent can quote and link the source. - One search across memory, documents and conversations.
loom_searchruns the memory, knowledge, profile and conversation searches in one call, across the caller's memory namespaces. Unified search - Document sources. A namespace's admins can register sources Loom pulls documents
from; the sync worker needs
LOOM_KNOWLEDGE_SOURCE_SYNC_ENABLED. Document sources - A similarity floor.
loom_searchdrops knowledge hits below a similarity floor instead of handing the model a weak passage.loom_search - Access control on every passage. Documents live in namespaces with viewer, writer and admin roles. Namespaces and sharing
Measured
On a committed corpus of PDF, DOCX and PPTX files (27 held-out files), Loom's extractor, with OCR on (its default), scored 0.999 text recall and 0.991 table cell F1 in the measured run (document parsing). Retrieval quality over documents is measured only in part; coverage and known gaps says what is still missing.
Start
The quickstart runs the stack with the extractor
service. Add a document from the dashboard's Library page, with knowledge.add for text,
or, for a file the extractor converts, with knowledge.upload then knowledge.ingest
(ingesting files).
Some ops on this page are marked experimental on the status page.