1作者: smyansondur大约 2 个月前
大家好,我是 Smyan,我喜欢构建智能体。现代多模态大型语言模型在视觉和感知方面表现出色,但在定位方面却相当薄弱。当我们将 RPA 框架交给智能体来执行计算机使用任务时,这自然会带来一个巨大的问题。 对于浏览器,我们已经通过使用 DOM 树为 LLM 提供结构提示解决了这个问题,最近,现代浏览器使用框架使用 Set-Of-Marks 提示,它获取网页的结构信息并将其转换为带有标签的视觉边界框,这使得 LLM 可以利用其强大的视觉和感知能力,并将其准确地转换为一种定位形式。从功能上讲,这意味着 LLM 现在只需要说“点击 4”而不是说“点击 443 213”。 然而,当我们尝试将其应用于原生操作系统自动化时,这种方法却彻底失败。原生应用程序通常存在的辅助功能树通常非常脆弱,会暴露不确定的选择器,并且经常被开发人员剥离,这使得定位元素变得困难。模糊匹配可以对此有所帮助,但要正确实现仍然非常困难。 这正是我创建 SoMatic 的原因。SoMatic 是一个纯视觉框架,它使用微调的 YOLO 模型(灵感来自 OmniParser v2)来识别 UI 中的文本和可交互元素。YOLO 模型在 CPU 上使用 ONNX 本地运行,速度非常快。SoMatic 绘制边界框和标签,然后将每个边界框的 ID 映射到给定框中心的坐标。因此,这使得 Set-Of-Marks 提示原则上适用于任何用户界面。 我使用该框架和 GPT-5.5 (high) 运行了一个消融基准测试,结果准确率比原始模型高出约 20%。然而,令人惊讶的是,该模型在仅知道边界框的位置(实际上没有看到它们)的情况下表现略好。这可能是由于 YOLO 模型的阈值调整导致绘制的框过多或过少(我不太确定)。 无论如何,如果您一直想让您的 AI 智能体完全自主地控制您的计算机(Windows、Mac 和 Linux),您可以使用以下命令下载 CLI: ``` npm install -g somatic-cli/cli ``` 以及相应的技能: ``` npx skills add Smyan1909/SoMatic ``` 如果希望模型直接解析来自所选 API 的屏幕截图(b64 编码),而不是在每次屏幕截图后读取图像,CLI 还附带一个 stdio MCP 服务器。 我很乐意收到您对纯视觉方法的反馈。我们是否已经到了可以最终放弃自动化中混乱的操作系统辅助功能树的地步?