浏览器运行时
AnySoul 可以让你的 Agent 浏览网页并执行网页动作,但目前有 两条不同的运行时路径:
- 网页端 + 浏览器扩展
- 使用你当前浏览器里的现有身份
- 在真实浏览器中打开和管理标签页
- 支持显式的结构化浏览器动作
- 桌面端
- 使用 AnySoul 桌面客户端里的本地浏览器运行时
- 在应用窗口内支持 managed browser tabs
- 支持同样的显式结构化动作,并在可用时支持更强的语义浏览动作
这篇指南会说明该选哪条路径、每条路径目前能做什么,以及在性能和限制上应该如何理解。
| 如果你想要… | 选择… | 原因 |
|---|---|---|
| 让 Agent 在你平时使用的浏览器里继续操作 | 网页端 + 浏览器扩展 | 复用当前浏览器标签页和你现有的登录身份 |
| 使用 AnySoul 自己管理的本地浏览器运行时 | 桌面端 | 桌面端拥有本地运行时和 managed tabs |
| 目前最完整的浏览器能力面 | 桌面端 | 桌面端除了显式动作外,还支持语义浏览动作 |
| 最轻量的安装方式 | 网页端 + 浏览器扩展 | 不需要安装桌面客户端 |
两条运行时目前都支持什么
Section titled “两条运行时目前都支持什么”扩展路径和桌面端路径都支持当前这套显式浏览器动作:
- 打开和激活标签页
- 导航、后退、前进、刷新
- 读取页面状态
- 滚动、聚焦、悬停、点击、双击、右键
- 拖拽
- 按键输入
- 清空、输入、粘贴、复制文本
- 设置勾选状态
- 选择下拉框选项
- 提交表单
- 上传文件
- 等待 selector、文本或 URL 变化
- 提取结构化页面数据
- 关闭标签页
对于大多数确定性网页流程,这套显式动作已经是最好的默认路径。
| 能力 | 网页端 + 浏览器扩展 | 桌面端 |
|---|---|---|
| 使用当前浏览器身份 | 是 | 否 |
| AnySoul 管理的 per-agent 本地运行时 | 否 | 是 |
| 在真实浏览器里打开标签页 | 是 | 否 |
| 在 AnySoul 应用窗口中使用 managed tabs | 否 | 是 |
| 显式结构化浏览器动作 | 是 | 是 |
semantic_act | 否 | 是,当前目标支持时可用 |
semantic_extract | 否 | 是,当前目标支持时可用 |
重要限制:扩展不支持语义动作
Section titled “重要限制:扩展不支持语义动作”目前浏览器扩展执行器 不支持:
semantic_actsemantic_extract
这意味着扩展路径应被理解成一个 显式动作优先的浏览器运行时。
实际使用上:
- 扩展很适合做 selector 驱动、确定性强的网页流程
- 适合打开标签页、读取页面、填写表单、上传文件、等待页面变化和提取结构化数据
- 不适合 依赖自然语言网页操作,例如“打开通知页签”或“直接按这个 schema 语义提取页面”
如果你需要这些语义动作,请优先使用桌面端路径。
为什么语义动作更重
Section titled “为什么语义动作更重”桌面端可以通过 Stagehand 提供更强的语义浏览动作。
它适合这些情况:
- 页面难以用稳定 selector 精确定位
- 下一步更容易用自然语言描述,而不是用确定性 DOM 动作表达
- 你希望页面交互或页面提取更自适应
但代价也很明确:
- 语义动作通常会 更慢
- 语义动作通常会消耗 更多 token
- 语义动作在浏览器运行时之上又加了一层模型介导的推理
可以这样判断:
- 如果页面控件稳定,而且你知道接下来该点什么、读什么、输入什么,就优先走显式动作
- 如果桌面端运行时可用,而且这个页面很难只靠 selector 表达清楚,再考虑语义动作
身份与登录态
Section titled “身份与登录态”运行时的选择,也决定了 Agent 使用的是哪一套浏览器身份。
网页端 + 浏览器扩展
Section titled “网页端 + 浏览器扩展”- Agent 使用的是 当前浏览器里的身份
- 如果你已经在某网站登录,扩展路径会看到同一份登录态
- 没有独立的 per-agent 浏览器 profile
这很方便,但也意味着你不能假设 Agent 有独立隔离的登录沙箱。
- 桌面端使用 AnySoul 管理的本地浏览器运行时
- managed browser tabs 会显示在 AnySoul 应用窗口里
- 如果你需要更完整的桌面浏览能力,这条路径更合适
配置:网页端 + 浏览器扩展
Section titled “配置:网页端 + 浏览器扩展”如果你想让 AnySoul 在真实浏览器里继续操作,请用这条路径。
1. 安装并连接 AnySoul 浏览器扩展
Section titled “1. 安装并连接 AnySoul 浏览器扩展”安装 AnySoul 浏览器扩展,登录,并保持它在线,这样它才能把 live executor presence 回传给 AnySoul。
2. 为该 Agent 启用 browser runtime
Section titled “2. 为该 Agent 启用 browser runtime”打开 Agent 设置 → Browser,为你要使用的 Agent 启用 browser runtime。
3. 在当前 run mode 里打开 browser tools
Section titled “3. 在当前 run mode 里打开 browser tools”打开 Run Mode 编辑器,并在那里启用 browser tools。
这两层都需要:
- Agent Browser settings 是这个 Agent 的长期策略
- Run Mode 决定当前这轮是否暴露 browser tools
4. 优先使用显式浏览器流程
Section titled “4. 优先使用显式浏览器流程”由于扩展路径不支持语义动作,建议按这种方式规划:
- open tab
- read page
- click
- type text
- wait
- extract
而不是依赖自然语言浏览器命令。
配置:桌面端
Section titled “配置:桌面端”如果你想使用目前最完整的浏览器运行时,请用这条路径。
1. 安装桌面客户端
Section titled “1. 安装桌面客户端”先参考 安装桌面客户端。
2. 启用本地 browser runtime
Section titled “2. 启用本地 browser runtime”在桌面端打开 Settings → Browser Runtime,先启用本地 browser runtime。
3. 为该 Agent 启用 browser runtime
Section titled “3. 为该 Agent 启用 browser runtime”打开 Agent 设置 → Browser,允许该 Agent 使用 browser runtime。
4. 在当前 run mode 里打开 browser tools
Section titled “4. 在当前 run mode 里打开 browser tools”打开 Run Mode 编辑器,为当前模式启用 browser tools。
5. 显式动作优先,语义动作按需使用
Section titled “5. 显式动作优先,语义动作按需使用”桌面端支持两类能力:
- 上面列出的显式结构化浏览器动作
- 当前目标支持时可用的语义动作
语义动作适合复杂页面,但如果显式动作已经足够表达流程,它通常会更快、更稳定。
Run Mode 里的 browser 开关是锁住的
Section titled “Run Mode 里的 browser 开关是锁住的”这通常表示 AnySoul 还无法确认一个 live browser runtime。
请检查:
- 在网页端:浏览器扩展是否已连接且在线
- 在桌面端:Settings → Browser Runtime 里是否已经启用本地 browser runtime
仅有缓存状态并不足以解锁 browser 开关。
Agent Browser 已经打开,但 browser 还是不可用
Section titled “Agent Browser 已经打开,但 browser 还是不可用”你需要同时满足:
- Agent 的 browser runtime 已启用
- 当前 run mode 暴露了 browser tools
任意一层没有打开,browser tool 都不会可用。
模型里还是看不到 browser_control
Section titled “模型里还是看不到 browser_control”如果两层开关都已经打开,但模型仍然像是没有浏览器工具,请检查:
- 当前 run mode 是否真的包含 browser tools
- 当前是否有 live browser runtime,而不只是缓存状态
- 你是否是在修改运行时或 browser 设置之后重新发起了一次新 run
只有当当前 run、Agent 策略和 live runtime 可用性同时成立时,browser_control 才会被真正注入给模型。
扩展已连接,但看不到 semantic_act / semantic_extract
Section titled “扩展已连接,但看不到 semantic_act / semantic_extract”这是预期行为。
扩展路径当前 不支持 语义浏览动作,所以 AnySoul 不会在该运行时里把它们当成可用选项提供给模型。
桌面端可用,但 browser task 还是失败
Section titled “桌面端可用,但 browser task 还是失败”请依次检查:
- 桌面端 Browser Runtime 是否已启用
- 该 Agent 是否允许使用 browser runtime
- 当前 run mode 是否暴露了 browser tools
- 当前网页流程是否被表达成该运行时真正支持的动作
Agent 总是想走模糊的浏览器指令
Section titled “Agent 总是想走模糊的浏览器指令”如果你当前走的是扩展路径,请改成显式步骤:
- 先读页面
- 找到目标元素
- 再点击或聚焦
- 再输入或粘贴文本
- 等待下一步状态变化
- 最后提取结果
这会是当前扩展运行时最稳定的使用方式。
如果页面确实很难用 selector 清楚表达,而且你确实需要自然语言浏览器指令,那么更合适的做法是切到桌面端路径,而不是强行让扩展路径承担语义动作。
- 安装桌面客户端 — 桌面端配置
- 浏览器扩展 — Context Bro 指南(这是另一个产品,不是 AnySoul 的浏览器运行时执行器)
- 事件流 — Agent 如何持续感知上下文
- AI Browser Agent 用例 — 面向结果的公开介绍
- 一个浏览器 Agent,两条运行路径 — 浏览器运行时发布说明