Appearance
Browser-Enabled Agents
Build AI agents that can browse the web — navigate pages, fill forms, click buttons, extract data, and take screenshots — using AWS Bedrock AgentCore Browser.
Overview
Browser-enabled agents combine the reasoning power of LLMs with a managed headless browser. The browser runs in AWS's secure, serverless infrastructure — no browser binaries to install, no Playwright servers to manage.
Use cases:
- Web scraping and data extraction
- Form submission and automation
- Price monitoring and comparison
- Research and information gathering
- Testing and QA automation
Quick Start
Create an agent with browser capability using the Strands SDK:
python
from strands import Agent
from strands.models.bedrock import BedrockModel
from strands_tools.browser import AgentCoreBrowser
def create_agent():
model = BedrockModel(
model_id="us.anthropic.claude-sonnet-4-20250514-v1:0",
region_name="us-east-1"
)
browser_tool = AgentCoreBrowser(region="us-east-1")
agent = Agent(
model=model,
tools=[browser_tool.browser],
system_prompt="""You are a helpful assistant with web browsing capability.
You can navigate to websites, interact with pages, fill forms,
click buttons, and extract information from web pages."""
)
return agent, []How It Works
- Agent receives a prompt that requires web interaction
- LLM decides to use the browser tool and generates navigation instructions
- AgentCore Browser starts a managed headless browser session in AWS
- Agent interacts with the page — navigating, clicking, typing, extracting data
- Session ends automatically when the agent completes its task
- Results returned to the user as part of the agent's response
Browser Tool Capabilities
The AgentCoreBrowser tool provides:
| Action | Description |
|---|---|
| Navigate | Go to any URL |
| Click | Click elements by selector or text |
| Type | Enter text into input fields |
| Screenshot | Capture the current page state |
| Extract text | Get text content from elements |
| Wait | Wait for elements to appear |
| Scroll | Scroll the page |
| Execute JS | Run JavaScript on the page |
Pricing
Browser sessions are billed based on duration at 3× the AWS cost:
| Component | Rate |
|---|---|
| Per-minute rate | ~5 credits/minute (~$0.005/min) |
| Minimum session | 2 credits |
| Pricing model | 3× AWS cost (vCPU-hours + GB-hours) |
Browser costs are added on top of the standard agent chat credits (LLM tokens + compute).
Cost Examples
| Scenario | Duration | Approximate Cost |
|---|---|---|
| Quick page check | 15 seconds | 2 credits (minimum) |
| Medium scrape (scroll + extract) | 1 minute | 5 credits |
| Form submit + wait | 2 minutes | 9 credits |
| Multi-step research flow | 10 minutes | 37 credits |
| Long research session | 15 minutes | 66 credits |
Budget Planning
| Tier | Monthly Credits | Approximate Browser Sessions |
|---|---|---|
| Free (100 credits) | 100 | ~15–30 quick checks |
| Starter (30K credits) | 30,000 | ~800 typical sessions |
| Professional (600K credits) | 600,000 | ~15,000 sessions |
Session Lifecycle
- Per-turn: Each agent invocation gets a fresh browser session
- Auto-cleanup: Sessions are automatically stopped when the agent completes
- Timeout: Sessions have a maximum duration (matches Lambda timeout)
- Isolation: Each session runs in its own sandboxed environment
Metering & Billing
Browser usage is tracked via the BrowserMeteringAccumulator and appears in the __METRICS__ stream output:
json
{
"browserSessions": 1,
"browserDurationMs": 45000
}Billing details are recorded in the RequestTable with a browserUsage sub-object:
json
{
"browserUsage": {
"sessionCount": 1,
"totalDurationMs": 45000,
"sessionIds": ["01KNZ..."],
"estimatedCostUsd": 0.0091
}
}Preset Agent
A ready-to-use Browser Assistant agent is available on the platform. Find it in the Agents directory — no code required, just start chatting.
Security
- Sandboxed execution: Browser sessions run in AWS-managed infrastructure, isolated from your Lambda
- No credential leakage: User API keys and tokens are never passed to the browser
- Session isolation: Each browser session is independent with no shared state
- Automatic cleanup: Sessions are force-stopped in the
finallyblock to prevent cost leaks
Limitations
- No session persistence: Browser state is not preserved between agent turns (v1)
- No file downloads: Downloaded files are not automatically saved to Knowledge storage (planned for v2)
- Single session per turn: Each agent invocation uses one browser session
- Lambda timeout: Browser sessions are bounded by the agent Lambda's 15-minute timeout