# Search engines

> Give agents fresh information from the web and exploit databases through DuckDuckGo, Sploitus, Tavily, SearXNG, Perplexity and other engines.

[Agents](https://pentagi.com/docs/glossary/#agent) search through one unified `web_search` [tool](https://pentagi.com/docs/glossary/#tool). They ask for a mode — `links` for sources with snippets, `answer` for a synthesized answer, `research` for deep multi-source analysis, or `exploit` for PoCs and offensive tooling — and the tool picks the best configured engine for it, retries transient failures and falls back to another engine automatically.

Enable any combination of engines in `.env`; DuckDuckGo is on unless `DUCKDUCKGO_ENABLED=false`:

| Engine               | Variables                                                           | Notes                                                           |
| -------------------- | ------------------------------------------------------------------- | --------------------------------------------------------------- |
| DuckDuckGo           | `DUCKDUCKGO_ENABLED=true`, `DUCKDUCKGO_REGION`                      | No key required; on by default                                  |
| Sploitus             | `SPLOITUS_ENABLED=true`                                             | Exploit and vulnerability search, no key                        |
| Google Custom Search | `GOOGLE_API_KEY`, `GOOGLE_CX_KEY`                                   | Closed to new customers; Google shuts it down on 1 January 2027 |
| Tavily               | `TAVILY_API_KEY`                                                    |                                                                 |
| Firecrawl            | `FIRECRAWL_API_KEY`, `FIRECRAWL_API_URL`                            |                                                                 |
| Traversaal           | `TRAVERSAAL_API_KEY`                                                |                                                                 |
| Perplexity           | `PERPLEXITY_API_KEY`, `PERPLEXITY_MODEL`, `PERPLEXITY_CONTEXT_SIZE` |                                                                 |
| SearXNG              | `SEARXNG_URL`, `SEARXNG_CATEGORIES`, `SEARXNG_LANGUAGE`             | Self-hosted meta search                                         |

```bash
DUCKDUCKGO_ENABLED=true
SPLOITUS_ENABLED=true
TAVILY_API_KEY=your_tavily_key
SEARXNG_URL=http://your-searxng-instance:8080
```

## [Internal fallback engine](https://pentagi.com/docs/configuration/search-engines/#internal-fallback-engine)

`WEB_SEARCH_INTERNAL_ENABLED=true` makes PentAGI open the result pages in its own isolated browser and summarize them with your model. For answers, research and exploits it is tried after Tavily, Firecrawl and Perplexity and before Traversaal. `WEB_SEARCH_INTERNAL_MAX_SITES` and `WEB_SEARCH_INTERNAL_MAX_SITE_BYTES` bound the work. It is off by default.

## [Browser](https://pentagi.com/docs/configuration/search-engines/#browser)

Independently of search, agents can open pages through the bundled `scraper` service — an isolated browser that returns page content and screenshots.