---
title: "Introducing Drex for Search: supercharge your agentic search"
description: "Drex for Search tells your agent where the answer is before it starts reading. Across 6 professional-work benchmarks, agents take 62% fewer steps, use 56% fewer tokens, get 6% more answers right and finish 2.3× faster."
canonical: "https://nace.ai/blog/introducing-drex-for-search"
updated: 2026-10-26
---

# Introducing Drex for Search: supercharge your agentic search

> Drex for Search tells your agent where the answer is before it starts reading. Across 6 professional-work benchmarks, agents take 62% fewer steps, use 56% fewer tokens, get 6% more answers right and finish 2.3× faster.

Blog · Oct 26, 2026 · Nace.AI

**Drex for Search, the model that finds the page.** Generally available. First on MADQA with 94.7% accuracy, and coding agents use 56% fewer tokens with it.

- [Explore](https://nace.ai/drex/search)
- [Get started](https://console.nace.ai?utm_campaign=drex-search-launch&utm_content=announcement&utm_medium=website&utm_source=nace.ai)

*OfficeQA Pro: accuracy against agent turns per question. Each line runs from an agent's default run (grey) to the same agent with Drex for Search (green). Up and to the left is better. All ten agent and model pairs are in the table below.*

When an AI agent needs an answer from your files, it searches. It runs a search, opens a file, reads a few pages, searches again, opens another file. On a real folder of reports, ledgers and contracts, that loop can take twenty or thirty steps, and every page the agent reads is tokens you pay for.

Today we are releasing **Drex for Search**. It is a search tool for agents, powered by Drex, our decision model. Before the agent reads anything, Drex decides where the answer can be: which folder, which file, which page, and inside a spreadsheet, which table and column. The agent reads only those few places and answers with the file and page the answer came from.

Across 6 professional-work benchmarks and 529 questions, coding agents with Drex for Search:

- take **62% fewer steps** to find the answer,
- use **56% fewer input tokens**,
- get **6% more answers right** (63.1% to 67.1%, +4.0 points),
- and finish **2.3× faster** (median 80.8 s to 35.5 s per question).

It works with the agent you already use. Claude Code, Codex, Cursor, OpenCode and any agent that can run a command or call an MCP tool can use it.

## Why agents search badly

Agents search the way people did before search engines: look everywhere and read a lot.

Keyword search, like grep or BM25, finds the word but not the meaning. Semantic search and RAG find text that sounds similar, but they don't know which document is the right one, and they cut tables into pieces. So the agent keeps going: one more search, one more file, one more page. Each round costs time and tokens, and each extra page is one more chance to get distracted by the wrong number.

## How Drex for Search works

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

**Classify.** Drex reads the question and decides what kind it is, before any search runs: a quick lookup, or a question that needs an agent to read documents and query tables.

**Squeeze.** Drex walks your workspace level by level: folder, file, section, page, and inside a spreadsheet, table and column. At each level it keeps only what can hold the answer. The number of levels 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 it came from.

Take the question *"Which Q3 journal entries over \$50k lack a second approver?"* Drex marks it as a table question, goes to the ledger rather than the contracts and decks next to it, and narrows the search to the rows and the approver column that matter. The agent never has to read the rest.

### Beyond RAG

Every generation of search narrowed where the machine looks. Exact match found the string. Keyword search found the term. BM25 ranked the likely passage. Embeddings, the basis of RAG, found text with a similar meaning.

Drex goes one step further: it decides where the answer can be before the agent reads a page. It doesn't throw BM25 or RAG away. It tells them where to look, so the LLM reads less and misses less.

## Results

### Six professional-work benchmarks

We tested Drex for Search on six sets of real professional work, 529 questions in total:

1. OfficeQA, by Databricks
2. Annual and quarterly reports
3. Audit working documents
4. Ledgers and trial balances
5. Invoice and billing files
6. Accounts receivable and payable files

We compared coding agents as shipped with the same agents using Drex for Search as their search tool. Across all 529 questions, accuracy went from 63.1% to 67.1%, the agents took 62% fewer steps and used 56% fewer input tokens.

Fewer steps also means less waiting. Here is the median time per question:

| Agent        | As shipped | With Drex for Search | Change     |
| ------------ | ---------- | -------------------- | ---------- |
| pi           | 92.9 s     | 37.7 s               | −59.5%     |
| Hermes Agent | 82.2 s     | 48.9 s               | −40.5%     |
| Codex        | 67.4 s     | 19.9 s               | −70.5%     |
| **Average**  | **80.8 s** | **35.5 s**           | **−56.8%** |

### OfficeQA Pro, agent by agent

[OfficeQA Pro](https://github.com/databricks/officeqa) is a benchmark from Databricks: 133 questions over 697 scanned PDFs. We ran ten combinations of coding agent and model. Each one answered the questions as shipped, over the benchmark's own parsed text, and again with the original PDFs in a Drex for Search workspace that the agent could reach only through the Nace CLI. Everything else stayed the same: agent, model, effort, questions and sandbox.

Every one of the ten took fewer turns and used fewer input tokens. Eight of ten answered more questions correctly.

- **−57%** input tokens per question
- **−53%** agent turns per question
- **+2.6 points** average accuracy, 59.3% to 61.9%

| Agent · model               | Accuracy, % | Turns       | Input tokens |
| --------------------------- | ----------- | ----------- | ------------ |
| Gemini CLI · Gemini 3.1 Pro | 54.9 → 61.7 | 22.9 → 10.4 | 951k → 417k  |
| Hermes · Qwen3.8-27B        | 56.4 → 60.2 | 20.1 → 6.5  | 1.20M → 364k |
| pi · Opus 5.5               | 65.4 → 68.4 | 7.7 → 3.7   | 191k → 72k   |
| Codex · GPT-6 sol           | 66.2 → 70.7 | 14.3 → 8.6  | 710k → 377k  |
| Hermes · Opus 5.5           | 64.3 → 68.4 | 8.5 → 3.7   | 217k → 110k  |
| OpenCode · Qwen3.8-27B      | 51.1 → 53.4 | 23.7 → 10.0 | 1.82M → 706k |
| pi · Qwen3.8-27B            | 43.6 → 45.9 | 24.3 → 11.1 | 1.29M → 506k |
| Claude Code · Opus 5.5      | 66.5 → 69.9 | 18.5 → 9.1  | 906k → 475k  |
| Claude Code · Sonnet 5.5    | 69.2 → 66.9 | 29.8 → 13.3 | 2.36M → 939k |
| Codex · GPT-6 luna          | 54.9 → 53.4 | 16.8 → 11.3 | 932k → 580k  |

Each cell reads as shipped → with Drex for Search, per question. Hermes is Hermes Agent. Claude Code and Codex ran at max effort, the others at medium. As-shipped results are the average of two runs on October 20–22, 2026, and Drex for Search results are one run on October 24–25, so read accuracy as ±2 points. Input tokens are the agent model's own, cache reads included; Drex's own decisions are not counted.

### Public leaderboards

We also entered four public leaderboards for search over documents. Ranks are as published on October 20, 2026, including the ones we do not lead.

| Leaderboard                                                                                       | Rank | Score    | Detail                        |
| ------------------------------------------------------------------------------------------------- | ---- | -------- | ----------------------------- |
| [MADQA](https://huggingface.co/spaces/Snowflake/MADQA-Leaderboard)                                | #1   | 94.7%    | Ahead of all 49 systems       |
| [VisDocAgentBench](https://hulx2002.github.io/VisDocAgentBench/)                                  | #1   | 77.5 R@1 | +10 over Claude Opus 5        |
| [BrowseComp-Plus](https://huggingface.co/spaces/Tevatron/BrowseComp-Plus)                         | #2   | 92.05%   | 16.6× fewer calls than #1     |
| [EnterpriseRAG-Bench](https://huggingface.co/spaces/onyx-dot-app/EnterpriseRAG-Bench-Leaderboard) | #3   | 88.22    | +27.2 over OpenAI File Search |

## Getting started

Create a workspace, upload a folder, and ask. Drex for Search works through a CLI, Python and TypeScript SDKs, an MCP server and a REST API, all with one Console key.

```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
```

To hand it to your coding agent, install [the MCP server](https://pypi.org/project/nace-mcp/), or let the agent call the CLI itself. That is how the agents in the OfficeQA Pro results reached their files.

Drex for Search reads PDFs and scans, spreadsheets and Parquet, Office files, JSON, audio and video. Spreadsheets stay tables, so an answer can point to the exact row and cell, and a recording can point to the minute.

Your files stay yours. Each workspace has its own index, built only from its own files, and you upload only what you want searched. Your content never trains, tunes or evaluates shared models. If your data can't leave your network, Drex for Search can run in your own cloud or data center.

**Drex for Search is available today in the Nace Console.**

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

## About the product

**Drex for Search is generally available.** Decision-powered retrieval that finds the page holding the answer. Across 6 professional-work benchmarks, coding agents get 6% more answers right with 62% fewer steps and 56% fewer tokens. CLI, SDKs, MCP and REST, all on one Console key.

- [Get started](https://console.nace.ai?utm_campaign=drex-search-launch&utm_content=announcement&utm_medium=website&utm_source=nace.ai)
- [Explore](https://nace.ai/drex/search)
- [Talk to sales](https://nace.ai/contact?product=context&source=blog)

## 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
