# Web and Network Tools

Tools for web search, page fetching, HTTP requests and downloads.

| Tool | Concurrent | Description |
|---|---|---|
| `search_web` | ✓ | Live web lookup returning DuckDuckGo results and Google News headlines together as `{"web":[...],"news":[...]}`. `source` picks `all` / `web` / `news`; `time_range` applies a lookback window to both (news caps at 7 d); `edition` sets the news locale (`TW:zh-Hant`, `US:en`); `cdp=true` forces a browser fetch (auto-enabled on HTTP 202); a refresh flag skips the result cache. 90 s cap |
| `fetch_page` | ✓ | Fetch one web page as `markdown`, `html` or `json` (readability + 4xx/5xx skip cache via ToriiDB). Cookies from the persistent Chrome profile are sent by default so login-required sites work transparently; headless is attempted first and retried visibly on failure. `save=true` writes to a local file instead of returning the content, and a same-domain link option supports recursive document research. 90 s cap |
| `http_request` | ✓ | Raw HTTP request (GET/POST/PUT/DELETE/PATCH), returns status + headers + body. `content_type` selects `json` / `form` / `multipart`; multipart takes `{"fields":{...},"files":[{"name","path","content_type"}]}` with absolute paths read as binary. Timeout up to 300 s. Built-in SSRF guard (DNS-resolved against loopback / private / link-local); bypass specific hosts via `net_white_list`. An endpoint you will call again belongs in an `api_*` tool built with `edit_tool` |
| `download_file` | ✓ | Download a binary file to local disk (tar.gz, images, archives, installers). Absolute `path` used as-is, relative joined under `~/.config/agenvoy/download/`, parent dir auto-created. Timeout up to 600 s. For JSON/HTML use `http_request` or `fetch_page(save=true)` |
| `html_template` | ✓ | Added in v1.0.17. Gallery of worked HTML page examples served from `https://view.agenvoy.com`: `mode=list` returns every template's `name`, `category`, `title`, `desc`; `mode=read` returns one template's full HTML by `name`. Used while building an HTML deliverable after `reasoning_guide(topics=["html_render"])`, which then saves it with `write_result(format="html")`. Replaces the former `http_request` / `fetch_page` calls to the same gallery. Any other web page → `fetch_page`. 30 s cap |
