城主说| 这个周末和大家分享一点特别的, 发布一个本城原创的通用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
下载要求:
优先检查是否可用 GitHub CLI:运行 gh auth status。如果 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 <临时目录>如果没有 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如果直接 URL 下载得到 HTML、登录页、404、0 字节文件,或不是 zip/SHA256SUMS 内容,立刻停止并报告需要 GitHub 登录权限或等待仓库公开。
安装要求:
校验 zip 的 SHA256,必须等于上面的期望 SHA256,并且应与 SHA256SUMS 文件一致。 如果校验失败,立刻停止,不要解压、不要运行。 如果校验通过,把 zip 解压到父目录: %LOCALAPPDATA%\Programs\VibeAppControl
该 zip 自带顶层目录vibeappcontrol-runtime/,因此解压完成后的包根目录必须是:%LOCALAPPDATA%\Programs\VibeAppControl\vibeappcontrol-runtime确认以下文件存在: %LOCALAPPDATA%\Programs\VibeAppControl\vibeappcontrol-runtime\bin\vacctl.exe
如果出现%LOCALAPPDATA%\Programs\VibeAppControl\vibeappcontrol-runtime\vibeappcontrol-runtime\...这样的双层目录,请把内层vibeappcontrol-runtime作为真实包根目录修正到上面的单层路径后再继续。解压后运行: %LOCALAPPDATA%\Programs\VibeAppControl\vibeappcontrol-runtime\bin\vacctl.exe doctor如果当前 agent 支持 MCP 配置,请注册 stdio MCP server:
command =%LOCALAPPDATA%\Programs\VibeAppControl\vibeappcontrol-runtime\bin\vac-mcp-server.exe
args =--stdio --noexp不要下载或运行任何其它文件;不要修改系统 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之间切换和共享经验。
它目前的重点可以概括为三点:
- 语义自动化与视觉识别双引擎;
- 通过 MCP 和 CLI 接入不同模型与 Agent;
- 不仅执行动作,也对实际结果进行检查。
VAC 当前处于公开 Beta,运行时以Windows 二进制形式发布。
更完整的安装说明、技术文档、测试过程和使用限制,可在 GitHub 查看:
https://github.com/jaminzheng/VibeAppControl