> ## Documentation Index
> Fetch the complete documentation index at: https://docs.poolside.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Web search and fetch

> Let Poolside agents search the web and read pages with the built-in `web_search` and `web_fetch` tools.

## Overview

Poolside agents include two built-in web tools:

* `web_search`: Searches the web and returns ranked results with short excerpts.
* `web_fetch`: Fetches a single page and saves its full content for the agent to explore.

Use them when the agent needs information that is not in your workspace or in the model's training data, such as release notes, changelogs, or current API documentation.

`web_fetch` works by default with no configuration. `web_search` activates after you configure a search provider with an API key.

## Configure a search provider

Without a provider, `web_fetch` retrieves pages with a plain HTTP fetch. Configuring a provider turns on `web_search` and gives `web_fetch` cleaner content extraction and excerpts focused on the agent's objective.

**Prerequisites**

You need an API key for one of the supported providers.

| Provider                        | `provider` value |
| ------------------------------- | ---------------- |
| [Parallel](https://parallel.ai) | `parallel`       |
| [Exa](https://exa.ai)           | `exa`            |

<Warning>
  Project settings files such as `.poolside/settings.yaml` are committed and shared with your team. Keep `api_key` in a personal file: `~/.config/poolside/settings.yaml` or `.poolside/settings.local.yaml`.
</Warning>

**Steps**

1. Add a `web_search` block to a personal [settings file](/settings-file-reference#web-search):

   ```yaml title="Web search example for ~/.config/poolside/settings.yaml" theme={null}
   web_search:
     provider: parallel
     api_key: <api-key>
     summarize_results: true
   ```

2. Start a new `pool` session. The agent can now call `web_search`.

The `web_search` block supports:

| Key                 | Type    | Description                                                                                                            |
| ------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------- |
| `provider`          | string  | Search provider. Supported values are `parallel` and `exa`.                                                            |
| `api_key`           | string  | Provider API key. Without it, `web_search` stays off.                                                                  |
| `base_url`          | string  | Optional override for the provider API endpoint.                                                                       |
| `summarize_results` | boolean | Add a summary of results focused on the agent's stated objective, generated by the session model. Defaults to `false`. |

To disable the built-in web tools, turn off one or both tools:

```yaml title="Disable web tools" theme={null}
tools:
  web_search:
    disabled: true
  web_fetch:
    disabled: true
```

For more information, see [Settings file reference](/settings-file-reference#tools).

## How the agent uses the tools

For a search, the agent states an objective and optional keyword queries. It can restrict or exclude domains and filter results by publish date. The top results appear inline with excerpts, and the agent saves the full result set to a temporary file so it can page through more results without repeating the search.

To read a specific page, the agent calls `web_fetch` with a URL and an objective. A short excerpt appears inline, and the agent saves the full page content to a temporary file that it explores with its file tools instead of fetching the page again.

For URLs the external provider cannot reach, such as `localhost`, private IP ranges, and single-label intranet hostnames, Poolside fetches the page directly from the agent's environment instead of sending it to the provider.

When `summarize_results` is `true`, tool results also include a summary focused on the stated objective. The model that runs your session generates the summary. If summarization fails, the tools return the raw excerpts.

## Related resources

* [Settings file reference](/settings-file-reference#web-search)
* [Tool permissions](/tool-permissions)
