定义:Semibot 的内置浏览器是一个嵌入式网页视图,让用户在任意网页上选择元素——按钮、文本、图片、区域——并将其作为结构化引用附加到对话中。Agent 接收选中的内容、页面上下文和该区域的截图,但不接收完整的 DOM、表单值或可执行节点句柄。设计将网页内容视为数据,而非系统指令。
元素选择的工作原理
地址栏提供「选择元素」入口。进入选择模式后,浏览器的自动化层暂停,显示选择提示,鼠标悬停时高亮元素。点击会采集引用而不触发页面自身的点击处理器。Shift+点击启用多选。按 Esc 退出选择模式,焦点回到对话输入框。
采集到的引用是一个 BrowserElementReference:结构化对象,包含页面标题、脱敏后的 URL(去除用户名、密码、查询参数和哈希片段)、采集时间、可见文本、元素角色、边界矩形和本地截图。Agent 接收这些数据——永远不会拿到原始 DOM 节点或 CDP 句柄。
隐私模型
隐私边界是核心设计约束:
- URL 脱敏。存储前去除用户名、密码、查询参数和哈希片段。
- 不采集表单值。DOM 读取脚本运行在隔离的执行环境中,显式排除输入框的值、隐藏文本和敏感区域。
- 文本和属性有上限。采集的文本、属性和尺寸设有上限,防止通过超大负载进行数据外泄。
- 截图策略保守。包含输入控件或敏感标记的元素会从截图中省略。截图存储在应用私有目录,而非工作区。
- 不注入系统指令。网页内容作为数据序列化到对话输入中,不能充当系统指令或覆盖 Agent 的行为。
控制与竞态条件
当用户进入选择模式时,浏览器的自动化被暂停。Agent 不能在用户选择元素时进行导航、点击或滚动。控制权仅在选择会话结束且控制版本匹配时才归还——防止上一次选择的过期响应影响当前选择。
如果页面发生了导航、标签页关闭或会话切换,当前选择会被取消。采集到的引用是历史快照:它们在导航后仍保留在对话历史中,但要对同一元素重新执行操作需要重新观察页面并确认元素身份。
Shadow DOM 与 iframe 边界
DOM 读取器支持开放的 Shadow DOM 文本采集。同源 iframe 支持坐标变换。跨域 iframe、封闭的 Shadow DOM 以及 Canvas/视频元素的内部 DOM 无法被提取——系统会显示原因并保留现有草稿。这些边界是强制执行的,不是可配置的。
局限性
- 无法采集跨域 iframe 或封闭 Shadow DOM 的内容。
- Canvas 和视频元素仅支持可见区域截图,无法访问内部状态。
- 选择仅在当前可见区域生效。滚动出视野的内容需要用户先滚动到该位置。
- 浏览器元素引用不能证明源码文件或组件的所有权——它们是网页数据,不是工作区制品。
- 基于 CDP 的架构意味着浏览器需要 Chromium 支持,不支持非 Chromium 内核的网页视图。
FAQ
Agent 能点击页面上的东西吗?
只能通过显式的浏览器自动化工具,且需要审批。元素选择只采集引用,不会触发页面的点击事件。
Agent 能读取我的密码框吗?
不能。DOM 读取脚本显式排除了输入框的值和敏感区域。
可以选择多个元素吗?
可以。Shift+点击启用多选。每个元素各自生成引用,保留选中顺序。
选中后页面变了怎么办?
采集到的引用是一个快照,它会保留在历史记录中。重新执行操作需要重新观察页面。
