AnySoul 现在已经可以让你的 Agent 打开标签页、读取网页、点击页面流程、填写表单、上传文件、等待页面变化,并从网页中提取结果。
但这里有一个关键点:这是同一个浏览器产品能力,但有两条运行路径。
- 网页端 + 浏览器扩展:让 Agent 继续在你当前使用的真实浏览器里工作,并复用你当前的登录身份
- 桌面端 App:提供当前能力最完整的本地浏览器运行时,并在可用时支持语义浏览动作
这个区别很重要,因为它会直接影响你应该期待怎样的浏览器工作流。
这个浏览器运行时现在已经能做什么
今天的 AnySoul 已经支持一套有实用价值的显式浏览器动作:
- 打开和切换标签页
- 导航、返回、前进、刷新
- 读取页面状态
- 滚动、聚焦、悬停、点击、双击、右键
- 输入、粘贴、清空、复制文本
- 设置勾选状态
- 选择下拉菜单
- 提交表单
- 上传文件
- 等待 selector、文本或 URL 变化
- 提取结构化数据
这已经足以覆盖一大类确定性的网页任务:
- 在多个标签页中检索信息
- 填写并提交真实表单
- 在浏览器流程里上传文件
- 从搜索结果、列表页或仪表盘中提取结构化结果
一个产品,两条运行路径
| 运行路径 | 适合场景 | 实际使用什么 | 语义动作 |
|---|---|---|---|
| 网页端 + 浏览器扩展 | 在你日常使用的浏览器里继续完成任务 | 你当前的浏览器标签页和当前登录身份 | 不支持 |
| 桌面端 App | 使用当前能力最完整的浏览器工作流 | AnySoul 本地浏览器运行时,以及 App 窗口里的托管标签页 | 支持,但取决于当前桌面目标是否暴露该能力 |
这两条路径都支持同一套显式结构化浏览器动作。
真正的区别出现在:当页面已经复杂到很难只靠 selector 清晰表达下一步的时候。
为什么扩展路径是“显式动作优先”
浏览器扩展路径的设计目标是:
- 让 Agent 直接在你每天都在用的浏览器里工作
- 复用你当前已经登录的网站身份
- 在不离开你原本浏览器环境的前提下继续完成网页任务
这让它很适合处理这样的实际流程:
- 打开一个网站
- 点进某个结果
- 填一个输入框
- 上传一个文件
- 等待下一页加载
- 提取最终结果
但是,扩展路径目前不支持:
semantic_actsemantic_extract
所以最正确的理解应该是:
扩展路径是一个“显式动作型”的浏览器 Agent,而不是“语义动作型”的浏览器 Agent。
为什么桌面端是更强的一层
桌面端路径支持同样的显式动作,同时还能通过 Stagehand 暴露更丰富的语义浏览动作。
这意味着桌面端更适合:
- 页面很难用稳定 selector 精准表达
- 下一步更适合用自然语言描述
- 你希望拿到当前最完整的浏览器能力面
例如:
- “打开通知标签页”
- “从这个仪表盘里提取关键账户摘要”
- “继续这个页面流程,虽然布局很难直接定位”
语义动作更强,但也更重
语义动作很有用,但它不应该被当成每个任务的默认路线。
和显式动作相比,它通常:
- 更慢
- 更耗 token
- 更依赖模型介入推理这一层
所以即使在桌面端,最好的默认策略仍然是:
- 优先用显式动作
- 只有在页面太复杂、太混乱,不适合用 selector 驱动时,再使用语义动作
这也是为什么我们把桌面端描述成更强的一层,而不是默认基线体验。
一个真实可行的工作流
假设你想让 Agent 帮你完成一个网页任务:
- 打开目标页面
- 读取当前可见控件
- 填多个字段
- 选择下拉菜单
- 上传一份文件
- 提交表单
- 等待确认状态出现
- 提取最终结果
这类流程,AnySoul 今天已经可以很好地支持。
如果页面比较规整,那么两条运行路径都能通过显式动作完成。
如果页面异常复杂,而且你更希望用自然语言描述浏览器动作,那就更适合选择桌面端路径。
你应该选哪一条?
选择 网页端 + 浏览器扩展,如果你希望:
- Agent 就在你当前浏览器里继续工作
- 复用你当前浏览器身份
- 任务可以表达成明确的结构化浏览器步骤
选择 桌面端 App,如果你希望:
- 拿到当前最完整的浏览器运行时
- 在 App 内使用托管浏览器标签页
- 在可用时使用语义浏览动作
开始使用
- 阅读 Browser Runtime 使用手册
- 如果你想要最完整的浏览器运行时,请安装 桌面端 App
- 如果你希望 Agent 继续留在你当前浏览器里工作,就选择浏览器扩展路径
重点不是抽象地选择“最强”的运行时,而是选择最适合你实际网页任务的那条路径。