VibeAppControl:一个全Agent通用的 Computer Use for Win

问AI · VAC的双引擎设计如何提升操作准确性?

图片


城主说| 这个周末和大家分享一点特别的, 发布一个本城原创的通用Agent MCP/CLI控件:VibeAppControl (VAC) 


开发这个控件的初衷是打造一个可以在Windows上跨 LLM/Agent 通用的Computer Use控件。 我们都知道,Computer Use 虽好,但其实专属于Codex和Claude Code, 而且基本可以说原生于Mac,Windows版总是姗姗来迟。


VibeAppControl(VAC)是一个本地 Windows 运行时, 可以理解为加强版的Computer Use,为支持 MCP 的 agent 提供直接、类型化的 桌面应用控制接口, 而且同时提供CLI方式支持脚本直接调用。VAC 将适用于结构化应用的语义路径,与 OCR、截图、坐标兜底结合起来, 让 agent 在真实 Windows 桌面上获得一站式操控能力,适配所有主流LLM/agent(因为内建OCR能力,因此可以支持还没有视觉能力的模型),在Codex,Claude Code内,以及国产最新的DeepSeek V4,GLM 5,KIMI,Minimax 和MiMo等国产模型(使用OpenCode 验证)均可调用VAC MCP实现Windows上的Computer use。(注:不同模型执行VAC还是能看出能力的区别,建议使用各个模型的最高档)


这是VAC的第一次公开发布,内部测试里, VAC已可以正常操作Windows上的流行APP。Github页列出了一个基本的验证矩阵,从画图,Office系列到IM。


后续计划之一,是加入面向不同应用的经验系统简单的说,当 VAC 操作一个应用后,系统可以总结该应用的窗口结构、常用入口、有效操作路径、失败原因和结果验证方式。下一次再操作同一个应用时,Agent 可以优先复用已经验证过的经验,减少重复探索和无效尝试。

因为VAC是独立于LLM的, 因此在不同LLM或者说agent调用VAC使用特定app的经验,将会积累在VAC内,甚至支持用户自行迁徙经验数据。


Github 中文页面传送门: 

https://github.com/jaminzheng/VibeAppControl/blob/main/README.zh-CN.md


下方给出agent使用的一键安装验证prompt,感兴趣的朋友可以看后面VAC的完整介绍。




一键安装VAC的提示词 


对于想尝试的同学,除了直接前往github下载安装, 这里有一个可以喂给agent的一键安装prompt:


(注: VAC和所有Computer Use 类控件一样,可以支持Agent操作你的电脑,请了解你正在做什么:)


--prompt开始--

请在Windows 上安装 VibeAppControl Runtime 0.1.0-beta.14。

仓库:jaminzheng/VibeAppControl

版本: v0.1.0-beta.14

Release 资产:

  • vibeappcontrol-runtime-0.1.0-beta.14-win-x64.zip
  • SHA256SUMS

期望 SHA256:
24893ab9c1c53b842374fc3b131475c9c4c53ad3308054fc267b3a4e0352b1de

下载要求:

  1. 优先检查是否可用 GitHub CLI:运行 gh auth status
  2. 如果 gh 已登录且能访问 jaminzheng/VibeAppControl,使用:
    gh release download v0.1.0-beta.14 --repo jaminzheng/VibeAppControl --pattern "vibeappcontrol-runtime-0.1.0-beta.14-win-x64.zip" --dir <临时目录>
    gh release download v0.1.0-beta.14 --repo jaminzheng/VibeAppControl --pattern "SHA256SUMS" --dir <临时目录>
  3. 如果没有 gh,或 gh 无法访问该仓库,则尝试直接从以下 URL 下载:
    https://github.com/jaminzheng/VibeAppControl/releases/download/v0.1.0-beta.14/vibeappcontrol-runtime-0.1.0-beta.14-win-x64.zip
    https://github.com/jaminzheng/VibeAppControl/releases/download/v0.1.0-beta.14/SHA256SUMS
  4. 如果直接 URL 下载得到 HTML、登录页、404、0 字节文件,或不是 zip/SHA256SUMS 内容,立刻停止并报告需要 GitHub 登录权限或等待仓库公开。

安装要求:

  1. 校验 zip 的 SHA256,必须等于上面的期望 SHA256,并且应与 SHA256SUMS 文件一致。
  2. 如果校验失败,立刻停止,不要解压、不要运行。
  3. 如果校验通过,把 zip 解压到父目录:
    %LOCALAPPDATA%\Programs\VibeAppControl
     该 zip 自带顶层目录 vibeappcontrol-runtime/,因此解压完成后的包根目录必须是:
    %LOCALAPPDATA%\Programs\VibeAppControl\vibeappcontrol-runtime
  4. 确认以下文件存在:
    %LOCALAPPDATA%\Programs\VibeAppControl\vibeappcontrol-runtime\bin\vacctl.exe
     如果出现 %LOCALAPPDATA%\Programs\VibeAppControl\vibeappcontrol-runtime\vibeappcontrol-runtime\... 这样的双层目录,请把内层 vibeappcontrol-runtime 作为真实包根目录修正到上面的单层路径后再继续。
  5. 解压后运行:
    %LOCALAPPDATA%\Programs\VibeAppControl\vibeappcontrol-runtime\bin\vacctl.exe doctor
  6. 如果当前 agent 支持 MCP 配置,请注册 stdio MCP server:
     command = %LOCALAPPDATA%\Programs\VibeAppControl\vibeappcontrol-runtime\bin\vac-mcp-server.exe
     args = --stdio --noexp
  7. 不要下载或运行任何其它文件;不要修改系统 PATH;不要请求管理员权限。

最后请报告:

  • 下载方式:gh / direct URL
  • 安装路径
  • SHA256 校验结果
  • vacctl.exe doctor
     输出
  • MCP 配置是否完成;如果未完成,说明原因和需要我手动添加的配置。

--Prompt结束--






=VAC的详细介绍=


VibeAppControl,简称 VAC,现已发布公开 Beta。

VAC 是一套运行在本地 Windows 上的 Computer Use 执行层。上层 Agent 负责理解任务和规划步骤,VAC 负责识别窗口、理解界面、执行操作,并检查结果是否真正完成。

它通过 MCP 和 CLI 提供能力,不绑定某一家模型或 Agent。Codex、Claude Code,以及以 DeepSeek-V4、GLM-5 等模型为后端的 Agent,都可以通过相应的工具调用链路接入。

为什么单独做一套 Windows Computer Use?

目前 Codex、Claude 等产品已经具备 Computer Use 能力,但这些能力大多作为具体产品的一部分提供。

开发者通常无法把其中完整的 Windows 执行层单独拿出来,交给其他模型或 Agent 复用。

VAC 所做的事情,是把 Windows 操作能力独立出来:

模型与 Agent
     ↓
MCP 或 CLI
     ↓
VibeAppControl
     ↓
Windows 应用

上层可以更换模型或 Agent,Windows 侧的窗口发现、界面理解、鼠标键盘操作和结果检查,仍然由 VAC 负责。

核心设计:语义自动化和视觉识别双引擎

目前常见的 Computer Use 主要依赖截图:模型查看屏幕,识别目标位置,然后输出点击坐标。

这种方式足够通用,但也容易受到窗口移动、分辨率、显示缩放、多显示器和界面遮挡等因素影响。

VAC 保留了视觉能力,同时增加了另一条路径:语义自动化

语义自动化

对于能够提供界面结构的 Windows 应用,VAC 会优先读取按钮、输入框、菜单、列表、文档和表格等信息。

例如,Agent 可以知道某个元素是“保存按钮”,而不是只知道屏幕某个坐标附近看起来像一个按钮。

VAC 还会先绑定具体的 Windows 窗口,再围绕这个窗口继续观察和操作。即使桌面上同时打开多个相似应用,也不需要每一步都重新从整张桌面截图中寻找目标。

简单来说:

截图识别是在判断“按钮看起来在哪里”,语义自动化是在读取“哪个元素就是这个按钮”。

视觉识别

并不是所有应用都会提供完整的界面结构。

对于画布、自绘界面、嵌入式页面和部分旧软件,VAC 可以使用:

  • 目标窗口截图;
  • 本机 OCR;
  • 文字位置识别;
  • 坐标点击和拖拽;
  • 操作前后的像素变化比较。

因此,VAC 并不是只支持具有标准控件的应用,也不是所有任务都依赖截图。

它采用的是:

语义优先,视觉补充,必要时两者结合。

不只执行动作,也检查结果

Computer Use 中,“鼠标已经点击”并不等于“任务已经完成”。

例如,点击保存按钮,不代表文件一定已经写入;向 Excel 输入数据,也不代表所有单元格都正确。

VAC 会尽可能对关键结果进行检查:

  • 输入文字后重新读取内容;
  • 填写表格后回单元格;
  • 保存文件后检查文件是否存在;
  • 点击页面后重新确认页面状态;
  • 操作画布后比较像素是否发生变化。

也就是说,VAC 会区分:

动作已经发出结果已经确认

无法确认结果时,不直接把任务标记为成功。

面向不同模型和 Agent


VAC 本身不内置某个特定大模型,而是位于 Agent 和 Windows 应用之间。

Codex、Claude Code 等支持 MCP 的 Agent,可以直接将 VAC 注册为外部工具。对于 DeepSeek-V4、GLM-5 等模型,可以将模型接入支持 MCP 或多步工具调用的 Agent(比如OpenCode),再由 Agent 调用 VAC。

因此,“通用支持”指的是 VAC 在执行层不绑定特定 LLM,而不是在内部集成所有模型。

MCP 和 CLI 两种使用方式

VAC 同时提供 MCP 和 CLI。

MCP 主要用于 Agent 调用。Agent 可以通过工具接口完成窗口发现、界面观察、点击、输入、截图、OCR 和结果检查。

CLI 则适合开发者、自研 Agent 和脚本化场景。除了调试和诊断,也可以直接把 VAC 集成到已有脚本或自动化流程中。

一组公开对比测试

VAC 项目公开了一组 Windows 桌面对比测试(见Github页面)。

测试在同一台电脑和同一个真实桌面上进行,当时系统中打开了三十多个窗口,并使用双显示器和非英文窗口标题。

测试任务覆盖计算器、资源管理器、记事本、画图、Excel、Word、PowerPoint 和微信内嵌页面等场景。

测试结果为:

  • VAC:9/9;
  • 第三方 Windows Computer Use MCP:3/9。

这组测试由 VAC 项目方完成,属于特定环境和任务下的对比,不代表全面的行业基准。它主要用于展示窗口绑定、语义与视觉混合执行,以及结果核验在真实 Windows 桌面中的作用。

完整任务、复现过程和限制说明可以在 GitHub 文档中查看。

当前限制与后续计划


VAC 面向通用 Windows 桌面应用,不按照固定的应用白名单定义支持范围。对于不同应用,它会根据实际界面情况选择语义、视觉或混合路径。

目前 V1 不支持的主要场景包括:

  • Windows 锁屏;
  • UAC 提权弹窗和安全桌面;
  • 系统凭据输入界面;
  • 普通权限进程控制管理员权限窗口。

VAC 操作的是真实 Windows 用户会话。Agent 执行期间,如果用户同时移动鼠标、切换窗口或修改剪贴板,可能会与自动化过程相互影响。需要隔离时,可以部署在虚拟机、Windows Sandbox 或专用 RDP 会话中。

后续计划之一,是加入面向不同应用的经验系统

当 VAC 操作一个应用后,系统可以总结该应用的窗口结构、常用入口、有效操作路径、失败原因和结果验证方式。下一次再操作同一个应用时,Agent 可以优先复用已经验证过的经验,减少重复探索和无效尝试。


总结

VibeAppControl 的定位,是把 Windows Computer Use 从具体模型和 Agent 产品中独立出来,形成一套可以复用的本地执行层。同时,让Computer Use 这个操作可以在多个agent之间切换和共享经验。

它目前的重点可以概括为三点:

  1. 语义自动化与视觉识别双引擎;
  2. 通过 MCP 和 CLI 接入不同模型与 Agent;
  3. 不仅执行动作,也对实际结果进行检查。

VAC 当前处于公开 Beta,运行时以Windows 二进制形式发布。

更完整的安装说明、技术文档、测试过程和使用限制,可在 GitHub 查看:

https://github.com/jaminzheng/VibeAppControl