微软把「会点鼠标 + 会敲命令」塞进一个 4B 小模型:Mage-VL-Cowork 开源,OSWorld 拿到 66%,训练配方全给了
4B 参数、9.48GB 权重、Apache-2.0。一个模型自己决定这一刻该看屏幕点鼠标,还是该开终端敲命令——没有外挂调度器。
3分钟看懂:这东西到底解决了什么
它不是一个更聪明的模型,而是一个学会了「该用哪只手」的模型:看界面走鼠标,改数据走终端,路由自己决定。4B、9.48GB、Apache-2.0,全部训练配方公开。
先说结论:微软在 10 月 30 日把一个叫 Mage-VL-Cowork 的模型放上了 Hugging Face——4B 参数、Apache-2.0、权重只有 9.48GB(bfloat16,两个文件)。它在 OSWorld-Verified 这个「让 AI 真的去操作一台电脑」的测试上拿到 66.0%,是微软自己表里 4B 级别里的最高分。
但比分数更值得注意的是它解决的问题。过去两年,让 AI 操作电脑基本有两条路,而且各有各的烂:
第一条是「纯看屏幕点鼠标」。 模型每一步都要吃一张 1920×1080 的截图。一张图进去就是几千个 token,干一个稍微复杂点的活,几十步下来上下文就爆了。更难受的是改 Excel:明明写一行 Python 三秒就能改完,它非得用鼠标一格一格点,点错了还得回退。
第二条是「只会在终端里敲命令」。 快、准、可验证,但一遇到画布类操作、图形界面里的小控件、正在运行中的窗口状态,它就瞎了。
Mage-VL-Cowork 的做法是:一个模型,两个通道,自己临场决定用哪个。 需要看界面、拖画布、读当前窗口状态的时候走 computer_use(截图 + 鼠标键盘,11 种基本动作);需要改表格、改文档、做确定性验证的时候直接切 bash(一个持久的 shell + Python 环境)。没有外挂的调度器,路由是模型自己在每一轮里决定的。
这句话听起来轻巧,但它是这篇论文真正想证明的东西:在 4B 这个量级上,「通道选择」这种元能力是可以被训练出来的,不用靠一个 70B 的编排器在外面指挥。
对谁有用:想把桌面自动化放在自己机器上跑、不愿意把屏幕内容传到别人服务器的团队;做端侧 Agent、被 API 账单和延迟卡住的产品;以及想看清楚「小模型到底能不能干复杂活」的人。
为什么值得看:桌面 Agent 的瓶颈不在聪明
有一个很容易被忽略的事实:现在的顶级模型并不是不会用电脑,而是用得太贵、太啰嗦。
微软在论文里做了个对照实验,很能说明问题。他们拿 GPT-5.4 当「老师」模型,让它去跑 672 个跨应用任务,然后对比两套工具配置:
- 一套是「进化过的 GUI + 编码」双通道(砍掉了
xdotool这类重复工具,预装了python-pptx、openpyxl、pandas这些库) - 另一套在前面基础上再加「无障碍树(Accessibility Tree)」这个通道
直觉上工具越多越强,对吧?结果反了:工具更多的老师只拿到 89.6%,而精简过的老师拿到 92.0%,并且平均步数少了 29.2%。
更关键的是,用这两套老师的轨迹分别去蒸馏一个 4B 学生:精简派的学生拿到 37.6%,臃肿派的学生只有 25.1%,差了 12.5 个百分点。
这个结论对做 Agent 的人价值极高:大模型还能靠多走几步把冗余工具消化掉,小模型不行。 你在工具集里多塞一个通道,对 4B 模型来说不是多一个能力,而是多一份要学的噪声。所以「先瘦身,再训练」不是工程偏好,是量级决定的硬约束。
那个反直觉实验:工具越多,学生越笨
| 老师用的工具集 | 老师成功率 | 老师平均步数 | 蒸馏出 4B 学生的成功率 |
|---|---|---|---|
| 进化过的 GUI + 编码(精简) | 92.0% | 25.00 | 37.6% |
| 再加无障碍树(AX)通道 | 89.6% | 35.33 | 25.1% |
同一批 672 个跨应用任务、同一个老师模型(GPT-5.4)。差 12.5 个百分点,全部来自「上游把冗余工具砍掉」这一件事。
它到底怎么做的:五阶段课程 + 一条数据流水线
模型底座是微软自家的 Mage-VL(4B 的流式多模态基础模型),视觉端是从零训的 Mage-ViT,语言端是 Qwen3-4B-Instruct-2507。整个训练分五段,每一段解决一个具体毛病:
- GUI 导向的中期训练(占总算力 15.2%):先把「看懂屏幕、定位元素」这件事练出来。这一阶段结束后,OSWorld-G 上的 grounding 从 30.6% 涨到 56.9%,ScreenSpot-v2 从 78.8% 涨到 87.2%。
- GUI Agent SFT(33.6%):用 15.67 万条轨迹教它多步桌面和网页操作。此时 OSWorld 到 45.56%。
- 编码与终端 SFT(19.9%):用 56.37 万条轨迹教它在仓库里改代码、用脚本改文件。这一步是「另一条腿」。
- 混合 CUA SFT(27.8%):31.88 万条轨迹,专门教同一轮里什么时候该点、什么时候该敲。到 55.84%。
- 在线混合 RL(3.5%):异步 GRPO,任务奖励是可验证的(文件状态对不对、数据库改没改对),只花 3.5% 的算力,把分数从 55.84% 拉到 66.04%。
第五步特别值得单独说。强化学习在这里不只提分,还让模型变懒了——是好的那种懒:相比第四阶段的 SFT,平均模型调用从 21.57 次降到 18.77 次(−13.0%),每条任务的输出 token 从 7,374 降到 5,499(−25.4%)。也就是说,它学会了用更少的动作把同一件事干完。
数据是怎么来的,这部分可能是全文最实用的。
他们做了一个叫 Mage-CUA-Forge 的合成引擎。传统做法是「让 Agent 自己摸索着造一个任务」,一次造一个,token 烧得飞快。他们改成「按技能造模板」:对 6,915 个原子技能,每个只投入一次创作成本,造出一套可复用的生成工作流 + 应用准备脚本,然后批量生成任务。
结果:29.38 万个任务(其中 38.24% 是跨应用任务,涉及 278 类文件、87.76 万个文件引用),筛选后保留 31.88 万条验证过的轨迹(68.19% 走 GUI 调用,31.81% 走终端调用)。
成本上:每条任务的生成开销从 $0.906 降到 $0.158,降了 82.6%;token 从 127.6 万降到 8.5 万,降了 93.3%。
还有一个工程细节,做长任务的人会立刻有共鸣:它的工作记忆是不对称的。最近 3 张截图 + 4 条完整回答保留原文,更早的轮次全部压成一行行 Action: 摘要塞在系统提示词后面。这样既不会因为截图堆满上下文而爆掉,又能在点错之后看到「点之前 / 点之后」的对比来纠错。
五阶段课程:每一段治一个病
| 阶段 | 训练内容 | 算力占比 | 阶段后 OSWorld |
|---|---|---|---|
| 1. GUI 中期训练 | 看屏定位、工具调用格式 | 15.2% | —(grounding 30.6% → 56.9%) |
| 2. GUI Agent SFT | 多步桌面与网页操作 | 33.6% | 45.56% |
| 3. 编码与终端 SFT | 仓库改码、脚本改文件 | 19.9% | — |
| 4. 混合 CUA SFT | 同一轮里选通道 | 27.8% | 55.84% |
| 5. 在线混合 RL | 异步 GRPO,可验证奖励 | 3.5% | 66.04% |
最后 3.5% 的算力换来 +10.2 个百分点,同时把模型调用减少 13.0%、输出 token 减少 25.4%——提分的同时变省。
数字怎么读:66% 是什么水平
这张是微软模型卡里的主表,我把关键几行摘出来(OSWorld-Verified,361 个任务,50 步预算):
- 人类参考:72.4%
- GPT-5.5:78.7%
- Claude Opus 4.7:78.0%
- GPT-5.4:75.0%
- Kimi-K2.6:73.1%
- GPT-5.4-mini:69.6%
- ScaleCUA-Qwen3.5-9B:68.7%
- Mage-VL-Cowork(4B):66.0%
- Muse Glimmer-30B:65.9%
- Qwen3.6-27B:63.9%
- EvoCUA-32B:56.7%
- OpenCUA-72B:44.9%
- Fara1.5-4B(浏览器专用):13.9%
这么读比较公平:它离人类还差 6.4 个点,离 GPT-5.5 差 12.7 个点,但它只用了 4B 参数、不到 10GB 的权重,而且是能下载到自己机器上的。 一个 4B 模型站在 27B、30B、32B 开源模型的上面(或者紧贴着),这本身就是结论。
分项上更有意思:OS 类任务 87.5%,比 9B 的 ScaleCUA(79.2%)和 GPT-5.4-mini(79.2%)都高;多应用工作流 62.7%,是全表这一列最高。但 Office 类只有 64.9%,输给 Sonnet 4.5 的 72.6%——说明它在「套件里做复杂文档操作」这块还不是最强。
还有一个横向测试:WebVoyager-Static(643 个任务,15 个网站,离线可重置,同时校验 UI 操作轨迹和后端 SQLite 状态)。Mage-VL-Cowork 的 SFT 版拿 58.6%,领先 Qwen3-VL-8B-Thinking(53.7%)和所有 4B 通用模型;但输给浏览器专用的 Fara1.5-4B(68.0%)。
论文里对这件事的解释挺坦率:通用桌面能力和浏览器专精是两回事,Fara1.5-4B 在完整桌面的 OSWorld 上只有 13.9%。你要哪一个,取决于你的场景。
官方还给了两个同机同任务的实拍对比(对手是 Qwen3.6-27B,纯 GUI 模式):
- LibreOffice Calc:合并两块区域、加标签、插柱状图、存 xlsx。Mage-VL-Cowork 39 秒、6 步(用 Python 直接改工作簿);对手 9 分 56 秒、39 步(一格一格点)。快 15.3 倍。
- GIMP 改图:加 alpha 通道、抠掉纯色背景、缩放到 280×210、存 xcf。Mage-VL-Cowork 1 分 58 秒、15 步(界面里改,终端里验证尺寸和 alpha);对手跑到 7 分 02 秒,存出来的文件没过校验。
这两个例子的价值不在「快多少」,而在于它演示了「通道选择」到底省在哪:改数据用代码,改画面用鼠标,验证用命令。
需要说清楚的口径:以上全部是微软自测,OSWorld 的 66.0% 是两轮完整跑的均值(65.33% 和 66.75%),评测环境是 1920×1080、50 步预算、排除 Google Drive 的 361 个任务。第三方复现目前还没有。演示视频也是官方挑的样例。
一张表看懂它在什么位置
| 模型 | 参数量 | OSWorld-Verified | 能否自己部署 |
|---|---|---|---|
| 人类参考 | — | 72.4% | — |
| GPT-5.5 | 未公开 | 78.7% | 否 |
| Claude Opus 4.7 | 未公开 | 78.0% | 否 |
| GPT-5.4-mini | 未公开 | 69.6% | 否 |
| ScaleCUA-Qwen3.5-9B | 9B | 68.7% | 是 |
| Mage-VL-Cowork | 4B | 66.0% | 是(9.48GB) |
| Muse Glimmer-30B | 30B | 65.9% | 是 |
| Qwen3.6-27B | 27B | 63.9% | 是 |
| OpenCUA-72B | 72B | 44.9% | 是 |
| Fara1.5-4B(浏览器专用) | 4B | 13.9% | 是 |
⚠️ 全部为微软模型卡自测数据,361 个任务、50 步预算、1920×1080 Linux 桌面,尚无第三方复现。
怎么用:三步起一个服务
trust_remote_code=True;起 SGLang 时必须设 SGLANG_MAX_PIXELS=4000000,否则 1080p 截图会被压缩,小图标点不准。模型卡给了完整可跑的路径,我按实操顺序理一遍。
第一步,装依赖。 注意它不是标准 Qwen3-VL 结构,model_type 是自定义的 llava_onevision2,必须带 trust_remote_code=True:
pip install "transformers>=4.57.3" accelerate pillow torch torchvision qwen-vl-utils
第二步,用官方镜像起 SGLang。 他们直接给了打好依赖的镜像(SGLang 0.5.2 / PyTorch 2.8.0+cu128 / Transformers 5.7.0 / FlashInfer 0.3.1):
export MODEL_DIR=/path/to/Mage-VL-Cowork
docker pull xiaoyizhang/mage-vl-cowork:0.1.0
docker run --rm --name mage-vl-cowork \
--gpus 'device=0' --shm-size=8g \
-p 127.0.0.1:30001:30001 \
--mount "type=bind,src=${MODEL_DIR},dst=/models/Mage-VL-Cowork,readonly" \
xiaoyizhang/mage-vl-cowork:0.1.0
如果不用镜像、自己起 SGLang,有一个参数千万别漏:
export SGLANG_MAX_PIXELS=4000000
python -m sglang.launch_server \
--model-path microsoft/Mage-VL-Cowork \
--served-model-name Mage-VL-Cowork \
--host 0.0.0.0 --port 30001 \
--trust-remote-code \
--dtype bfloat16 \
--context-length 32768 \
--mem-fraction-static 0.82 \
--tool-call-parser qwen25 \
--attention-backend flashinfer \
--mm-attention-backend triton_attn
SGLANG_MAX_PIXELS=4000000 是为了保住完整的 1920×1080 桌面保真度。不改这个,截图会被压缩,小图标就点不准了——这是所有 GUI Agent 最典型的隐性坑。
第三步,按官方参数发请求。 采样设置直接抄 66.0% 那一组:temperature=0.7(要单次确定性部署就用 0.0)、top_p=0.8、max_new_tokens=4096(这个预算要同时装下 think、Action: 和 <tool_call>)。多模态请求走 SGLang 原生 POST /generate,截图用 base64 放进 image_data,JPEG quality 95。
要复现评测的话,模型仓库里带了 osworld_eval/ 最小参考包:mage_gui_agent.py(纯 GUI Agent + [0,999] 归一化坐标解析)和 mage_hybrid_agent.py(双通道 Agent + SGLang 客户端),外加 serve_sglang_docker.sh。评测配置是 max_steps=50、history_n=3、images_to_keep=3。
两个通道各管什么
| 通道 | 它擅长什么 | 什么时候模型会切过去 |
|---|---|---|
| computer_use 截图 + 鼠标键盘 | 看界面、拖画布、读当前窗口状态 | 视觉布局、画布编辑、依赖实时内存状态的界面操作 |
| bash 持久 shell + Python | 改结构化文件、批量处理、确定性验证 | 表格 / 文档 / 演示文稿的程序化修改,以及「改完检查对不对」 |
11 种 GUI 基本动作,坐标归一化到 [0, 999];bash 是持久会话,不是一次性命令。路由发生在每一轮,不是任务开始时定死。
适用场景
- 端侧 / 私有部署的桌面自动化:不到 10GB 的权重,一张消费级或工作站显卡就能跑,屏幕内容不出内网
- 表格、文档、演示文稿的批量处理:这类活它的双通道优势最大,用代码改比点鼠标快一个数量级
- 需要可验证结果的自动化:改完文件能用 bash 去校验尺寸、行数、数据库状态,而不是靠模型自己说「我改好了」
- 想研究 CUA 训练方法的人:技术报告、数据合成流水线、五阶段配比、在线 RL 的奖励设计全公开,代码也可跑
- 教学 / 复现实验:Apache-2.0,改完不用开源
不适用场景
- 需要开箱即用的产品:这是权重和参考实现,没有 UI、没有任务编排、没有权限系统,你得自己搭
- 高风险、不可逆的操作:它会执行任意 shell 命令,微软自己在模型卡里明确说只能跑在隔离容器或快照可回滚的 VM 里
- 浏览器任务为主的场景:WebVoyager-Static 上 58.6%,不如浏览器专用的 Fara1.5-4B(68.0%)
- 追求最强上限:和 GPT-5.5 / Claude Opus 4.7 差 12 个点左右,前沿模型在复杂判断上仍然更强
- Windows / macOS 桌面:评测环境是 Linux 桌面(GNOME),跨系统表现官方没给数据
- 中文界面为主的任务:模型卡标注语言为
en,中文桌面场景没有评测
避坑:五个会直接让你跑不通的坑
1. 别当成 Qwen3-VL 直接加载。 架构是自定义的 llava_onevision2,config.json 里就写着。不带 trust_remote_code=True 会直接报错;也不能指望它的权重能塞进标准 Qwen3-VL 的类里。
2. 截图分辨率被偷偷压了。 SGLANG_MAX_PIXELS 默认值撑不住 1080p,压过之后小图标、细边框的点击坐标会偏。改完这个参数,你之前的「点不准」问题可能自己就没了。
3. 上下文只有 32K,别以为是 262K。 架构上限是 262,144,但训练和推理的窗口是 32,768。而且每一步都吃一张全屏截图,32K 其实很快就满——这就是为什么它要做「3 张截图 + 4 条回答 + 折叠历史」的不对称记忆。
4. 让它在宿主机上跑 bash 是自找麻烦。 它能执行任意命令。微软的要求是:隔离容器或可回滚 VM、不挂载个人 SSH key / 云 token / 浏览器 cookie、出网走白名单、不可逆操作要人工确认。
5. 拿公开榜单横比时注意环境差。 OSWorld 的分数对「步数预算」和「桌面分辨率」极其敏感。50 步和 100 步不是一回事,表里 Sonnet 4.5、UI-TARS-2 用的就是 100 步。跨表比较之前先对齐这两个参数。
成本与时间预估
- 硬件:9.48GB 的 bf16 权重,加上视觉编码器和 KV cache,官方给的
mem-fraction-static=0.82意味着建议单卡 24GB 级别起步;跑 1080p 截图不要指望在 8GB 卡上舒服。 - 推理成本:自建就是电费 + 卡时。相比调 GPT-5.5 级别的 API,桌面自动化这种「一天几百上千步」的负载,自建的回本周期通常按月算。
- 时间:有 Docker 和 GPU 经验,跑通官方镜像是半小时级;要接自己的任务、写系统提示词和工具 schema,半天到一天;要复现完整 OSWorld 评测,得准备 Linux 桌面镜像和 361 个任务的环境,这是天级工作量。
- 训练成本(如果你要微调):官方没给总卡时,但给了算力配比——五阶段里在线 RL 只占 3.5%,大部分算力花在 GUI SFT(33.6%)和混合 SFT(27.8%)上。想复刻的话,数据合成那部分反而是最省钱的一环($0.158/任务)。
给新手的第一步
别急着下载权重。更划算的顺序是:
- 先想清楚你手上最烦的那一个桌面重复劳动是什么(比如「每天把十几个 CSV 合并成一张表再出一张图」)。
- 用官方 Docker 镜像在一台隔离的 Linux 虚拟机里起服务,把系统提示词和两个工具 schema 按官方给的抄一遍。
- 只跑这一个任务,跑 5 次,记录三件事:成功几次、平均多少步、有没有出现「该用 bash 却在点鼠标」的情况。
- 如果第 3 步的成功率能到 4/5,再考虑把它接进真实流程;如果不到,先换任务,别急着微调——大概率是任务本身不适合双通道(比如纯浏览器操作)。
一句话总结
Mage-VL-Cowork 的价值不在 66% 这个数字,而在于它证明了一件很小但很实际的事:让 AI 用电脑,最该优化的是「用哪只手」,而不是「多聪明」。 一个 4B 模型学会在对的时候切到终端,就能比 27B 纯 GUI 模型快 15 倍。而且这套配方——五阶段课程、按技能造数据的流水线、只用 3.5% 算力的在线 RL——全都写在公开的技术报告里。
📚 参考来源
- 官方模型卡(一手):Hugging Face · microsoft/Mage-VL-Cowork(创建于 2026-10-30T12:13Z,Apache-2.0) huggingface.co/microsoft/Mage-VL-Cowork
- 官方代码与技术报告:GitHub · microsoft/Mage,
mage_vl_cowork目录(提交于 2026-10-30) github.com/microsoft/Mage/tree/main/mage_vl_cowork - 官方项目页与演示:microsoft.github.io/Mage/cowork/
- 同题报道(部署参数与训练解读):OnPrem World(2026-10-30) onpremworld.com/en/news/2026-10-microsoft-mage-vl-cowork
- 同题报道(训练配方分析):i-Scoop(2026-10-31) i-scoop.eu/mage-vl-cowork/
- 同稿转载:TPS Report、IlPunto.AI、Venture Atlas
规格、配方与评测数字来自微软官方模型卡与技术报告(厂商自测口径);部分背景与解读基于多家媒体转述整理 | 加装AI助手整理发布