<!-- https://zerolog.ch/docs/deepresearch · Docs / Research and security -->
# Deep research

Background job · minutes, not seconds

A longer, structured version of [research mode](https://zerolog.ch/docs/research) for questions where you want a report rather than an answer.

## How a run goes

1. \[1\]

   ### Plan

   A strong model turns your question into the pieces the run works from.
   - Sub-questions.
   - A set of facets to investigate.
   - The criteria that would mean the question has actually been answered.
2. \[2\]

   ### Gather, in parallel

   One agent per facet

   Facet

   Facet

   Facet

   and so on

   Each agent finds sources, fetches them, and pulls out specific claims with the quote each one rests on.
3. \[3\]

   ### Decide whether to go again

   If the agents report open gaps, the planner proposes one to three more facets and the run gathers again. It stops when one of these is true:
   - No gaps are left open
   - It has run for 90 minutes (the default time limit)
   - It has done four rounds
4. \[4\]

   ### Write the report and check the citations resolve

   The report is written from the numbered sources. Every `[n]` in it must point at a source that was actually fetched, and every key finding must carry at least one.
   - \[1\] a source the run fetched **holds**
   - \[2\] a source the run fetched **holds**
   - \[3\] nothing that was fetched **fails**
   - \[ \] a key finding carrying no citation at all **fails**

   Either failure sends the report back. It is regenerated once; if a problem remains, the report ends with a warning line saying how many citation issues could not be resolved.

The dashed return is the round that goes again: it starts back at gathering, with the extra facets.

## What comes back

The report

Citations you can follow.

Alongside it

A record of what was dropped along the way.

It appears under [Jobs](https://zerolog.ch/docs/jobs) like other long-running work, and survives the browser being closed.

## What it costs

**Several models** *×* **many fetches** *×* **multiple rounds**

This is one of the more expensive things you can run. You cannot set a spend cap for a run: it is billed from your credit like any model use and stops at zero credit, after four rounds or after the time limit. Check your balance before an open-ended question. Deep research needs Pro, Max or Ultra.

## Not the same guarantee as research mode

### [Research mode](https://zerolog.ch/docs/research)

- **Checks**: That a quote appears verbatim in the page it cites.
- **Strength**: The stronger check.
- **Reach for it when**: A single claim has to be bulletproof.

### Deep research this page

- **Checks**: That every citation resolves to a source it really fetched, and that nothing is left uncited.
- **Strength**: A weaker guarantee, on far more material.
- **Reach for it when**: You need breadth and will read the sources yourself.

## How a deep research run goes

Mermaid source of the diagram on this page:

```mermaid
%% Deep research: one run. Facts from server/deepresearch.js, research-job.js, plan-gates.js.
flowchart TB
  q["Your question<br/>(Pro, Max or Ultra)"]
  p["1. Plan<br/>sub-questions, facets,<br/>success criteria"]
  g["2. Gather, one agent per facet<br/>fetch up to 6 pages each,<br/>extract claims with quotes"]
  gap{"3. Gaps left?<br/>under 4 rounds,<br/>under 90 minutes"}
  s["4. Write the report<br/>from numbered sources"]
  v{"Every [n] resolves,<br/>every finding cited?"}
  fix["Regenerate once"]
  out["Cited report in your chat<br/>and under Jobs<br/>(warning line if issues remain)"]:::hot

  q --> p --> g --> gap
  gap -->|yes, plan more facets| g
  gap -->|no| s
  s --> v
  v -->|yes| out
  v -->|no| fix --> out

  classDef hot stroke:#8f7ac9
```
