浏览器自动化
⚠️ 注意:浏览器工具是扩展工具(非内核工具),默认关闭。 需要显式启用
browserfeature 才能使用。
启用方式
# cargo add
cargo add phi-agent --features browser
# 或配置 Cargo.toml
[dependencies]
phi-agent = { version = "0.9", features = ["browser"] }
# 命令行编译
cargo run --features browser
phi-agent 提供可选的浏览器自动化能力,基于 Chrome DevTools Protocol (CDP)。21 个工具覆盖导航、交互、内容提取和标签页管理 — 全部由 browser Cargo feature 控制。
快速开始
# 编译并启用浏览器功能
cargo run --features browser -- --enable-browser "上网查今天天气"
# Headed 模式(可见浏览器窗口,便于调试)
cargo run --features browser -- --enable-browser --headed "浏览 example.com"
# 连接已有的 Chrome 实例
# 首先启动 Chrome 并开启远程调试:
# /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
cargo run --features browser -- --connect-ws ws://localhost:9222 "在当前页面查找..."
工作原理
--enable-browser启动无头 Chrome 实例(或通过--connect-ws连接已有实例)browser_navigate打开网页并返回 ARIA 无障碍快照,可交互元素带有数字索引- Agent 通过索引点击元素(如
browser_click index=5),无需编写脆弱的 CSS 选择器 browser_screenshot截取页面截图;browser_get_markdown提取可读内容
工具分类
| 类别 | 工具 |
|---|---|
| 导航 | browser_navigate, browser_go_back, browser_go_forward, browser_wait |
| 交互 | browser_click, browser_hover, browser_input_fill, browser_select, browser_press_key, browser_scroll |
| 查看 | browser_snapshot, browser_screenshot, browser_get_markdown, browser_read_links, browser_evaluate |
| 标签页管理 | browser_new_tab, browser_tab_list, browser_switch_tab, browser_close_tab |
| 控制 | browser_close, browser_extract_content |
环境要求
- 需安装 Chrome 或 Chromium
- 编译需带
cargo run --features browser(browserfeature 控制headless_chrome等重量级依赖)
Feature Gate
浏览器工具按需引入。不启用 browser feature 时,不会编译任何浏览器相关代码: