Skip to content

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.add stores 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_uri and passage, so an agent can quote and link the source.
  • One search across memory, documents and conversations. loom_search runs 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_search drops 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.