Agents that browse the web
Some agents work by actually driving a browser: loading a page, reading what rendered, following links, taking a screenshot or a PDF. That is how they cope with sites that build their content in JavaScript.
You will meet this through the browser agent, the browser capability, or the browsing mode of an enrichment job.
What it can reach
Section titled “What it can reach”Public websites, over HTTP and HTTPS. Nothing else.
The browser runs somewhere with no route to anything private — not our internal services, and not anything on your own network. Requests for private or reserved addresses are refused at the boundary, and the refusal is based on the address actually being connected to, not on an earlier check. A hostname that resolves to a public address when it is inspected and a private one when it is used is still refused.
This is worth knowing for two reasons:
- Internal URLs will not work. Pointing a browsing agent at something on your
own intranet, a private IP, or
localhostwill fail. There is no setting to change that. - It is a boundary, not a filter. It does not depend on the agent behaving, so a prompt that talks an agent into trying will still not get through.
When a page is refused
Section titled “When a page is refused”The agent is told plainly, and told not to retry:
Blocked by the browser egress boundary … Do not retry — this is policy, not a transient failure.
That wording is deliberate. Without it the failure looks like a timeout, and the agent burns its remaining steps retrying something that will never succeed. A refusal is fast — about a tenth of a second — so a blocked destination costs you almost nothing.
On plain HTTP you may instead see the page reported as returning status 403. Same cause.
Reading other failures
Section titled “Reading other failures”| What you see | What it usually is |
|---|---|
| Blocked by the browser egress boundary | The destination is private, reserved, or not allowed |
| Status 403 on a URL you expected to work | Same as above, over plain HTTP |
| A navigation timeout | The site is genuinely slow, or waiting on something that never arrives |
| An empty or partial page | The site rendered nothing useful, or needs a sign-in |
| The agent stops after several attempts | It has a step budget; a site that needs many interactions can exhaust it |
What it costs
Section titled “What it costs”Browser work is metered in browser seconds — a distinct unit from model tokens, because the time a page takes has nothing to do with how much the model read. See the billing units reference.
A page that is refused still costs the moment it took to refuse, which is negligible. A page that hangs until it times out costs the timeout.