浏览器与桌面自动化
wesclaw 支持 AI 控制浏览器和桌面操作,扩展 AI 的能力范围。
浏览器自动化
Playwright 模式
AI 通过 Playwright 操作用户浏览器:
用户:"帮我登录 GitHub 并查看最近的 Pull Requests"
AI 行为:
1. 打开浏览器导航到 GitHub
2. 等待用户登录(HITL 安全阀)
3. 用户完成登录后 AI 继续
4. 导航到 PR 页面
5. 提取 PR 列表信息
两种浏览器模式
| 模式 | 说明 | 用途 |
|---|---|---|
| Headless Browser | 服务端匿名抓取 | 公开网页数据采集 |
| Playwright | 用户浏览器自动化 | 需要登录态的操作 |
安全阀
browser_wait_for_user 是 AlwaysOn 安全阀:
- Cell 启动时无条件注册
- 无论是否配置 Playwright
- 需要用户操作时自动暂停
桌面自动化
Device Agent
wesclaw 内嵌桌面 Device Agent,通过 MCP 协议向 Cell 暴露桌面能力:
| 功能 | 工具名 | 说明 |
|---|---|---|
| 截屏 | wesclaw_screenshot | 截取屏幕保存 |
| 读剪贴板 | wesclaw_clipboard_read | 读取剪贴板内容 |
| 写剪贴板 | wesclaw_clipboard_write | 写入剪贴板 |
| 打开应用 | wesclaw_open_app | 启动指定应用 |
| 系统通知 | wesclaw_notify | 发送桌面通知 |
| 定位文件 | wesclaw_show_file | 在 Finder 中打开 |
使用场景
用户:"截个屏并保存到桌面"
AI 行为:
1. 调用 wesclaw_screenshot
2. 保存截图到指定位置
3. 确认操作完成
用户:"把剪贴板里的文本翻译成英文"
AI 行为:
1. wesclaw_clipboard_read 读取内容
2. AI 翻译内容
3. wesclaw_clipboard_write 写回剪贴板
约束
串行执行
桌面只有一个物理设备:
- Device Agent 内部 mutex 保证串行
- 同一时间只有一个桌面操作
- 操作完成后才执行下一个
断开处理
- Electron 关闭 → 桌面工具从 Cell 视图消失
- AI 不再尝试调用桌面工具
- 重新打开 Electron 后恢复
平台限制
| 功能 | macOS | Windows | Linux |
|---|---|---|---|
| 截屏 | ✅ | ✅ | ✅ |
| 剪贴板 | ✅ | ✅ | ✅ |
| 打开应用 | ✅ | ✅ | ✅ |
| 通知 | ✅ | ✅ | ✅ |
| Accessibility | ✅ | ✅ | 部分 |
SaaS 版限制
SaaS 版(浏览器端)不支持:
- Playwright 浏览器操作
- 桌面自动化
- 截屏和剪贴板
这些功能仅限桌面版使用。
注意事项
- 浏览器操作需要在 CellSpec 中启用
- 桌面自动化通过 MCP 协议注册
- 需要登录的网站走 HITL 等待用户操作
- 桌面截屏不包含其他应用的安全内容
- Headless Browser 适合匿名访问公开页面