一个打印对话框就能让整个自动化流程卡住——这不是边缘案例,是生产环境的日常。
亚马逊云科技(Amazon Web Services)最近给Bedrock AgentCore Browser加了套"操作系统级动作"(OS Level Actions)。简单说,就是让AI代理能控制鼠标键盘、截全屏、点系统弹窗。过去代理只能操作网页里的按钮,现在能碰到浏览器外面那层壳了。
网页自动化的硬边界在哪
现有方案都卡在同一个地方:DOM(文档对象模型,浏览器用来描述网页结构的接口)。Playwright和Chrome开发者工具协议(CDP)能操控的一切,必须能被翻译成网页元素——按钮、输入框、链接。
但操作系统渲染的东西完全在另一个图层。macOS的隐私授权弹窗、Windows的安全提示、证书选择器、右键菜单、甚至Chrome本身的设置页面,这些都不是网页,CDP看不见,Playwright点不了。
更麻烦的是打印场景。网页调用window.print()后弹出的系统打印对话框,对自动化工具来说就是个黑洞——截图能拍到,但没有任何API能交互。
视觉代理的架构放大了这个问题。主流做法是截屏→送模型→拿坐标→执行。这个循环对网页内容有效,遇到原生UI就断链:模型看懂了要关哪个弹窗,执行层却够不着。
亚马逊的解法是把控制层级从浏览器下放到操作系统。通过InvokeBrowser API直接发鼠标键盘指令,配合全桌面截图,让代理能"看到"并"点击"屏幕上的任何东西。
这套机制怎么运转
技术实现上,OS Level Actions绕过了浏览器抽象层。每次调用InvokeBrowser API时带一个动作类型和参数,返回SUCCESS或FAILED状态。会话通过x-amzn-browser-session-id头标识,把操作系统级动作和特定浏览器实例绑定。
核心交互模式是"动作-截图-反应"循环:执行动作→截全屏观察状态→决定下一步。这个循环让代理能处理动态UI,包括加载中的进度条、条件触发的弹窗、多步骤的系统流程。
支持的动作类型覆盖了基础输入场景:
• 点击(click):指定屏幕坐标,左键单击。用于关闭弹窗、确认提示、选择菜单项。
• 双击(doubleClick):打开文件、启动应用、展开折叠项。
• 拖拽(drag):指定起点和终点坐标,按住左键移动。用于调整滑块、重新排序列表、选择文本区域。
• 输入(type):向当前焦点元素发送字符串。配合点击使用,先定位输入框再填内容。
• 快捷键(keypress):发送组合键。支持Ctrl、Alt、Shift、Meta(Mac的Command/Windows的Win键)与字母、数字、功能键的组合。
• 等待(wait):暂停指定毫秒数。用于处理加载延迟、动画过渡、异步响应。
截图动作(screenshot)返回PNG格式的全桌面图像,包含浏览器窗口和所有叠加的原生UI。这是循环的观察环节,让代理获得当前状态的完整视觉信息。
正反方:这是必要进化还是架构补丁
支持方认为这解决了真实世界的刚性约束。生产环境的自动化不可能要求用户关闭所有系统提示、禁用所有安全弹窗、统一所有操作系统配置。打印对话框、证书选择器、权限申请——这些不是异常,是正常业务流程的组成部分。
视觉代理的兴起让这个问题更紧迫。多模态模型能看懂屏幕内容,但执行层跟不上理解层,形成"看得懂、点不到"的尴尬。OS Level Actions补上了这个缺口,让"截图→推理→行动"的闭环真正闭合。
反对方则质疑这是否在修补一个本可避免的架构债务。如果自动化流程频繁遇到系统弹窗,是否说明流程设计本身有问题?过度依赖操作系统级控制可能掩盖更深层的集成缺陷——比如应该调用打印API而不是模拟点击打印对话框,应该使用无头模式(headless)规避图形界面而不是硬点弹窗。
更深层的担忧是可靠性。网页元素有稳定的标识符(ID、class、XPath),系统UI的位置和样式随OS版本、语言设置、显示缩放变化。坐标点击在1920×1080屏幕上有效,换到4K显示器或高分屏Mac上可能点偏。快捷键组合在不同平台含义不同——Ctrl+C是复制,但在某些终端里是中断信号。
还有安全边界的问题。浏览器沙箱的设计初衷是隔离风险,OS Level Actions打破了这层隔离。代理现在能点击系统级别的确认按钮,理论上也能误触危险操作。亚马逊文档强调这是"安全、隔离的浏览器环境",但隔离的是浏览器实例,不是浏览器与宿主系统之间的交互。
我的判断:场景决定价值,但暴露更深层张力
这件事的重要性不在于技术本身,而在于它揭示的行业走向。
首先,网页自动化正在从"结构化数据操作"转向"视觉-动作闭环"。早期工具依赖DOM解析,要求目标系统提供机器可读的接口。当业务系统越来越复杂、越来越封闭,视觉成为通用接口——如果人能看懂的界面,模型也能看懂,就不需要对方提供API了。OS Level Actions是这个转向的基础设施:它让"看"和"点"发生在同一层级。
其次,"代理"(agent)这个概念正在膨胀。最初的代理是聊天机器人,然后是能调用工具的代理,现在是能控制整台计算机的代理。每一步膨胀都伴随控制边界的模糊。亚马逊的文档把OS Level Actions描述为"解锁场景",但解锁的是能力,也是风险敞口。
具体到产品决策:如果你的自动化场景确实需要处理不可控的系统UI——比如跨平台测试、遗留系统集成、用户环境不可预测——这套机制是务实的解决方案。但如果只是为了规避正常的API集成,就是在用技术债务换短期便利。
更值得观察的是竞争格局。Browserbase、Stagehand、Puppeteer生态都在处理同类问题,但路径不同。有的押注纯视觉代理完全取代DOM操作,有的坚持在浏览器内部解决。亚马逊的选择是"两者都要":保留原有的CDP/Playwright能力,同时开放操作系统级逃生通道。这种保守的扩展策略,反映的是企业级市场的风险偏好——不颠覆现有架构,只填补明确的功能缺口。
最后,一个未被原文提及但必然存在的问题:当代理能操作系统级UI,"自动化"和"远程控制"的边界在哪里?如果人类操作员可以实时观看并介入代理会话,这套机制本质上变成了低延迟的远程桌面。亚马逊没有提这个方向,但技术基础设施已经铺好。
生产环境的自动化困境,最终总是卡在人与系统的接缝处。OS Level Actions把这个接缝从网页层下移到操作系统层,没有消除它,只是换了个地方处理。这究竟是进步,还是把问题推给了下一个维护者?
热门跟贴