微软开源Agent操作系统:深度集成Windows多智能体,超6000颗星

架构师课程 2025-04-28 04:07:47

微软发布了AgentUFO的重大升级版本——UFO²,并引入了操作系统功能。它即将支持画中画模式,能够在沙盒虚拟桌面环境中实现自动化运行。

相比之前版本,UFO²的一大特色是与Windows系统实现了深度整合,能够直接调用系统的原生API、COM等接口。这种方式让其在执行复杂自动化任务时,比传统RPA依靠鼠标模拟和界面操作更为高效和精准。

以Excel为例,传统RPA通常需要模拟多次鼠标点击来完成从表格数据到图表的转换,而UFO²只需通过调用底层接口即可一步完成,无需依赖视觉定位或鼠标操作。

根据测试结果,UFO²的自动化成功率显著优于OpenAI的Operator。在WAA测试中,UFO²(o1模型)达到了30.5%的成功率,而Operator只有20.8%;在OSWorld-W测试中,UFO²成功率更是高达32.7%,Operator仅为14.3%。

在执行效率方面,UFO²在OSWorld-W中平均只需约5.5步即可完成任务,而Operator步骤更多。在处理复杂任务方面,像跨应用场景,UFO²成功率为9.1%,明显优于Operator;遇到非标准界面时,UFO²利用其混合控制检测机制展现出更好的适应性和稳定性。

开源地址:https://github.com/microsoft/UFO?tab=readme-ov-file

操作系统控制核心HostAgent

HostAgent 是 UFO² 的核心控制模块,负责理解用户的指令内容,将其拆解成多个有序的子任务,并且管理应用程序的整个生命周期。同时,它协调多个 AppAgents,指派这些子任务在对应的应用程序中具体执行。

为了确保任务能够顺利执行,HostAgent 会利用 Windows UI Automation 接口查询系统进程的相关信息,从而判断目标应用程序是否处于运行状态。如果发现目标程序尚未启动,HostAgent 会主动启动该程序,并创建对应的 AppAgent 实例进行管理。

整个任务的执行由一个有限状态机来控制。该状态机明确划分了任务的不同阶段,包括主循环执行、分配子任务、等待用户输入以解决不确定情况、任务结束以及异常处理等环节。这种状态管理机制使 HostAgent 在复杂且动态的工作流程中,能够稳定协调各个环节,确保任务高效且可靠地完成。

HostAgent 利用全局黑板接口与 AppAgents 共享中间结果、依赖状态和执行相关的数据。这种共享的状态通信方式不仅能够实现跨应用的复杂流程协同,还提升了系统在调试和回放时的可见性和透明度。

执行核心AppAgent

AppAgent 是 UFO² 中重要的执行模块之一。每个 AppAgent 专门负责某个特定的 Windows 应用,拥有该应用特有的 API 支持、结合图形界面与 API 的操作接口,以及对应用功能的深入了解。不同于传统的通用 GUI 代理,AppAgent 针对单一应用进行了深度优化,从而能够更高效、更稳定地完成任务。

AppAgent的感知模块融合了多种信息来源,包括视觉输入(用于理解布局)、从UI自动化API获取的语义元数据以及符号注释。这些不同类型的感知数据被整合为结构化的观察对象,包含GUI截图和多个候选控件元素。借助这种多模态数据表示,AppAgent能够更全面地把握应用程序的当前状态,从而制定更加精准的操作指令。

在执行方面,AppAgent的逻辑由一个有限状态机控制,涵盖了默认的任务规划与执行、安全关键操作需要用户确认、任务完成以及不可恢复错误等状态。这种有限状态机器的设计可以将错误限制在当前任务范围内,同时支持任务的安全中断、重试或转交处理。

此外,AppAgent通过维护私有状态及共享状态与系统保持协作,确保能够在HostAgent的指引下独立完成任务,同时和其他AppAgent协调同步。

为了提升对GUI元素的感知能力,UFO²采用了一种混合控件识别机制,将基于UI自动化的元数据与视觉感知实现结合。这种融合方式适用于标准和非标准的界面环境,保障了后续动作规划与执行的可靠基础。

在标准GUI环境下,UI自动化提供了丰富且高度准确的接口,可以遍历屏幕上的控件,并提取其类型、标签、层级结构及启用状态等属性信息。

在某些非标准或自定义的图形用户界面环境中,UIA有时无法识别所有控件。为了解决这一问题,UFO²引入了OmniParser-v2模型,该模型能够通过分析应用程序的截图,识别出UIA未能检测到的自定义或非标准控件。随后,系统通过基于边界框重叠的去重算法,将UIA和OmniParser-v2的检测结果进行融合,生成一个统一的控件图,供AppAgent使用。

统一GUI-API动作编排器

UFO²的另一个重要创新是其集成的GUI与API动作统一调度器——Puppeteer。该调度器能够在每个操作步骤中,智能判断并切换使用基于GUI的自动化手段或应用程序专用的API调用。通过这种混合模式执行,系统不仅增强了任务执行的稳定性,还有效减少了响应延迟,降低了仅依赖GUI操作带来的脆弱性。在实际业务自动化过程中,Puppeteer优先选择语义等价且可用的API接口来替代GUI操作。当API不可用或调用失败时,系统则自动切换回基于图形界面的控制方式。这种灵活的运行机制确保了AppAgent能够在多样化的环境中保持高效稳定,同时兼顾广泛的适用性。

Puppeteer还具备一种简便的API注册功能,开发者可以利用轻量级的Python装饰器接口,将目标应用中的高级操作暴露出来。这些注册的API会在运行时自动整合进AppAgent的动作库,从而使AppAgent能够直接调用这些接口完成复杂任务,避免了繁琐的GUI交互步骤。

画中画模式

传统的RPA方案通常直接在用户主桌面上执行操作,占用鼠标和键盘控制权,导致在自动化过程中的系统使用受到限制,这不仅影响用户体验,还可能带来安全和稳定性隐患。为此,UFO²引入了画中画功能,利用Windows内置的远程桌面技术实现自动化任务与主桌面的隔离。该功能通过创建一个轻量级的虚拟桌面窗口,这个窗口独立于主桌面,拥有独立的输入队列和设备环境。在画中画环境中启动的应用程序继承了用户的身份信息、权限、配置以及网络环境,确保自动化操作与主桌面保持一致,提升了运行的安全性和稳定性。

从用户的视角来看,画中画窗口相当于一个隔离的独立工作空间,用户可以照常在主桌面上操作,而自动化任务则在该窗口内单独运行,互不干扰。为了实现画中画窗口与主桌面之间的有效沟通,UFO²搭建了一个安全的进程间通信(IPC)通道。该通道采用Windows系统自带的命名管道技术,并利用每个会话的凭据进行身份验证和加密保护。通过这条通道,主桌面能够下发任务、查询进度、发送取消请求或澄清信息;与此同时,画中画窗口则会反馈任务状态、完成情况以及异常信息。双向通信机制保证了用户可以通过主桌面上的轻量化前端面板,实时查看和部分操控自动化流程,无需直接操作画中画窗口本身。

·

我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。

欢迎关注“福大大架构师每日一题”,让AI助力您的未来发展。

·

0 阅读:0