Skip to main content
First time here? Complete the Setup guide first to install GAIA and its dependencies.
The Browser Agent is a focused web-research agent for users who want GAIA’s browser tools without the full Chat Agent tool surface. It can search the web, fetch readable page text, and download files through the same path validation and web-client limits used by the broader agent stack. Who it’s for: anyone doing quick, repeatable web research from the CLI — gathering links on a topic, pulling the readable text out of a page, or grabbing a file — without loading RAG, scratchpad, or file-editing tools.

Prerequisites

  • GAIA installed (see Setup).
  • A local model available — run gaia init if you haven’t set one up. By default the agent uses the local Lemonade backend.
  • Network access for web search and page fetches.

Quick Start

Run a single research task with -q:
Use interactive mode when you want to refine a web-research task over multiple turns:

Tools

gaia browse --list-tools prints the exact tools available in your installed version. The focused Browser Agent registers three: A typical run chains them: search_web to find candidate sources, fetch_page to read the promising ones, and download_file only when the user needs a local copy. Binary URLs (PDFs, archives, images) that fetch_page hits are reported as binary with a suggestion to use download_file instead.

Download path validation

download_file writes are guarded by GAIA’s PathValidator:
  • Allowlist — by default the agent may write to ~/Downloads. Pass --allowed-paths to permit additional directories. In an interactive terminal an out-of-allowlist path prompts you for confirmation; in the Agent UI / API server it is auto-denied.
  • Blocklist — sensitive directories (e.g. /etc, ~/.ssh) and sensitive filenames (e.g. .env, credentials.json) are refused even if the allowlist would otherwise permit them; a file that resolves to a blocked name after download is deleted.
The Browser Agent does not register scratchpad or file-editing tools. Use gaia analyze for structured data work, or gaia chat when you need the broader mixed tool set.

Flag Reference

All flags are shown by gaia browse -h.

Example: a multi-step research run

A representative run searches, reads a page, and reports back with citations:
Add --stats to see timing and token counts, or --trace to write a full JSON execution trace for debugging.

Model and Backend Options

By default, gaia browse uses the local Lemonade backend with the agent’s auto-selected default model. Override the model or switch backends with the common agent flags:
Choosing a model: multi-step web research (search → read → synthesize) rewards stronger tool-calling, so the default larger model is a good starting point. Drop to a ~4B model with --model for simple single-fetch tasks on lighter hardware, or use --use-claude when you want the highest-quality synthesis and don’t need everything to stay local. In the Agent UI the browser appears as a single web card with a model-size selector — pick Lite (~4B) for shorter browser tasks on lighter hardware, or Full for the default model. (The old web-lite registry ID still resolves to web on the lite tier for existing sessions.)

When to use browse vs. chat vs. analyze

Keeping the tool surface small matters for smaller local models: fewer tools means a shorter system prompt and more accurate tool-calling, which is why the focused Browser Agent exists alongside the full chat agent.

Troubleshooting

search_web uses DuckDuckGo and can fail on rate limits or transient network issues. Retry, refine your query, or skip search entirely by giving the agent a direct URL to fetch_page.
fetch_page does not run JavaScript, so JS-heavy or login-gated pages may return little content. Try a static/print version of the page, or raise the character cap via the tool’s max_length (up to 20,000). Very long pages are truncated with a ... (truncated) marker.
Downloads outside ~/Downloads require --allowed-paths, and sensitive directories/filenames are always blocked. In the Agent UI / API server, out-of-allowlist paths are auto-denied (no interactive prompt). Pass an explicit --allowed-paths target and retry.
Ensure a model is set up (gaia init) and the server is running, or point at a remote one with --base-url. Use --no-lemonade-check only for CI/testing without a backend.

Next Steps

Analyst Agent

Load structured rows into scratchpad tables and query them with SQL.

Document Q&A

The full chat agent with RAG, memory, and the broader tool set.

CLI Reference

Every gaia command and flag.

All Guides

Browse every GAIA agent.