Deep research

Deep research is not a separate mode of the chat. It is an AI tool: the assistant calls it like any other tool, and what comes back is a written, sourced report it answers from. A single call plans the question into steps, searches and reads across them over many model calls, and takes minutes rather than seconds.

Every workspace is seeded with one researcher, Workspace Deep Research, which researches the workspace itself — searching with search and reading what it finds with consult. To research something else, write your own: see Writing a custom deep researcher.

What a run does

flowchart TD Q["question + title<br/>(from the assistant)"] --> Plan["Plan<br/>steps, each with directions"] Plan --> Dir["For each direction"] Dir --> Queries["Generate queries"] Queries --> Gather["Gather — the only phase<br/>that may call tools"] Gather --> Findings["Distil sourced findings"] Findings --> Next["Decide what else<br/>this step should look at"] Next --> Dir Dir --> Report["Write the report"]

The loop belongs to the workspace; a researcher only says how each phase should be prompted, which tools the gather phase may call, and how much a run may spend. Only the gather phase has tools — the provider drives that tool loop itself, so what comes back is the whole exchange, which is what the findings phase reads.

A step grows while it still has room: the "what next" phase may add up to 2 directions per round, and a step tops out at 8 directions, so one step cannot consume a whole run's budget and leave the rest of the plan unresearched.

Each phase is an editable prompt

The six phases are ordinary prompt templates, listed under Settings → AI → Prompt Templates:

Template Phase Placeholders
Deep Research · Plan Turns the question into steps and starting directions ${QUESTION}, ${CONTEXT}
Deep Research · Queries Turns one direction into search queries ${QUESTION}, ${STEP}, ${GOAL}, ${FINDINGS}, ${COUNT}
Deep Research · Search Drives the gather phase — the one that calls tools ${QUESTION}, ${GOAL}, ${QUERIES}
Deep Research · Findings Distils what was gathered into findings with sources ${QUESTION}, ${GOAL}, ${RESULTS}
Deep Research · Next Directions Decides what is still worth exploring in this step ${QUESTION}, ${STEP}, ${FINDINGS}, ${EXPLORED}, ${COUNT}
Deep Research · Report Writes the markdown report ${QUESTION}, ${CONTEXT}, ${PLAN}, ${FINDINGS}

They are seeded create-if-missing, so edits survive restarts and upgrades. Editing one changes every researcher that points at it; a researcher that wants different behaviour for one phase points at a copy of its own.

The templates also get the substitutions every prompt template gets (${TODAY}, ${LANGUAGE}, …).

What the user sees

The whole run is drawn as one plan card inline in the reply — the steps, their directions, and which one is being worked on right now, updating as the run progresses. Its heading is a short title the calling model supplies alongside the question ("File type distribution", "2024 pricing changes"), and its footer carries the number of steps completed and the number of tool calls the run has made so far.

The searches the run makes are deliberately not also listed as tool chips over the plan they are already steps of. The exception is a call that failed: the card is live-only, so a failure keeps its chip for the user to open.

While a research is in flight the conversation takes no further messages — posting or queueing one is refused — because the run is the turn. Cancelling the chat cancels the research: a queued run is dropped before it starts, an executing one stops at its next checkpoint and gives its slot back.

Nothing is persisted

A run has no graph schema. It lives in memory for as long as the tool call does, is reported to the chat as progress, and is gone when the turn ends. What outlives it is the report, which is already part of the reply.

The shared queue

A run costs many model calls, so runs are admitted by one shared, workspace-wide queue rather than started on demand. Once the queue itself is full, further calls are refused with an explanation the assistant can relay ("try again in a few minutes") rather than queued indefinitely.

Settings → AI → Deep Research lists the workspace's researchers, what is running right now, and the limits:

Limit Default Ceiling Meaning
Concurrent runs 2 32 Runs executing at once, workspace-wide
Queued runs 16 512 Runs allowed to wait for a slot before calls are refused
Concurrent runs per user 1 32 Runs one user may have executing at once
Max iterations 12 200 Directions a run may explore in total
Max duration 600 s 7200 s Wall clock for a whole run

The last two are ceilings, not settings for a run: a researcher asks for its own budget and the workspace caps it, so a tool an admin wrote can never spend more of the shared queue than the workspace allows. A run that reaches either limit stops researching and writes its report from what it has.

An admin can also stop a run in a conversation that is not theirs, from the same page.

Access

The gather phase calls the researcher's tools as the user who asked. Every tool is checked against that user's access before the run starts, and a run whose tools are all inaccessible to them fails with an explanation rather than researching with fewer tools. A researcher is configuration, not an escalation path: it can never read what its caller could not.

© 2026 Curiosity. All rights reserved.