Vectorless transforms documents into hierarchical semantic trees and uses LLM-powered reasoning to navigate them. This page describes the end-to-end pipeline.
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Document │────▶│ Compile │────▶│ Storage │
│ (PDF/MD) │ │ Pipeline │ │ (Disk) │
└──────────────┘ └──────────────┘ └──────┬───────┘
│
┌──────────────┐ ┌──────▼───────┐
│ Result │◀────│ Retrieval │
│ (Evidence) │ │ Pipeline │
└──────────────┘ └──────────────┘
The compile pipeline processes documents through four phases (Frontend → Analysis → Transform → Backend), each containing independent passes:
Each pass is independently configurable. The pipeline supports incremental recompilation via content fingerprinting and checkpoint/resume for fault tolerance.
The backend passes produce pre-computed acceleration data used by Workers during retrieval:
This data is injected as Phase 1.5 hints into the Worker's navigation plan, allowing the LLM to make informed routing decisions without additional navigation steps.
Each node in the tree contains:
TreeNode
├── title — Section heading
├── content — Raw text (leaf nodes)
├── summary — LLM-generated summary
├── structure — Hierarchical index (e.g., "1.2.3")
├── depth — Tree depth (root = 0)
├── references[] — Resolved cross-references ("see Section 2.1" → NodeId)
├── token_count — Estimated token count
└── page_range — Start/end page (PDF)
The retrieval pipeline is a supervisor loop driven entirely by LLM reasoning. Every decision — which documents to query, how to navigate, whether evidence is sufficient — is made by the model, not by heuristics.
Engine.ask()
→ Dispatcher
→ Query Understanding (LLM) → QueryPlan (intent, concepts, strategy)
→ Orchestrator (always — single or multi-doc)
→ Analyze (LLM reviews DocCards, selects documents + tasks)
→ Supervisor Loop:
Dispatch Workers → Evaluate (LLM sufficiency check)
→ if insufficient → Replan (LLM) → loop
→ Rerank (dedup → BM25 score → evidence formatting)
Every query first passes through LLM-based understanding:
The Orchestrator is the central coordinator. It always runs — even for single-document queries. Its supervisor loop:
When the user specifies document IDs directly, the Orchestrator skips the analysis phase and dispatches Workers immediately.
Each Worker navigates a single document's tree to collect evidence through a command-based loop:
ls the root for an overviewlscd <name>cd ..cat <name>head <name>find <keyword>findtree <pattern>grep <pattern>wc <name>pwdcheckdoneWorkers prioritize keyword-based navigation over manual exploration:
find with the exact keyword to jump directly to relevant sectionsls when no keyword hints exist or when discovering unknown structurefindtree when the section title pattern is known but not the exact nameAfter a check command finds insufficient evidence, the Worker triggers a re-plan — the LLM generates a new navigation plan based on what's missing. This allows the Worker to adapt its strategy mid-navigation.
After all Workers complete, the Orchestrator runs the final pipeline:
The system returns raw evidence text — no LLM synthesis or paraphrasing. This ensures the user sees the exact document content that matches their query.
When multiple documents are compiled, Vectorless maintains a lightweight catalog.bin containing DocCard metadata for each document. This allows the Orchestrator to analyze and select relevant documents without loading the full document trees — a significant optimization for workspaces with many documents.
When multiple documents are compiled, Vectorless automatically builds a relationship graph based on shared keywords and Jaccard similarity. The graph is constructed as a background task after each compilation operation.
The entire system requires only an LLM API key. No vector database, no embedding models, no additional infrastructure. Trees and metadata are persisted to the local filesystem in the workspace directory.