# Deep Search

Researches a question, evaluates its own findings, and iterates until the answer is complete and cited.

> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).



<DocsBaseSwitcher base="flue" agent="deep-search" />

<AgentPreview
  agent="deep-search"
  framework="flue"
  inputFields="[
  {
    name: &#x22;question&#x22;,
    label: &#x22;Research question&#x22;,
    placeholder:
      &#x22;What pricing models do the top 3 observability vendors use?&#x22;,
    type: &#x22;textarea&#x22;,
  },
]"
/>

## Summary [#summary]

The **Deep Search Agent** takes a research question, searches the web, and then
critiques its own findings — re-searching to close gaps until the question is
fully answered. It returns an answer grounded only in the sources it found, with
a citation for every claim. Reach for it whenever a single search isn't enough
and you need a verified, sourced answer.

## Install [#install]

```bash
npx shadcn@latest add @agentcn/flue/deep-search
```

## Composition [#composition]

```text
agents/
└── deep-search.ts        # Orchestrator + searcher/evaluator subagents
workflows/
└── deep-search.ts        # Bounded iteration returning a cited answer
tools/
└── search.ts             # Web search via the Exa API
skills/
└── research/
    └── SKILL.md          # Iterative research procedure
```

## Customization [#customization]

* **Swap the search provider.** Edit `tools/search.ts` to call a different
  search API — keep the parameters and return shape.
* **Tune the loop.** Adjust `maxRounds` in `workflows/deep-search.ts` to trade
  depth for cost.
* **Reshape the answer.** Edit the `Answer` valibot schema to add fields such as
  confidence or a source list.
* **Swap the model.** Change the `model` on the orchestrator or subagents.
