-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprotoagent.plugin.yaml
More file actions
71 lines (66 loc) · 6.1 KB
/
Copy pathprotoagent.plugin.yaml
File metadata and controls
71 lines (66 loc) · 6.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
id: agent_browser
name: Agent Browser
version: 0.6.3
description: >-
Browser automation for protoAgent, backed by **agent-browser** (vercel-labs) — a
fast native-Rust CLI/daemon that drives Chrome over CDP with accessibility-tree
snapshots and compact `@eN` element refs. Wraps the CLI as tools (open, snapshot,
click, fill, type, screenshot, …), ships a discovery skill that defers to the
CLI's always-current workflow content, browser workflows, and a **Browser panel**
console view — a fully interactive, drivable viewport (live CDP screencast + mouse/
keyboard/scroll over a gated same-origin WebSocket), so you can click and type in the
page alongside the agent.
Requires the **`agent-browser`** binary on PATH (`npm i -g agent-browser &&
agent-browser install`). Ships DISABLED; enable with
`plugins: { enabled: [agent_browser] }`.
enabled: false
repository: https://github.com/protoLabsAI/agent-browser-plugin
min_protoagent_version: "0.27.0"
# Plugin config (read from `agent_browser:` in langgraph-config.yaml).
config_section: agent_browser
config:
binary: agent-browser # the agent-browser CLI on PATH (override for a pinned path)
timeout_s: 60 # per-command subprocess timeout
home_url: "" # homepage the panel opens to. When set, the panel auto-opens it if
# no browser page is open; the empty state also shows a Start button.
# Blank → the Start button opens about:blank (no auto-open).
stream_quality: 80 # interactive panel JPEG quality (1–100). Higher = crisper, more data.
# (The panel also renders at your dock's size × device-pixel-ratio.)
# Runtime / launch options — a curated set passed to `agent-browser open` so you can
# shape and lock down the browser the agent spins up. Blank/0/false = CLI default.
headed: false # show a real browser window instead of headless
profile: "" # path to a browser profile dir (isolation + persisted auth/cookies)
device: "" # device emulation, e.g. "iPhone 16 Pro"
allowed_domains: "" # comma-separated navigable-domain whitelist (e.g. "example.com,*.foo.com")
confirm_actions: "" # comma-separated action categories that require confirmation
max_output: 0 # cap page-text output chars (LLM-safety); 0 = CLI default
# Anti-detection — help pages that block automated/headless browsers (Google, Reddit,
# Cloudflare, …). No setting defeats detection entirely; headed + a logged-in `profile`
# is the most reliable combination. Applied at session launch (the first open).
stealth: false # drop the navigator.webdriver automation flag; when headless, also
# swap the "HeadlessChrome" User-Agent for a real desktop Chrome one
user_agent: "" # override the User-Agent (blank → CLI default; stealth may set one)
browser_args: "" # extra Chrome launch args, comma/newline separated
# (e.g. "--disable-blink-features=AutomationControlled")
# Editable in Settings ▸ Plugins (ADR 0019) — the operator knobs above as UI fields.
settings:
- { key: home_url, label: "Homepage URL", type: string, description: "The page the interactive panel opens to. When set, it auto-opens if no browser page is open, and the empty state shows a Start button. Blank = a Start button that opens about:blank." }
- { key: stealth, label: "Anti-detection (stealth)", type: bool, description: "Help pages that block automated/headless browsers (Google, Reddit, Cloudflare). Drops the navigator.webdriver flag and, when headless, uses a real desktop User-Agent. Most reliable paired with Headed + a logged-in Browser profile. No setting defeats detection entirely." }
- { key: headed, label: "Headed browser", type: bool, description: "Show a real browser window instead of running headless. Also far less bot-detectable than headless." }
- { key: user_agent, label: "User-Agent override", type: string, description: "Override the browser User-Agent. Blank = CLI default (stealth may set a realistic one when headless)." }
- { key: browser_args, label: "Extra Chrome args", type: string, description: "Extra Chrome launch args, comma/newline separated (e.g. --disable-blink-features=AutomationControlled)." }
- { key: allowed_domains, label: "Allowed domains", type: string, description: "Comma-separated navigable-domain allowlist (e.g. example.com,*.foo.com). Blank = unrestricted." }
- { key: confirm_actions, label: "Confirm actions", type: string, description: "Comma-separated action categories that require confirmation before the agent runs them." }
- { key: profile, label: "Browser profile dir", type: string, description: "Path to a browser profile directory — isolation + persisted auth/cookies across sessions. Reusing a logged-in Chrome profile is the most reliable way past login walls." }
- { key: device, label: "Device emulation", type: string, description: "Emulate a device, e.g. \"iPhone 16 Pro\". Blank = desktop." }
- { key: stream_quality, label: "Panel stream quality", type: number, description: "Interactive panel JPEG quality (1–100). Higher = crisper, more bandwidth. The panel also renders at your dock's size × device-pixel-ratio." }
- { key: max_output, label: "Max page-text output (chars)", type: number, description: "Cap characters of page text returned to the model (LLM-safety). 0 = the CLI default." }
- { key: timeout_s, label: "Command timeout (s)", type: number, description: "Per-command subprocess timeout for the browser tools." }
- { key: binary, label: "agent-browser binary", type: string, description: "The agent-browser CLI on PATH (override with a pinned absolute path if needed)." }
# Console view (ADR 0026) — an interactive, drivable browser viewport (CDP screencast + input).
views:
- { id: panel, label: "Browser", icon: Globe, path: /plugins/agent_browser/panel }
# Declarative only (surfaced for review).
capabilities:
network: ["*"] # the browser navigates arbitrary URLs
filesystem: scoped # screenshots / pdfs / state files the user requests