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 aResearchJobRequest describing the inputs and the task, start the job, then poll for the result.
Reading Results
The result’sdata 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 theResearchTask:
- Structured — set
output_schemato a JSON Schema. Results populateres.datawith one entry per schema field. - Report — set
report_schemato a markdown template. Access the rendered report with theres.reportshortcut.
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):
enable_subtable_citations— cite specific table cells/ranges rather than whole tables.
Listing Research Jobs
Appendix: Essential Imports
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

