Skip to main content
Research runs an agentic job that answers complex questions over your documents. It decomposes the task, searches and cites your sources, aggregates findings, and validates the output. Inputs are scoped to parse results, vector stores, and/or indexes, and results come back as structured fields—or a markdown report—each backed by citations and usage metrics.
Research is a newly released Dex capability. The API may change in future SDK versions.

Prerequisites

A research job needs at least one source to search. Before running a job, prepare one or more of:
  • Parse results — parsed documents in your project
  • A vector store — for semantic/hybrid chunk search (at most one per job)
  • An index — for locating relevant files in a corpus or files which are not ingested in the vector store (at most one per job)

Running a Research Job

Build a ResearchJobRequest describing the inputs and the task, start the job, then poll for the result.

Reading Results

The result’s data maps each output field to a value, confidence, and citations. Citations are a discriminated union—use citation.kind to tell block citations (from PDFs) from spreadsheet citations.

Structured vs. Report Output

Choose the output shape on the ResearchTask:
  • Structured — set output_schema to a JSON Schema. Results populate res.data with one entry per schema field.
  • Report — set report_schema to a markdown template. Access the rendered report with the res.report shortcut.

Advanced Configuration

For finer control, configure tools and per-stage behavior. Per-tool config — enable/disable tools and pass tool-specific options (e.g. top_k, filters, rerank config):
Per-stage overrides — override the prompt, model, temperature, or reasoning effort for any stage of the agentic pipeline (decomposition, subtasks, aggregation, output validation):
Additional flags on the request:
  • enable_subtable_citations — cite specific table cells/ranges rather than whole tables.

Listing Research Jobs


Appendix: Essential Imports

The advanced configuration types (ResearchToolConfigEntry, ResearchAdvanced, ResearchAdvancedStep, ResearchReasoningBlock, and the result types ResearchResult, BlockCitation, SpreadsheetCitation) are re-exported from dex_sdk.types.

Next Steps

  • Indexing: Build a hierarchical index to use as a research input
  • Vector Stores: Semantic and hybrid search for RAG-enhanced extraction
  • Extract: Extract structured data from a single parse result or vector store