为什么不让 AI 去“点屏幕”:给桌面应用搭一个本机控制面
屏幕自动化既脆弱又越权。KwaFlux 用有类型的工具、少量参数和应用自己重建的任务,让 AI Agent 安全地操作桌面应用。
简要回答
想让 AI Agent 用桌面应用,最顺手的办法是让它像人一样看屏幕、点按钮。对视频应用来说,这是错的设计。点击很脆弱,Agent 能碰到鼠标能碰到的一切,而且“它点了导出”并不能证明导出是对的。
- 让 AI Agent 看截图、点鼠标来操作桌面应用,演示里很好看,实际用起来脆弱、慢,而且鼠标能碰到的一切它都能碰到。
- KwaFlux 提供的是结构化的控制面:有类型的 MCP 工具,每次调用只带少量参数,任何任务进队列之前都要先过应用的检查。
- Agent 不写完整任务。KwaFlux 的 Worker 用你点“导出”时同一个构建器把任务重建出来。
- 应用和 Agent 共用的规则是生成的,不是抄的;两边一旦对不上,测试就会失败。
KwaFlux 走的是另一条路:一个本机控制面,接收有类型的请求、逐一检查,再在应用内部生成真正的任务。
本文会讲屏幕自动化为什么不适合这类工作、KwaFlux 的各层怎么衔接、为什么 Agent 只发少量参数,以及这个设计有意放弃了什么。
目录
- 什么是面向 AI Agent 的控制面?
- 屏幕自动化与控制面对比
- 从对话到 Worker 的各层
- 少量参数,由应用重建
- 应用和 Agent 共用一套规则
- 进队列之前查什么
- Agent 能信得过的结果
- 这个设计放弃了什么
- 常见问题
什么是面向 AI Agent 的控制面?
面向 AI Agent 的控制面,是一个窄而程序化的接口:Agent 可以通过它请应用做某些具体的事,而检查、拒绝和执行每个请求的权力仍留在应用手里。
在 KwaFlux 里,这个接口就是一组 MCP 工具,决定权在正在运行的桌面应用。Agent 提要求,KwaFlux 拍板。
屏幕自动化与控制面对比
靠截图干活的 Computer Use 类 Agent 是实打实的进步,对没有 API 的应用来说也是仅有的办法。Anthropic 在自家 Computer Use 工具的文档里对局限说得很坦白:模型“有时会在没有明确检查结果的情况下,表现得好像操作已经成功”;下拉菜单和滚动条用鼠标“可能不好操作”;网页上或图片里的指令“可能会覆盖你的指令”。文档建议把 Computer Use 放在“权限最小的专用虚拟机或容器”里运行。
放到你自己电脑上的视频应用里,比如带画质修复和转换工具的 KwaFlux,这些局限就很要紧:
| 问题 | 屏幕自动化 | KwaFlux 控制面 |
|---|---|---|
| Agent 怎么选设置? | 读截图里的标签,再点击 | 填写有类型的字段,取值范围来自应用自己的配置 |
| 界面改版后会怎样? | 点击可能落到错的位置 | 工具照常可用;约定的是参数,不是布局 |
| Agent 能碰到什么? | 屏幕上能看到的一切:设置、账号页、其他应用 | 只有提供的工具,每个都要过应用的检查 |
| 它怎么知道任务成功了? | 再看一眼屏幕 | 拿到任务号、实时进度和结构化结果 |
| 长时间导出能不能无人值守? | 得不停地截图 | 带进度等待任务,随时可以取消 |
| 上下文开销 | 按 Anthropic 文档,每张截图约 1,000 到 1,800 个输入 token | 全部工具清单约 51 KB 文本,加载一次 |
最后一行不是比谁的数字精确。重点在于:结构化调用的开销和导出要 10 秒还是 10 分钟无关,而盯屏幕的 Agent 每看一眼都要付一次钱。
从对话到 Worker 的各层
一个请求要经过六层。每层只干一件事,每层都可以说“不”。

- AI 宿主(Cursor、Claude、Codex 等)在本机启动 KwaFlux 的 MCP 服务,通过标准输入输出和它对话。
- MCP 进程把工具调用转成小而有类型的请求,并且在碰任何文件之前,先按应用同一口径检查路径。
- 本机通道把 MCP 进程连到正在运行的应用:Windows 上是只给当前用户的命名管道,Mac 上是只有你的账户能打开的 socket。每条连接都要先用令牌握手。这一层见本机通道也要设防。
- 控制面在应用内检查请求:路径是不是本机的完整路径,用户有没有登录、方案是否覆盖,这个任务是不是这个 Agent 的,有没有超频率限制,下载设置允不允许。
- 调度器把任务和你在窗口里发起的任务排进同一个队列,共用同一块 GPU 和同一份任务列表。
- Worker 生成完整任务,对付费功能验证签名租约,运行引擎,把结果写在源文件旁边。
少量参数,由应用重建
整个设计都建立在这一条决定上:Agent 不发送完整的任务描述。
KwaFlux 的一个导出任务有很多字段:解码设置、模型选择、分块大小、编码选项、色彩处理等等。要是让 Agent 发整套结构,会出两个问题:模型会填它自己也核实不了的值;而任何能左右模型的人,比如通过一个被投毒的文件名或网页,就能碰到引擎的每个参数。
所以每个工具只收一个人会自己选的那几项:输入文件、模块、应用档位表里的输出尺寸、画质档位、GIF 的起止时间。随后 Worker 用你在应用里点“导出”时同一个任务构建器生成完整任务,再按引擎运行时接受的参数约定裁剪。
结果是,Agent 发起的任务和你点出来的任务,从构建器往后走的是同一套代码。我们的说法是“与界面同一套参数规则”,而不是“输出毫无差别”,因为有几个工具在 MCP 里的选项比应用里窄。这些差别列在能力说明这篇里。
应用和 Agent 共用一套规则
同一套规则存两份,迟早会走样。KwaFlux 不存两份:
- MCP 提供的模块清单,包括每个模块的路由、设置和取值范围,与界面从同一份配置文件生成。照片版的参数取自这份文件里的图片部分。
- 有五份规则直接从应用源码转译给 MCP 服务用:输出分辨率档位、压缩器选封装和编码的规则、音频工作台的算法参数、AI 变声的音色表,以及一条检测规则。
- 一项漂移测试:只要应用里这些规则变了而 MCP 版本没重新生成,测试就失败。
同样的思路也让工具描述保持精简,详见工具设计这篇。
进队列之前查什么
MCP 规范要求服务端“必须”校验所有工具输入、实施恰当的访问控制、限制工具调用频率、清洗工具输出。在 KwaFlux 里,这些检查放在应用里,而不是 MCP 脚本里,所以换一个客户端也绕不过去:
| 检查项 | 规则 |
|---|---|
| 路径 | 必须是本机完整路径;网络路径在打开任何文件之前就被拒绝 |
| 输出 | 写在源文件旁边;遇到重名改成 name(1).ext,不覆盖 |
| 登录与方案 | 付费功能需要登录和方案,Worker 还会验证签名租约。见付费权益如何穿透到 AI 调用 |
| 归属 | Agent 只能暂停、继续、取消或重试它自己提交的任务 |
| 频率 | 新任务全局每分钟最多 10 个,单条连接 6 个;最多 8 条连接 |
| 消息大小 | 单条消息上限 64 KiB;空闲 5 分钟断开 |
| 下载 | 默认关闭;可以设为必须在桌面弹窗里点确认 |
| 总开关 | 一个设置就能关掉全部 Agent 控制 |
Agent 能信得过的结果
KwaFlux 的每个工具都声明了输出结构(outputSchema),所以结果是宿主可以校验的结构化数据,而不是一段要模型自己去理解的文字。宿主传了进度令牌,KwaFlux 就在任务运行时发送进度通知;你在宿主里停止请求,KwaFlux 立即停止等待,Agent 随后可以取消任务。
任务结果只有在任务真正成功时才会说“产物已就绪”,并给出输出文件名。排队中或失败的任务,不会声称产出了什么。
这个设计放弃了什么
控制面能覆盖多广,取决于工具有多少。KwaFlux 有 9 个功能需要有人在画面上画框、点选主体或看预览来判断,比如物体移除和天空替换。我们本可以让 Agent 猜坐标,或者接收原始任务描述。前者的结果谁也说不准,回执却写着成功;后者拆掉的正是让这个设计安全的那道边界。所以这些功能留在应用里,Agent 会被告知把用户引导过去。
这是产品上的选择,不是打算靠放宽规则去补的缺口。
结语
如果 Agent 得看像素才能用你的应用,你就没法检查它下一步要做什么。控制面把这个关系倒了过来:Agent 用一种窄而有类型的语言提要求,应用用自己的代码检查、构建、执行。在 KwaFlux 里,正因为如此,Agent 发起的导出和你点出来的导出走的是同一个任务构建器。
KwaFlux 的本地 MCP 服务让 Codex、Claude、Cursor 等 MCP 应用在桌面应用里排进真实的任务。AI 处理在你自己的 GPU 上运行,媒体文件不会为了处理而上传。可在 Windows 10(64 位,1809 或更新版本)、Windows 11,以及搭载 Apple Silicon 的 macOS 12 或更新版本上运行。导入文件和浏览应用都不需要账号。仅在导出、转换、文件修复和从链接下载文件时需要登录并购买付费方案。
用你自己的素材试试效果
下载 KwaFlux,付费前先用自己的素材免费预览效果——无需注册,在你的 GPU 上处理,处理不需要上传媒体文件。 视频预览可选 1、3或5 秒;防抖预览可选 5、15或30 秒。
常见问题
Computer Use 和 MCP 有什么区别?
Computer Use 让模型看截图、向任何应用发送鼠标和键盘操作;MCP 让应用提供具体的、有类型的工具供模型调用。前者通用但脆弱,后者范围窄但可以检查。
AI Agent 能控制任意桌面应用吗?
部分可以。借助屏幕自动化,它能操作大多数应用,但有厂商自己写明的可靠性局限。要可靠地控制,需要应用提供 API 或 MCP 工具。一个例子见AI 助手通过 MCP 能在视频应用里做什么。
为什么不干脆让模型写 ffmpeg 命令?
因为生成的命令好坏全看模型猜得准不准,而且还得用户自己去运行。调用应用自己的引擎,用的是应用测过的设置,不合理的输入应用也可以退回。
MCP 服务该不该接收模型给的原始配置?
通常不该。原始配置等于把所有参数都交给模型,包括决定文件写到哪儿、程序做什么的那些。由服务端展开的少量有类型输入更容易校验。
MCP 工具的结果需要结构定义吗?
不是必须,但很有用。MCP 规范允许工具声明输出结构,声明了的服务端就必须返回符合结构的结果,客户端才能校验。
参考资料
- Anthropic, "Computer use tool" (security considerations; reliability; screenshot token cost) (2026-10-25 查阅)
- Model Context Protocol, "Tools" (2026-07-28; output schema; Security Considerations) (2026-07-28 查阅)
- Model Context Protocol, "Progress" (2025-11-25; progressToken and progress notifications) (2025-11-25 查阅)
- Model Context Protocol, "Cancellation" (2025-11-25; notifications/cancelled) (2025-11-25 查阅)


