## 概述
Browser 是 AI 对话中的工具,支持网页浏览、交互和内容提取。
## 模式
| **Lite** | 轻量级 HTTP 控制(默认,无需浏览器) |
| **CDP** | 通过 Chrome DevTools Protocol 实现完整浏览器自动化(需 `browser_cdp` feature) |
## 在 AI 对话中使用
```
打开 https://example.com 并总结内容
截取当前页面的截图
点击提交按钮
```
## Lite 模式
默认模式,使用 HTTP 请求获取网页内容:
| `status` | 检查浏览器状态 |
| `open` | 打开 URL,获取页面内容 |
| `snapshot` | 获取交互元素列表 |
| `content` | 提取正文文本 |
| `tabs` | 列出已打开的标签页 |
| `close` | 关闭标签页 |
**限制**:不支持 `click`、`type`、`press`、`evaluate`、`screenshot`
## CDP 模式
启用 `browser_cdp` feature 后支持完整浏览器自动化:
| `start` | 启动浏览器 |
| `stop` | 停止浏览器 |
| `open` | 打开新标签页 |
| `navigate` | 导航到 URL |
| `screenshot` | 截图(支持全页) |
| `snapshot` | 获取页面快照(含元素 selector) |
| `content` | 提取正文文本 |
| `click` | 点击元素 |
| `type` | 输入文本(支持中文) |
| `press` | 按键(Enter/Tab/Escape 等) |
| `evaluate` | 执行 JavaScript |
| `tabs` | 列出标签页 |
| `close` | 关闭标签页 |
### 典型工作流
```
1. open 打开页面
2. snapshot 获取可交互元素列表(返回 selector)
3. 使用返回的 selector(如 [data-jref="e3"])进行 click/type
4. content 获取结果
```
### headless 配置
在 `.jcli/config.yaml` 中配置:
```yaml
settings:
browser_headless: true # true=无窗口,false=显示窗口
```
或通过参数覆盖:`{ "action": "start", "headless": false }`
## 编译启用 CDP
```bash
cargo build --features browser_cdp
```