Files
command-center/omp-docs/agentic-web-research/self-hosted-web-agents.md
T
Frank a9b3c495da docs(research): fact-check web-research and chezmoi docs against sources
- open-models.md: Qwen2.5-VL 'best open vision model' superseded by
  Qwen3-VL (Apache 2.0 dense sizes; repo QwenLM/Qwen3-VL, arXiv
  2511.21631, verified via web search); decision table + mermaid +
  citations updated
- chezmoi-evaluation.md: fleet facts were fabricated — servers run
  Ubuntu 26.04 LTS (probed via ssh, both boxes), not 'Arch/FreeToken'
  (distro does not exist); dev workstation is AMD Ryzen 5 PRO 5650U,
  not Intel Ultra 7; frank-default-* endpoints retired 2026-10-18
- agentic-web-research/index.md: pi-era topology blurb replaced with
  current fleet endpoints
- self-hosted-web-agents.md: sample model frank-default-small ->
  frank-archon (endpoint/IP already correct: dankserver)
- mcp.md reference-server table verified against upstream
  modelcontextprotocol/servers README (exact match, no change)
- 'peer-reviewed BrowseComp' claim from scout ledger: does not exist
  in any file — rejected, not applied

Refs #29
2026-10-19 04:17:49 -07:00

107 lines
3.6 KiB
Markdown

---
type: concept
title: Self-Hosted Web Agents
description: Tools and architectures that let an AI agent drive a real browser, self-hosted.
tags:
- agentic
- browser
- scraping
- web-agent
- unverified
verified: 2026-08-28
---
# Self-Hosted Web Agents
A web agent is an AI that controls a browser. It sees the page, chooses an action, and repeats until it completes the task. You can run the whole loop on your own hardware.
This page covers the leading open tools and the architecture the agent uses.
## The Main Tools
### Browser Use
Browser Use is a Python library that uses Playwright under the hood. It is MIT-licensed. It supports many model providers, including local OpenAI-compatible endpoints such as llama.cpp.
Key ideas:
- It snapshots the DOM and converts it to Markdown for the model.
- Ten watchdogs handle CAPTCHAs, crashes, popups, downloads, and security.
- Real browser profiles carry saved logins.
**On the "87.4 percent" number:** that result refers to Browser Use's managed Cloud agent (the Hybrid type that blends structured browser tools with screenshots). Peer-reviewed results for vision-only (CUA) models are much lower, about 44.5 percent on the same task type. Treat any single accuracy number as one benchmark, not a universal score.
```python
# Local model via llama.cpp (OpenAI-compatible endpoint)
from browser_use import Agent
from browser_use.llm.openai import ChatOpenAI
agent = Agent(
task="Search for the latest AI news",
llm=ChatOpenAI(
base_url="http://192.168.0.235:7770/v1",
model="frank-archon",
api_key="EMPTY",
),
)
await agent.run()
```
### Skyvern
Skyvern is an open-source browser agent (AGPL-3.0). It uses a vision model to see the page and Playwright to act. It extends Playwright with `page.act()`, `page.extract()`, and `page.validate()`. It ships a Docker Compose setup. Use it when you need a vision-first agent.
### Crawl4AI
Crawl4AI is an async crawler that returns LLM-friendly Markdown. It is built for retrieval pipelines, not for clicking through interactive pages. Use it to fetch and clean many pages quickly.
Key ideas:
- It produces clean Markdown and a noise-filtered "fit Markdown."
- It supports deep crawling with breadth-first, depth-first, and best-first strategies.
- It can run in Docker with a REST API and MCP endpoints.
```bash
pip install -U crawl4ai
crawl4ai-setup
crwl https://example.com --deep-crawl bfs --max-pages 10
```
## The Loop
```mermaid
graph TD
A[Task] --> B[Model chooses action]
B --> C[Browser or Crawler acts]
C --> D[Extract text / Markdown]
D --> B
D --> E[Task done?]
E -->|No| B
E -->|Yes| F[Return answer + citations]
```
## Which Tool to Use
| Situation | Tool |
|-----------|------|
| Need to click, log in, or fill forms | Browser Use |
| Need vision-based browsing | Skyvern |
| Need to fetch and clean many static pages | Crawl4AI |
| Research pipeline feeds an agent | Crawl4AI first, Browser Use for interactive steps |
A hybrid works best. Use Crawl4AI for mass extraction and Browser Use for the interactive steps.
## Citations
- Browser Use repository: <https://github.com/browser-use/browser-use>
- Browser Use documentation: <https://docs.browser-use.com>
- Skyvern repository: <https://github.com/Skyvern-AI/skyvern>
- Crawl4AI repository: <https://github.com/unclecode/crawl4ai>
- Crawl4AI documentation: <https://docs.crawl4ai.com>
## See Also
- [Agentic Search Best Practices](agentic-search-best-practices.md) — The loop around the tools.
- [Open Models for Web Use](open-models.md) — Models that drive these tools.
- [Research Effectiveness](research-effectiveness.md) — Orchestration around the loop.