Web and Network Tools
Last updated
Tools for web search, page fetching, public API lookup, 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. Since v1.3.1, with a decision model set, each result title is judged against the current request and titles judged unrelated at confidence 0.7 or higher are dropped; the cache keeps the unfiltered list, so a cached answer is filtered again. When every result is unrelated the tool returns a note to refine the query instead. Without a decision model, or when the check fails, all results come back. 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, and headless: false opens a visible window right away when a display exists (before v1.1.4 it forced headless-only instead). scroll (added in v1.3.6; 0-20, default 3, values above 20 clamped) sets how many scroll passes load lazy content, stopping early once the page stops changing — 10-20 for feeds, timelines and long comment threads, 0 for the top of the page only. keep_links keeps same-domain links for recursive document research, and force skips the 30-minute cache and retries a URL marked as failed. The save and save_to parameters were Removed in v1.3.6: saving a page to disk is download_file(render=true). Since v1.3.1 the tool tells the agent to fetch a site's /llms.txt before its first page and, when that file lists the wanted page, to fetch the listed .md URL instead. With a decision model set, markdown output not fetched with keep_links is split into blocks and page chrome (ads, navigation, share or subscribe prompts, cookie notices, footers, related-link lists) is removed before the result is cached; then a page judged unrelated to the current request is withheld with a note to use a different source, a check that also runs on a cached copy. A failed check keeps the content. 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. A GET runs without confirmation; other methods go through the confirm gate. Built-in SSRF guard (DNS-resolved against loopback / private / link-local); bypass specific hosts via net_white_list. Since v1.3.2 it is the answer step for a public API found with public_api_list — no tool is built; a user-supplied API that needs a key belongs in a script_* tool whose script reads the key with get_key(), so the key never lands in the conversation. The former advice to save a repeated endpoint as an api_* tool was Removed in v1.3.2 together with API tools |
public_api_list | ✓ | A built-in since v1.3.2 (formerly the API tool api_public_api_list). Public API directory: with no category it returns the category names; with category (case-insensitive, e.g. Weather) it returns each API in that category with its name, description, HTTPS flag and docs URL. Since v1.3.8 the agent passes the category directly when the request clearly fits one, an unknown category returns [Not found] with the full category list, and the tool-call line reads API(<category>). The directory lists only keyless APIs. Used when no existing tool covers a live-data request: pick an API → fetch_page its docs → http_request; no fitting API → reasoning_guide(topics=["tool_generate"]). 30 s cap |
download_file | ✓ | Download a URL to local disk: a binary file as-is (tar.gz, images, archives, installers), or, since v1.3.6, a web page rendered in the browser with the user's Chrome login and saved as markdown, html or json. url and output_file are required; an absolute output_file is used as-is, a relative one is joined under the output directory (output_dir, else ~/Downloads, else ~/.config/agenvoy/download/ — not the working directory), parent directories are created and an existing file is overwritten. render (added in v1.3.6, default false) picks the browser path; type (added in v1.3.6: markdown default, html, json) applies only with render=true. timeout (default 120 s, capped at 600 s) applies only to the plain download; a rendered page uses the browser fetch's own limit. Reading a page without saving → fetch_page; JSON or an API response → http_request |
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 |
run_websocket (added in v1.3.0) was Removed in v1.3.2, with no replacement tool; a one-off request goes to http_request or fetch_page.