# 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="eve" agent="deep-search" />

<AgentPreview
  agent="deep-search"
  framework="eve"
  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 https://agentcn.vercel.app/r/eve/deep-search.json
```

## Composition [#composition]

```text
agent/
├── agent.ts              # Agent definition (model + config)
├── instructions.md       # Self-evaluating research instructions
├── tools/
│   └── web_search.ts     # Web search via the Exa API
└── skills/
    └── research/
        └── SKILL.md      # Iterative research procedure
```

## Customization [#customization]

* **Swap the search provider.** Edit `agent/tools/web_search.ts` to call a
  different search API (Brave, Tavily, SerpAPI) — keep the input/output shape.
* **Bound the iterations.** Add a max-rounds guard in `instructions.md` so the
  agent stops after N search rounds.
* **Swap the model.** Edit `agent/agent.ts` — `anthropic/claude-sonnet-4-6` for
  deeper synthesis, `anthropic/claude-haiku-4-5` for speed.
* **Add scraping.** Add a `scrape_url` tool so the agent can read full pages, not
  just search snippets.
