---
title: "Drex for Search: supercharge your agentic search"
description: "Decision-powered retrieval for your coding agent: 6% more answers right with 62% fewer steps and 56% fewer tokens across 6 work benchmarks."
canonical: "https://nace.ai/drex/search"
updated: 2026-10-23
---

# Drex for Search: supercharge your agentic search

> Decision-powered retrieval for your coding agent: 6% more answers right with 62% fewer steps and 56% fewer tokens across 6 work benchmarks.

## Supercharge your agentic search with Decision‑powered retrieval.

Your coding agent gets 6% more answers right with 62% fewer steps and 56% fewer tokens, and finishes 2.3× faster.

- [Try for free](https://console.nace.ai?utm_campaign=drex-search-launch&utm_content=context&utm_medium=website&utm_source=nace.ai)
- [Read the docs](https://console.nace.ai/docs)

### OfficeQA Pro

Keep the agent you already use. Give it Drex for Search as the tool it reaches for, and it answers the same document questions with half the input tokens and half the agent turns.

OfficeQA Pro · 133 questions · 10 harness and model pairs

- **−57%** input tokens per question, fewer in 10 of 10
- **−53%** agent turns per question, fewer in 10 of 10
- **+2.6 pts** average accuracy, 59.3% to 61.9%, higher in 8 of 10

| Harness · model | Default, accuracy % | With Drex for Search, accuracy % | Gain, points | Agent turns per question, default → with Drex for Search | Input tokens per question, default → with Drex for Search |
| --- | ---: | ---: | ---: | ---: | ---: |
| Gemini CLI · Gemini 3.1 Pro, medium effort | 54.9 | 61.7 | +6.8 | 22.9 → 10.4 | 951k → 417k (−56%) |
| Hermes Agent · Qwen3.8-27B, medium effort | 56.4 | 60.2 | +3.8 | 20.1 → 6.5 | 1.20M → 364k (−70%) |
| pi · Opus 5.5, medium effort | 65.4 | 68.4 | +3.0 | 7.7 → 3.7 | 191k → 72k (−62%) |
| Codex · GPT-6 sol, max effort | 66.2 | 70.7 | +4.5 | 14.3 → 8.6 | 710k → 377k (−47%) |
| Hermes Agent · Opus 5.5, medium effort | 64.3 | 68.4 | +4.1 | 8.5 → 3.7 | 217k → 110k (−49%) |
| OpenCode · Qwen3.8-27B, medium effort | 51.1 | 53.4 | +2.3 | 23.7 → 10.0 | 1.82M → 706k (−61%) |
| pi · Qwen3.8-27B, medium effort | 43.6 | 45.9 | +2.3 | 24.3 → 11.1 | 1.29M → 506k (−61%) |
| Claude Code · Opus 5.5, max effort | 66.5 | 69.9 | +3.4 | 18.5 → 9.1 | 906k → 475k (−48%) |
| Claude Code · Sonnet 5.5, max effort | 69.2 | 66.9 | −2.3 | 29.8 → 13.3 | 2.36M → 939k (−60%) |
| Codex · GPT-6 luna, max effort | 54.9 | 53.4 | −1.5 | 16.8 → 11.3 | 932k → 580k (−38%) |

OfficeQA Pro, 133 questions over 697 scanned PDFs. Default is each harness's latest release as of October 20, 2026 over the benchmark's own parsed text. With Drex for Search, the original PDFs are ingested into a workspace and the harness reaches them only through the Nace CLI. Same harness, model, effort, questions and sandbox. Default is the average of two runs on October 20–22, 2026, Drex for Search one run on October 24–25; read accuracy as ±2 points. Input tokens are the harness model's own, cache reads included; Drex's decisions are not counted. [OfficeQA Pro](https://github.com/databricks/officeqa), [paper](https://huggingface.co/papers/2603.08655).

## Search that knows where to look.

Most of a search's quality is decided before the search runs. Drex makes those decisions first.

### Fewer places to look. The right ones.

- **Classify**: Drex reads the question and decides, before any search runs, whether it needs a quick lookup or an agent that reads documents and queries tables.
- **Squeeze**: Drex walks the workspace level by level: folder, file, section, page, and inside a sheet, table and column. Each level keeps only what can hold the answer. Depth is fixed, so a million files take the same number of steps as a thousand.
- **Answer**: Only the pages and tables Drex kept reach the LLM. The answer comes back with the file and page.

Example: "Which Q3 journal entries over $50k lack a second approver?" is classified as a table query. 1,000,000 documents, 100,000 chunks, 7 candidates.

### Beyond RAG.

Every generation of search narrowed where the machine looks. Exact match found the string, keywords the term, BM25 the likely passage, embeddings the similar one. Drex decides where the answer can be before the agent reads a page.

- **Exact match**: the string
- **Keywords**: the term
- **BM25**: scored keywords, Elasticsearch
- **Semantic**: embeddings and RAG, similar meaning
- **Drex**: Classifies the question in one sub-second decision. Narrows folder, file, section, page, then table and column. Fixed depth, so time does not grow with the number of files.

Illustrative counts. Measured results are in the [benchmarks](https://nace.ai/drex/search#benchmarks) below.

## Ingest once. Search forever.

- **Ingest**: Documents, tables, media, JSON. Every page is OCR'd and laid out, and every sheet is kept as a table.
- **Link**: A knowledge graph joins what the files say. A term in one file reaches its definition in another.
- **Search**: Drex classifies the question, narrows the candidates, and the answer cites file and page.

## One workspace per project. A search never leaves it.

- **Isolated**: Its own index and graph, built only from its own files. Delete the workspace and everything built from it goes.
- **Shareable**: Invite members. Everyone searches and asks over the same files.
- **Cited**: Every answer names the file and the page, row or minute it came from.

## Search that is built for knowledge work.

Four public leaderboards for search over documents. Ranks as published, including the ones we do not lead.

Leaderboards read October 20, 2026. Ranks as published.

| Benchmark | Rank | Score | Above | Detail |
| --- | --- | --- | --- | --- |
| [MADQA](https://huggingface.co/spaces/Snowflake/MADQA-Leaderboard) | #1 | 94.7% accuracy | Above Progress (94.3), Mixedbread (93.4), Perplexity (92.1) and OpenAI File Search (49.6). | Ahead of all 49 published systems (best 94.3%). 88.2 page-attribution F1, the most accurate citations on the board. 93.4% with open-weight Qwen 27B. |
| [VisDocAgentBench](https://hulx2002.github.io/VisDocAgentBench/) | #1 | 77.5% R@1 | Above Claude Opus 5 (67.5), Claude Fable 5 (62.5) and GPT-5.6 (61.7). | +10 points over the best published agent (Claude Opus 5 at 67.5%). 86.67% R@10. |
| [BrowseComp-Plus](https://huggingface.co/spaces/Tevatron/BrowseComp-Plus) | #2 | 92.05% accuracy | 12.6 search calls per question; the one entry ahead takes 209. Above Mixedbread (90.5) and LightOn (87.6). | Of 86 entries. 16.6× fewer search calls than the one entry ahead (12.61 vs 209.27). +20.4 points for GPT-5 over the Qwen3-Embed-8B baseline with the same model. |
| [EnterpriseRAG-Bench](https://huggingface.co/spaces/onyx-dot-app/EnterpriseRAG-Bench-Leaderboard) | #3 | 88.22 overall | Above Mixedbread (86.6), OpenAI File Search (61.0), Azure AI Search (48.4) and Vertex AI Search (41.9). | Of 31 published systems. 91.4% correct, 91.64% of gold facts covered. +27.2 over OpenAI File Search (61.03). |

### MADQA, accuracy

Accuracy, LLM judge · 500 test questions · Higher is better

| System | Note | accuracy |
| --- | --- | ---: |
| **Drex for Search** | Gemini 3.5 Flash | 94.7 |
| Progress | Gemini 3.5 Flash | 94.3 |
| Mixedbread | Gemini 3.5 Flash | 93.4 |
| Perplexity | Gemini 3.5 Flash | 92.1 |
| ARRAY Spectrum | Gemini 3.5 Flash | 91.8 |
| Distyl Button | Gemini 3.1 Pro | 91.7 |
| BM25 search agent | Gemini 3 Pro | 82.2 |
| Google File Search | Gemini 3 Pro | 78.6 |
| OpenAI File Search | GPT-5 | 49.6 |
| ColBERTv2 RAG | Llama 3.1 8B | 40.2 |

### VisDocAgentBench, R@1

R@1 · 120 questions · Higher is better

| System | Note | R@1 |
| --- | --- | ---: |
| **Drex for Search** | Qwen 27B | 77.5 |
| Claude Opus 5 |  | 67.5 |
| Claude Fable 5 |  | 62.5 |
| GPT-5.6 sol |  | 61.7 |
| GPT-5.5 |  | 60.0 |
| GPT-5.6 terra |  | 54.2 |
| Claude Opus 4.8 |  | 47.5 |
| GPT-5.6 luna |  | 43.3 |
| Nemotron ColEmbed | baseline | 40.0 |
| Claude Sonnet 5 |  | 30.0 |

### BrowseComp-Plus, accuracy

Accuracy · Every GPT-5 entry · Higher is better

| System | Note | accuracy |
| --- | --- | ---: |
| AI21 hybrid | 209.3 calls | 95.18 |
| **Drex for Search** | 12.6 calls | 92.05 |
| Mixedbread Search | 11.5 calls | 90.48 |
| LightOn Reason-MC | 13.3 calls | 87.59 |
| LightOn Console | 9.7 calls | 86.27 |
| TopK Iso-MC | 14.1 calls | 80.48 |
| Mixedbread standard | 16.2 calls | 80.00 |
| Agentica | 44.7 calls | 78.41 |
| Qwen3-Embed-8B | baseline · 21.7 calls | 71.69 |
| BM25 | baseline · 23.2 calls | 57.59 |

### EnterpriseRAG-Bench, overall score

Overall score · 500 questions · Higher is better

| System | Note | overall score |
| --- | --- | ---: |
| Flexor.ai | GPT-6.1 Sol | 91.48 |
| CDL |  | 90.91 |
| **Drex for Search** |  | 88.22 |
| Mixedbread | Claude Opus 5 | 86.58 |
| OpenAI File Search |  | 61.03 |
| Amazon Q (Kendra) |  | 48.96 |
| Azure AI Search |  | 48.42 |
| Vertex AI Search |  | 41.87 |
| LlamaIndex default |  | 27.20 |
| LangChain default |  | 24.98 |

## Built for the files that break other search.

- **PDFs and scans**: Scanned statements, filings, contracts. OCR and layout keep the tables inside them as tables. The answer points at the page.
- **Spreadsheets and tables**: xlsx, csv, Parquet. General ledgers and journal entries stay whole, however long. The answer points at the row and cell.
- **Audio and video**: Earnings calls, recorded meetings, mp3 and mp4. The answer points at the minute.
- **Office and text**: docx, pptx, md, json, txt. One question runs over documents and sheets together.

Full list of supported files in the [docs](https://console.nace.ai/docs/perception/parse).

## Your files stay yours.

You upload what you want searched. Nothing else leaves your storage.

- **No training**: Customer content never trains, tunes or evaluates shared models.
- **Retention**: Files stay in the workspace until you delete the workspace or your account.
- **Encryption**: TLS in transit, encrypted at rest, stored in the United States.
- **SOC 2 Type II**: Audited. [Request the report](https://trust.nace.ai)

## Runs where your files are allowed to be.

Same models, same API at every tier. Only the boundary around your workspaces moves. SOC 2 Type II audited at every one. [Request SOC 2](https://trust.nace.ai)

| Attribute | Managed | Dedicated | Your Cloud | Air-Gapped |
| --- | --- | --- | --- | --- |
| Runs in | Our cloud | Our cloud | Your cloud account | Your datacenter |
| Network | Public TLS | Private link | Inside your VPC | None |
| GPUs | Shared | Dedicated | Dedicated | Dedicated |
| Updates | Continuous | Continuous | From registry | Offline bundles |

### Managed Cloud

Our GPUs, our API, a key from Console.

### Dedicated Cloud

Your own cluster in our cloud, reached over private links.

### Your Cloud

Installs in your AWS or Azure account. Data stays inside.

[Talk to sales](https://nace.ai/contact?product=cloud&source=context)

### On-Prem & Air-Gapped

Your datacenter, your hardware, zero outbound.

[Talk to sales](https://nace.ai/contact?product=cloud&source=context)

## Four ways in. One key.

- **[CLI](https://pypi.org/project/nace-cli/)**: Upload a folder and search it straight from your terminal.
- **SDKs** ([PyPI](https://pypi.org/project/nace-sdk/), [npm](https://www.npmjs.com/package/nace-sdk)): Add search to any Python or TypeScript app.
- **[MCP](https://pypi.org/project/nace-mcp/)**: Plug search into Claude Code, Codex, Cursor or OpenCode, and your agent uses it on its own.
- **[REST](https://console.nace.ai/openapi.json)**: Call search from any language or tool over the web.

### CLI
```text
$ pipx install nace-cli
$ nace login
$ nace workspace-create fy25-audit
$ nace upload ./fy25 --workspace <id> --ingest
$ nace search "Total liabilities at year end?"
Total liabilities at year end were $48.2M.
evidences (1):
  reports/fy25-10k.pdf, page 41
  "Total liabilities  48,214"
```

### Python
```text
$ pip install nace-sdk

from nace_sdk import NaceClient

client = NaceClient()
ws = client.workspaces.create(name="fy25-audit")
client.documents.upload(
    "fy25/halden-msa.docx", workspace_id=ws.id
)
ingest = client.workspaces.ingest(ws.id)
client.jobs.wait(ingest.job_id)
job = client.search.automatic(
    ws.id, query="What are Halden's payment terms now?"
)
print(client.jobs.wait(job.job_id).result["output"])
```

### TypeScript
```text
$ npm install nace-sdk

import { openAsBlob } from "node:fs";
import { NaceClient } from "nace-sdk";

const client = new NaceClient();
const { id } = await client.workspaces.create({
  name: "fy25-audit",
});
const file = await openAsBlob("fy25/halden-msa.docx");
await client.documents.upload(file, { workspace_id: id });
const ingest = await client.workspaces.ingest(id);
await client.jobs.wait(ingest.job_id);
const job = await client.search.automatic(id, {
  query: "What are Halden's payment terms now?",
});
console.log((await client.jobs.wait(job.job_id)).result);
```

### MCP
```text
$ uvx nace-mcp login
$ claude mcp add nace -- uvx nace-mcp
# your agent searches the workspace as a tool
# tools: create_workspace, ingest_workspace,
#        automatic_search, qa
# also Codex, Cursor, OpenCode, Claude Desktop
```

## Frequently asked questions

### What is Drex for Search?

Drex for Search finds the exact answer in your files and cites the file and page it came from. You upload documents to a workspace, and Drex narrows each search to the few places the answer can be. It works through the CLI, SDKs, MCP and REST.

### How does Drex for Search improve BM25 and RAG?

Drex for Search tells BM25 and RAG where to look, so the LLM reads less and misses less. Drex reads the question, picks a quick lookup or an agent that reads documents and tables, and narrows the candidates to the few that can hold the answer.

### Do my files have to leave my storage to use Drex for Search?

Only the files you choose to search. You upload a folder from a laptop, a synced bucket or a drive export to an isolated workspace, and the files stay there until you delete the workspace or your account. If your data can't leave your network, Drex for Search can run in your own cloud or data center.

### What file types can Drex for Search handle?

PDFs and scanned documents, spreadsheets, Parquet, JSON, audio and video. Spreadsheets and Parquet files are kept as tables, so an answer can point to the exact row or cell.

### Does Drex for Search work with my existing coding agent?

Yes. Claude Code, Codex, Cursor and OpenCode can call it as a tool through the CLI or the MCP server. On OfficeQA Pro, the ten agent setups we tested used 57% fewer input tokens with it, and eight of ten answered more questions correctly.

### Does Drex for Search use my content to train models?

No. Customer content never trains, tunes or evaluates shared models.

## Point Drex at your files.

Create a workspace. Upload a folder. Ask.

- [Try for free](https://console.nace.ai?utm_campaign=drex-search-launch&utm_content=context&utm_medium=website&utm_source=nace.ai)
- [Talk to sales](https://nace.ai/contact?product=context&source=context)

## For agents

- [Drex API guide](https://nace.ai/drex.md): the decision model: request shape, question types, benchmarks and deployment, as markdown
- [Decision endpoint](https://console.nace.ai/v1/systemone): POST with model "drex-latest", a state string and typed questions (choice, noul, score); https://console.nace.ai/v1/models lists checkpoints
- [Document endpoints](https://console.nace.ai/v1/documents/{parse|split|classify|extract|ground}): POST a source (a public URL, an uploaded workspace file or a finished parse job) and poll GET https://console.nace.ai/v1/documents/jobs/{id}; the same key and credit as decisions
- [Console](https://console.nace.ai): API keys, the playground, usage and billing; send `Authorization: Bearer $NACE_API_KEY` on every request
- [Console docs](https://console.nace.ai/docs): quickstart, question types, the document routes, errors, limits and pricing
- [Nace Document Intelligence](https://nace.ai/perception.md): the Perception series: parse, split, classify, extract and ground any file type with a location on every value
- [Drex for Search](https://nace.ai/drex/search.md): Drex for Search: decision-powered retrieval for agents, Drex finds the page, cited search through the CLI, SDKs, MCP and REST, and the public benchmark ranks
- [Use cases](https://nace.ai/use-cases.md): every Drex use case with its proof figures: browser use and search for developers, enterprise finance teams and professional firms
- [Developers](https://nace.ai/developers.md): The execution layer for agents: Perception, Decision and Search behind one key, the Drex Max frontier, install steps, a scripted agent session and the four deployment boundaries
- [Site index](https://nace.ai/llms.txt): every page on nace.ai; append `.md` to any page URL or send `Accept: text/markdown` for the markdown version
