摘要: 2026年5月22日,微软研究院AI Frontiers实验室发布Fara1.5系列浏览器智能体,在两项主流基准测试中击败OpenAI Operator和Google Gemini 2.5 Computer Use。值得关注的是,这是一款完全开源的模型,权重开放、推理代码公开。本文将深度解析其技术架构、训练管线、安全设计,并提供可运行的本地部署指南。
1. 开源逆袭:27B参数凭什么打败闭源巨头?
当业界还在讨论"闭源大模型是否在各领域全面领先"时,微软用一款27B参数的开源模型给出了答案:在浏览器智能体领域,开源模型不仅能打,还能打赢。
2026年5月22日,微软研究院发布的Fara1.5 系列,在Online-Mind2Web基准测试中以72%的得分击败了OpenAI Operator(58.3%)和Google Gemini 2.5 Computer Use(57.3%)。更令人震惊的是,其9B版本也达到了63.4%,同样超越了两大闭源巨头。
这不是小打小闹的"略胜一筹",而是在真实互联网环境(136个真实网站、300项任务)中的全面碾压。
更值得关注的是,Fara1.5是完全开源的:权重开放、推理代码公开。微软用行动证明,开源社区完全有能力打造匹敌甚至超越闭源巨头的浏览器智能体。
本文将深入技术细节,告诉你微软是如何用200万条样本和一套精妙的训练管线,把开源小模型调教成浏览器自动化领域的新标杆。无论你是AI研究员、SRE工程师、还是想用AI自动化替代RPA的开发者,这篇文章都将给你带来实质性的收获。
2. Fara1.5是什么?一句话说清定位
Fara1.5是微软研究院发布的开源浏览器智能体(Browser Computer Use Agent)系列,包含三个参数规模的版本:
| 模型版本 | 参数量 | 定位 | GPU显存需求 |
|---|---|---|---|
| Fara1.5-4B | 4B | 轻量级部署,低资源场景 | ~8GB |
| Fara1.5-9B | 9B | 平衡之选,已上线Azure | ~18GB |
| Fara1.5-27B | 27B | 性能旗舰,全面超越闭源模型 | ~56GB |
核心定位
Fara1.5基于Qwen3.5 基础检查点微调,专为真实互联网环境中的浏览器自动化任务设计。与纯合成环境训练的对手不同,Fara1.5在真实网站的嘈杂、多变环境中表现出色。
为什么强调"真实互联网环境"?因为这是最难的部分------真实网站会变、广告会弹、加载会慢、各种边缘情况层出不穷。很多在合成环境表现优秀的模型,一到真实战场就原形毕露。
开源承诺
- ✅ 权重完全开放:Hugging Face可直接下载
- ✅ 推理代码公开:GitHub仓库完全开源
- ✅ 配套MagenticLite沙盒浏览器界面:安全测试环境
技术规格一览
基础模型: Qwen3.5
发布时间: 2026年5月22日
发布机构: 微软研究院AI Frontiers实验室
训练样本: 200万条
参数规模: 4B / 9B / 27B
许可证: 开源许可(具体见GitHub)
3. 性能基准:双榜单验证,两项冠军
性能是检验模型实力的唯一标准。Fara1.5在两项主流基准测试中展现统治力:
3.1 Online-Mind2Web基准(真实互联网)
这是目前最具挑战性的浏览器智能体基准,涵盖136个真实网站、300项任务,考验模型在真实复杂环境中的泛化能力。
┌─────────────────────────────────────────────┬───────────┬────────────┐
│ 模型 │ 得分 │ 排名 │
├─────────────────────────────────────────────┼───────────┼────────────┤
│ Fara1.5-27B │ 72.0% │ 🥇 冠军 │
│ Yutori Navigator n1 │ 64.7% │ 🥈 │
│ Fara1.5-9B │ 63.4% │ 🥉 │
│ OpenAI Operator │ 58.3% │ │
│ Gemini 2.5 Computer Use │ 57.3% │ │
│ GUI-Owl-1.5-8B │ 48.6% │ │
│ MolmoWeb │ 35.3% │ │
│ Fara-7B (前代) │ 34.1% │ │
└─────────────────────────────────────────────┴───────────┴────────────┘
关键洞察:
- Fara1.5-27B比前代Fara-7B提升超过110%,6个月性能翻倍,这说明微软的训练管线有实质性的技术突破
- 9B小模型已经超越OpenAI和Google的旗舰闭源方案,充分证明了"数据质量 > 模型规模"的训练哲学
- 领先幅度明显:27B模型领先第二名7.3个百分点,优势不是侥幸
3.2 WebVoyager基准
在另一项主流基准中,Fara1.5同样表现出色:
| 模型 | 得分 | 备注 |
|---|---|---|
| Fara1.5-27B | 88.6% | 🥇 冠军 |
| OpenAI Operator | 87.0% | 略逊一筹 |
| Holo2 30B | 83.0% | |
| Fara1.5-9B | 86.6% | 🥈 亚军 |
| Fara1.5-4B | 80.8% |
值得注意的是,OpenAI Operator在WebVoyager上表现尚可(87%),但在Online-Mind2Web上却大幅落后(58.3%)。这说明Online-Mind2Web更能考验模型在真实复杂场景下的泛化能力,而Fara1.5在这场更难的大考中脱颖而出。
4. 技术架构:观察-思考-行动循环
Fara1.5的核心架构遵循经典的**"观察-思考-行动"(Observe-Think-Act)**循环,但微软在细节上做了大量优化,使其在真实环境中表现出色。
4.1 核心工作流详解
┌─────────────────────────────────────────────────────────────────────┐
│ Fara1.5 推理循环 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ 观察 (Observe) │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ 历史对话 │ │ 截图(t-2) │ │ 截图(t-1) │ 截图(t)│ │
│ │ │ Context │ │ │ │ │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ 思考 (Think) │ │
│ │ ┌─────────────────────────────────────────────────────┐ │ │
│ │ │ 1. 当前页面状态分析 │ │ │
│ │ │ 2. 任务目标分解 │ │ │
│ │ │ 3. 下一步行动规划 │ │ │
│ │ │ 4. 风险评估与安全检查 │ │ │
│ │ └─────────────────────────────────────────────────────┘ │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ 行动 (Act) │ │
│ │ ┌─────────────────────────────────────────────────────┐ │ │
│ │ │ 动作类型: 点击/输入/搜索/暂停/完成 │ │ │
│ │ │ 动作参数: 坐标/文本/目标元素 │ │ │
│ │ └─────────────────────────────────────────────────────┘ │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
4.2 观察输入(Observation)
每步推理接收两类输入:
1. 历史对话上下文
- 完整的任务描述(用户最初的指令)
- 之前的交互记录(动作序列和反馈)
- 这是模型理解"我要做什么"的关键
2. 最近3张浏览器截图
- 提供当前页面的视觉状态
- 帮助模型理解页面布局和元素位置
- 视觉信息与文本信息互补
为什么是3张而不是1张?因为浏览器状态变化可能是渐进的,3张截图能帮助模型理解页面变化的历史轨迹。
4.3 思考输出(Thought)
模型输出结构化的推理内容,包含四个维度:
python
# 思考输出的结构(伪代码)
thought = {
"observation_analysis": "当前页面包含搜索框、商品列表、筛选器...",
"goal_decomposition": "任务已完成3步:打开网站→搜索→筛选,还需2步",
"action_plan": "下一步:点击第二个商品的查看详情按钮",
"risk_assessment": "动作安全,无不可逆操作,可继续执行"
}
4.4 动作空间设计
Fara1.5的动作空间经过精心设计,平衡了表达能力与可控性:
动作类型
│
├── 鼠标键盘操作
│ ├── click(x, y) # 在坐标(x,y)点击
│ ├── click_element(id) # 点击指定元素
│ ├── type(text) # 输入文本
│ ├── hover(x, y) # 悬停
│ ├── scroll(delta) # 滚动页面
│ ├── scroll_to_bottom() # 滚动到底部
│ ├── scroll_to_top() # 滚动到顶部
│ ├── shortcut(keys) # 快捷键(如Ctrl+C)
│ └── go_back() / go_forward() # 浏览器前进后退
│
├── 网页搜索
│ └── search(query) # 使用搜索引擎查询
│
└── 元动作(Meta Actions)
├── grounding(fact) # 记忆关键事实
├── ask_user(question) # 向用户提问确认
└── finish() # 任务完成
元动作的引入是Fara1.5的重要创新:
- grounding:允许模型记录在任务中获取的关键信息(如电话号码、订单号),避免重复查询
- ask_user:在关键节点暂停,等待用户输入缺失信息
- finish:明确告知任务完成,让智能体优雅退出
4.5 与前代Fara-7B的技术对比
| 特性 | Fara-7B (前代) | Fara1.5 |
|---|---|---|
| 动作空间 | 基础鼠标键盘操作 | 增加元动作(grounding/ask_user) |
| 观察输入 | 单帧截图 | 多帧截图序列 |
| 推理输出 | 隐式推理 | 结构化思考输出 |
| 安全机制 | 基础限制 | 三重暂停机制 |
| 训练数据 | ~50万条 | 200万条 |
5. 训练秘籍:FaraGen1.5数据管线
Fara1.5的强大性能背后,是微软精心设计的FaraGen1.5训练管线 。这套管线的核心哲学是:高质量合成数据 + 严格验证 = 强大泛化能力。
5.1 三模块架构
FaraGen1.5包含三个核心模块:
环境(Environments):负责构建训练环境,包括开放互联网任务和门控任务(Gated Tasks),后者解决了需要登录认证和不可逆操作的任务训练难题。
求解器(Solvers):使用GPT-5.4作为"教师智能体",在Online-Mind2Web上达到83%的得分,负责生成高质量的任务轨迹。
验证器(Verifiers):三重验证机制------正确性验证(LLM评分+数据库快照对比)、效率验证(惩罚冗余动作)、用户交互验证(检查关键节点暂停)。
5.2 环境模块:真实与合成的平衡
1. 开放互联网任务
- 覆盖无需登录的公开网站
- 任务多样、场景真实
- 风险可控,适合大规模数据采集
2. 门控任务(Gated Tasks)
- 需要登录认证的任务(如邮箱、个人银行)
- 涉及不可逆操作的任务(如支付、删除数据)
- 在真实环境中,这类任务很难大规模采集数据
5.3 6个合成网站克隆:解决门控任务的关键
为了解决门控任务的训练难题,微软构建了6个合成网站克隆(FaraEnvs):
| 克隆名称 | 模拟场景 | 核心功能 | 训练价值 |
|---|---|---|---|
| FaraEnv-Mail | 邮件系统 | 邮件撰写、搜索、分类 | 理解表单交互、信息提取 |
| FaraEnv-Calendar | 日历应用 | 会议安排、时间管理 | 多步骤规划、日期选择 |
| FaraEnv-Stream | 视频平台 | 内容搜索、播放控制 | 媒体控制、复杂导航 |
| FaraEnv-ML | 机器学习平台 | 实验管理、模型部署 | 技术平台操作、专业界面 |
| FaraEnv-Stay | 酒店预订 | 信息查询、表单填写 | 旅行预订流程、支付模拟 |
| FaraEnv-Scheduler | 任务调度 | 任务创建、分配、追踪 | 协作平台操作、权限管理 |
每个克隆都包含三层架构:前端层(HTML/CSS/JavaScript)、API层(RESTful API)、数据层(含角色种子的数据库)。
5.4 求解器模块:用GPT-5.4当"老师"
Fara1.5使用GPT-5.4作为教师智能体 ,在Online-Mind2Web上达到83%的得分。
这个"老师"负责:
- 生成高质量的任务轨迹
- 提供动作序列的示范
- 在复杂决策点给出最优解
为什么选择GPT-5.4?
- 高性能基线:83%的得分确保了教学质量
- 一致性输出:闭源模型输出更稳定,适合做数据生成
- 多轮推理能力:GPT-5.4的链式推理与Fara1.5的"思考"机制匹配
5.5 验证器模块:三重保障
1. 正确性验证器
python
class CorrectnessVerifier:
def verify(self, trajectory, task):
criteria = self.llm.generate_criteria(task)
initial_state = self.db.take_snapshot()
self.executor.run(trajectory)
final_state = self.db.take_snapshot()
changes = self.db.diff(initial_state, final_state)
score = self.compute_score(criteria, changes)
return score >= 0.9 # 90%阈值
2. 效率验证器:惩罚冗余动作,鼓励最优路径
3. 用户交互验证器:确保智能体在关键决策点正确暂停
5.6 训练数据配比详解
200万条样本的配比如下:
| 数据类型 | 占比 | 说明 |
|---|---|---|
| 网页轨迹 | 60.0% | 真实网站交互轨迹 |
| 合成环境 | 12.8% | 6个克隆网站轨迹 |
| 表单填写与用户交互 | 12.5% | 包含ask_user暂停 |
| 事实锚定 (Grounding) | 8.8% | 避免幻觉和错误提取 |
| 视觉问答 | 4.9% | 页面内容理解 |
5.7 损失函数设计:只监督最后3轮
Fara1.5的损失函数只应用于每个轨迹的最后3轮:
python
class FaraLossFunction:
def compute_loss(self, model, trajectory):
total_loss = 0
total_steps = len(trajectory.steps)
supervised_window = 3
start_idx = max(0, total_steps - supervised_window)
for step_idx in range(start_idx, total_steps):
step_loss = self.compute_step_loss(
model,
step.observation,
step.thought,
step.action
)
total_loss += step_loss
return total_loss
为什么这样设计?
- 前期轮次:探索阶段,允许"试错"
- 后期轮次:决策关键时刻,确保正确
6. 安全设计:让AI自动化走向实用
在浏览器自动化场景中,一个错误的点击可能导致不可挽回的损失。Fara1.5实现了多层次的安全设计。
6.1 三种主动暂停场景
Fara1.5会在以下三种情况下主动暂停,向用户确认:
| 暂停场景 | 检测逻辑 | 用户反馈 |
|---|---|---|
| 缺少个人信息 | 任务需要用户独有的信息 | 提供信息或确认跳过 |
| 任务描述含糊 | 意图模糊或有多种解释 | 澄清需求 |
| 即将执行不可逆操作 | 删除、支付、发送等高风险动作 | 确认执行 |
6.2 MagenticLite沙盒浏览器
Fara1.5配套的MagenticLite沙盒环境提供三重保障:
- ✅ 动作记录可审计:所有操作完整日志
- ✅ 随时可停止:用户保留完全控制权
- ✅ 隔离执行环境:不影响真实浏览器环境
6.3 安全训练
Fara1.5的安全能力来自两方面:
- 公开安全数据集:使用业界标准的RLHF安全数据
- 内部对齐任务:基于微软负责任AI政策构建的专项任务
7. 实战部署:从云端到本地
Fara1.5提供了多种部署方式,满足不同场景需求。
7.1 Azure AI Foundry(推荐生产环境)
Fara1.5-9B已在Azure AI Foundry上线,开箱即用:
bash
# Azure CLI 部署命令
az ml model deploy \
--name fara1-5-9b \
--version 1 \
--workspace-name YOUR_WORKSPACE \
--resource-group YOUR_RESOURCE_GROUP \
--kind chat \
--model-path azureml://registries/azureml/models/fara1-5-9b/latest
4B和27B版本即将上线。
7.2 本地部署(Hugging Face)
如果你有本地算力,可以通过Hugging Face获取开源权重:
bash
# 1. 安装依赖
pip install transformers torch accelerate huggingface_hub
# 2. 登录Hugging Face(如果需要下载受限模型)
huggingface-cli login
python
"""
Fara1.5 本地推理示例
"""
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
class Fara15Client:
"""Fara1.5 推理客户端"""
def __init__(self, model_name: str = "microsoft/Fara1.5-9B"):
print(f"正在加载模型: {model_name}")
self.tokenizer = AutoTokenizer.from_pretrained(model_name)
self.model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map="auto",
torch_dtype=torch.float16,
)
print("模型加载完成")
def infer(self, task: str, screenshots: list) -> dict:
prompt = f"任务: {task}\n\n请分析并输出下一步动作。"
inputs = self.tokenizer(prompt, return_tensors="pt").to(self.model.device)
with torch.no_grad():
outputs = self.model.generate(**inputs, max_new_tokens=512)
return {"response": self.tokenizer.decode(outputs[0])}
# 使用示例
if __name__ == "__main__":
client = Fara15Client("microsoft/Fara1.5-9B")
result = client.infer("帮我搜索微软最新发布的AI模型", ["page1.png"])
print(result)
7.3 部署配置建议
| 模型版本 | GPU显存需求 | 推荐场景 |
|---|---|---|
| 4B | ~8GB | 快速实验、低资源部署 |
| 9B | ~18GB | 生产环境推荐 |
| 27B | ~56GB | 追求最高精度 |
显存不足的解决方案:
python
# 量化推理配置
from transformers import BitsAndBytesConfig
quantization_config = BitsAndBytesConfig(
load_in_8bit=True, # 8位量化,显存减半
)
model = AutoModelForCausalLM.from_pretrained(
model_name,
quantization_config=quantization_config,
device_map="auto"
)
7.4 MagenticLite沙盒部署
bash
# 1. 克隆仓库
git clone https://github.com/microsoft/magenticlite.git
cd magenticlite
# 2. 安装
pip install -e .
# 3. 启动
magenticlite serve --port 8080
8. 对开发者的意义:开源生态的新机遇
8.1 为什么开源更重要?
| 方面 | 闭源方案 | Fara1.5开源 |
|---|---|---|
| 定制能力 | 受限 | 完全可微调 |
| 部署成本 | 按次计费 | 按需扩展 |
| 数据隐私 | 需上传云端 | 完全本地处理 |
| 审计透明 | 黑盒 | 可审查 |
| 迭代速度 | 等官方更新 | 自主快速迭代 |
8.2 应用场景展望
- RPA替代:更智能的流程自动化
- 数据采集:复杂网站的信息提取
- 辅助操作:帮助不熟悉界面的用户完成任务
- 测试自动化:Web应用的智能测试
8.3 如何基于Fara1.5微调
python
# 垂直场景微调示例
from transformers import TrainingArguments, Trainer
ecommerce_data = [
{
"task": "搜索商品并按价格排序",
"screenshots": [...],
"optimal_actions": ["click:search_box", "type:关键词", "click:price_sort"]
},
]
training_args = TrainingArguments(
output_dir="./fara1-5-ecommerce",
per_device_train_batch_size=4,
learning_rate=2e-5,
num_train_epochs=3,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=ecommerce_dataset,
)
trainer.train()
9. 技术总结:三大核心洞察
- 数据质量 > 模型规模:200万条精心筛选的高质量样本
- 合成 + 真实 = 全覆盖:6个克隆网站解决了门控任务难题
- 小模型的春天:9B模型超越闭源旗舰
10. 互动环节
读完这篇文章,你有哪些收获或疑问?
- 你在浏览器自动化场景中有哪些痛点?
- Fara1.5的开源对你的工作有什么启发?
- 想看Fara1.5在哪个具体场景下的实测?
请在评论区分享你的想法,我会挑选有价值的反馈进行深入解答!
参考资料
本文首发于CSDN,转载需授权