浏览器自动化(CDP)¶
推荐验证路径¶
在尝试复杂多步流程前,先做三件事:
- 运行
loopforge doctor - 确认浏览器检查项正常
- 先跑一个简单的 navigate/read/screenshot 任务
当 web_fetch 不够用(JS 渲染页面、多步交互、表单填写、需要截图留证)时,使用 browser_* 工具更可靠。
更多可复制粘贴的配方见:浏览器案例。
默认后端:CDP(无需 Python)¶
LoopForge 默认会启动本机的 Chromium 系浏览器(Chrome / Chromium / Edge),并通过 Chrome DevTools Protocol(CDP) 进行自动化控制。
前置条件¶
- 安装任意 Chromium 系浏览器(Chrome/Chromium/Edge)。
- 如果 LoopForge 找不到可执行文件,可以设置
LOOPFORGE_BROWSER_CHROME_PATH指向浏览器可执行文件路径。
远程 CDP(可选)¶
如果你已经有一个带远程调试端口的浏览器实例(或你在 Docker 里启动了一个),可以让 LoopForge 直接连接:
默认情况下,LoopForge 只允许连接 loopback 的 CDP endpoint。若要连接非 loopback 的 CDP URL,你必须显式开启:
如果你想直接用 Docker 跑一个”带 GUI + noVNC 观察界面”的 Chromium 沙盒(CDP 暴露在 127.0.0.1:9222),见:百度天气。
Headless / 有界面¶
LoopForge 默认以 headless 模式启动浏览器。
如果你想看到浏览器窗口(本地调试 / 演示),在第一次 browser_navigate 时设置 headless=false:
你也可以设置 LOOPFORGE_BROWSER_HEADLESS=0,让未显式传入 headless 时默认使用有界面模式。
可选后端:Playwright bridge(legacy)¶
如果你更习惯 Playwright(或你的环境 CDP 不方便),可以切换后端:
然后安装 Playwright(Python):
如果你的 Python 可执行文件不是 python3,可以通过环境变量 LOOPFORGE_BROWSER_PYTHON 指定(例如 python)。
工具集¶
browser_navigate:打开 URL(默认带 SSRF 防护)browser_back:回退历史browser_scroll:滚动页面browser_click:按 CSS selector 点击(会做尽力的可见文本 fallback)browser_type:填写输入框browser_press_key:按键(例如用Enter提交表单)browser_wait:等待 selector(兼容工具)browser_wait_for:等待 selector/text 出现browser_read_page:返回{title,url,content}(content 会被截断)browser_run_js:执行 JS 表达式并返回结果browser_screenshot:把 PNG 写入 workspace 相对路径browser_close:关闭 session(可重复调用)
推荐循环¶
browser_navigate打开入口页面browser_read_page确认状态- 每次只做一个小动作:
browser_click或browser_type - 需要提交表单时,用
browser_press_key按Enter。 - 如果页面是异步更新,用
browser_wait_for(selector/text)等待新状态出现 - 再次
browser_read_page确认页面确实变化 - 直到完成,最后
browser_screenshot留证并browser_close
Selector 小技巧¶
尽量使用稳定属性,而不是容易变化的文案文本:
#id[name="q"][data-testid="submit"]button[type="submit"]
如果 CSS selector 失败,browser_click 会尝试 尽力的可见文本 fallback。尽量写得具体,避免“OK / 确定”这种歧义文本导致点错。
Prompt 模板(可直接复制)¶
示例运行:
安全说明¶
browser_navigate默认拒绝 loopback/private 目标;只有本地/私网测试才建议显式开启allow_private=true。browser_read_page与browser_screenshot也会做同样的 loopback/private 防护(除非你开启了allow_private)。- Browser 工具只允许
http(s)URL(file:/data:/chrome:等 scheme 会被拦截)。 browser_screenshot只允许写到 workspace 相对路径(不允许绝对路径、不允许..、不允许通过 symlink 逃逸)。
故障排查¶
- 报错提示找不到 Chrome/Chromium:安装浏览器或设置
LOOPFORGE_BROWSER_CHROME_PATH。 - 如果在 Docker 里提示 sandbox 相关问题:设置
LOOPFORGE_BROWSER_NO_SANDBOX=1(仅限可信 sandbox 环境)。 - 报错提示 Playwright 缺失:设置
LOOPFORGE_BROWSER_BACKEND=playwright并安装 Playwright。 - 报错提示找不到
python3(Playwright 后端):设置LOOPFORGE_BROWSER_PYTHON=python。 - 看不到浏览器窗口:默认是 headless;用
headless=false(或设置LOOPFORGE_BROWSER_HEADLESS=0)。 - 报错提示 session 未启动:先调用
browser_navigate。