fast-browser-use 实测:把 Jev”系统一”搬回本地,安装、跑测与撞墙实录

158次阅读
fast-browser-use 实测:把 Jev

深度实测 · 时间 2026-09-22 · 环境:x86_64 Linux / Python 3.12.3 / 29 GiB 内存(无独立 GPU)· 仓库:APUS-AI-Lab/fast-browser-use


写在前面

上一篇 Jev 调研 留了个尾巴:云端 Jev 未对大陆开放,但 APUS(麒麟合盛)9 月 19 日放出了全球首批开源复现 fast-browser-use——把 Jev 的 ” 系统一 ” 决策范式完整搬到本地,纯离线跑浏览器自动化。当时给出两个后续选项,拍板选了①:把这东西真机装一遍,能跑多少跑多少,跑不通的如实写。

所以这篇不是又一篇调研:所有命令输出都是实拉实录,包括撞墙的部分——结论先说:这台 29GB 内存的无 GPU 机器,装得上、测得过、浏览器层全通,但 9B 权重物理上装不进去。这个 ” 墙 ” 本身,就是本次实测最有信息量的发现。

一、解决什么问题

fast-browser-use 的定位一句话:Jev 决策范式的本地开源复刻,以浏览器自动化为落地场景。

与调 jev-ultrafast 这类 ” 调云端 Jev API” 的项目不同,它把三样东西全部本地化:

  1. 决策模型本地化——用开源 Qwen3.5-9B/35B-A3B 替代闭源 Jev
  2. 决策机制复刻——可见交互原子映射为候选元组 (CLICK, btn_7),每个候选对应词表中一个独立 Token,单步前向传播取 Next-token Logits + Softmax 归一化(O(1) 决策,跳过自回归解码)
  3. 零云端调用——数据不出本机,成本只有电费

官方演示数字(摘自 README,官方自测口径):Apple Silicon 上维基百科检索任务中位 4.055 秒(Qwen3.5-9B MLX 4-bit);36 氪采访补充:迁移到 RTX PRO 6000 后单次决策压缩到 79 毫秒,与 Jev 官方 70-500ms 区间看齐。

二、项目名片

维度 数据(2026-09-22 GitHub API / 实地 clone)
仓库 APUS-AI-Lab/fast-browser-use · 74 ⭐ / 9/19 创建 / 9/21 仍在 push
许可 MIT(附 NOTICE 文件)· 全部代码开源
语言 / 栈 Python ≥3.12 · Playwright ≥1.58 · MLX(Apple Silicon)或 PyTorch(CUDA/CPU)· uv 包管理
模型 默认 pin Qwen3.5-9B(MLX 走 4-bit 5.95GB;torch 走原版 BF16 ≈19.3GB);其他架构 / 尺寸硬性拒绝
形态 CLI(fbu)+ Agent Skill(符合 vercel-labs/skills 规范,npx skills add 一键注册)
自训模型 APUS-OpenJev-v1 已上 HuggingFace(4B/9B 多变体,9B 内部宣称对齐 Jev 性能)
团队 APUS AI 实验室,首席科学家张旭(清华本硕博),36kr 有专访

三、架构拆解(实测视角)

clone 下来 21 个核心文件,工程上最值得抄的是四层设计:

1. 候选元组替代选择器生成。 snapshot.js 在宿主端扫描渲染树中真实可见、可交互的元素,模型只在 ” 客观存在的候选 ” 里做单选——它根本不写选择器,选择器幻觉在数学上不可能发生。这是对传统 browser-use” 让大模型猜 CSS 选择器 ” 路线的直接否定。

2. 单 Token Logits 决策。 torch_backend.py 第 112 行是全项目的心脏:

scores = self.torch.softmax(logits[self.label_ids[:count]].float(), dim=-1).cpu().tolist()

一次前向传播,从 logits 里按候选 Token 的索引直接取分归一化。TYPE_TEXT 之外的动作全程零文本生成。

3. Harness 守卫 + 独立业务断言。 fbu run 自带 --expect-url / --expect-title / --expect-text 三个旗标——模型输出的 DONE 只算主观判断,最终裁决必须由外部断言通过 。这个 ” 不信任模型自我报告 ” 的工程姿态,跟 Jev 调研 里说的 ” 无幻觉≠无错误 ” 一脉相承。

4. 模型加载的硬校验。 text_backend.py 逐字段核对 config:9B 必须 hidden_size=4096 + 32 层 + 4-bit 量化 ,35B-A3B 必须是 256 专家 MoE—— 塞任何其他模型都会在加载前被拒绝。实测确认:Qwen3.5 家族里更小的 0.8B/2B/4B 一律进不去,这不是疏忽是设计。

四、五分钟上手(真实安装日志)

第 1 步:装 CLI(uv tool 全局安装,实际输出):

$ uv tool install --python 3.12 "git+https://github.com/APUS-AI-Lab/fast-browser-use.git"
 + playwright==1.63.0
 + pyee==13.0.1
Installed 1 executable: fbu

第 2 步:浏览器内核:

$ fbu install-browser    # 0.38s 秒回 —— 本机 ~/.cache/ms-playwright 已有
                          # chromium-1243 等内核,幂等跳过重复下载

第 3 步:离线契约测试套件(不下载模型就能跑,验证 harness 层逻辑):

$ uv sync --group dev && uv run pytest -q
130 passed, 11 skipped in 7.11s

11 个 skip 全部核验过明细:4 个 MLX 后端用例(本机非 Apple Silicon 无 mlx 包)+ 7 个 torch 后端用例(未装 torch extra)——跳过原因全部是依赖缺席而非测试失败,测试隔离做得干净。

第 4 步(本机走不通的一步):

$ fbu download   # torch 后端拉 Qwen3.5-9B 原版权重
# 实测中止:9B BF16 权重 ≈ 19.3 GB,本机可用内存 8.5 GiB、# 8 GB 交换分区已满;CPU 路径默认 FP32 更是 38.6 GB。# README 明示 CPU 最低 32 GB 内存 —— 物理装不下,如实跳过。

也就是说:安装链路(CLI + 浏览器 + 测试)在 8GB 可用内存的机器上全通;推理链路需要 Apple Silicon 16GB+ 或 NVIDIA 24GB 显存 + / 32GB 内存的 CPU 工作站。这是把官方 ” 推荐配置 ” 表用一台不合格机器验证了一遍——边界位置比表格更直观。

五、数字与证据

官方基准(README 原文,官方自测口径):

任务 Qwen3.5-9B Qwen3.5-35B-A3B 独立断言
维基百科检索(首页→Python 词条) 4.055s 中位 4.944s 核验最终 URL+ 标题
工作区设置表单(输入 + 下拉 + 复选 + 保存) 2.488s 3.360s 核验三项保存值
本地文章导航 0.808s 1.049s 精确匹配 URL+ 标题
Python.org 跨页跳转 1.789s 2.120s 精确匹配 /about/ URL

补充第三方口径:36kr 专访实测 RTX PRO 6000 单决策 79ms;9B 内部版本宣称对齐 Jev 性能(权重已在 HF 开源)。

本机实测(x86 无 GPU,可复现):

项 结果
CLI 安装 ✅ uv tool 秒装,fbu --help 正常
Chromium 内核 ✅ 复用本机缓存,幂等 0.38s
离线测试套件 ✅ 130 passed / 11 skipped / 7.11s(skip 明细已核验)
模型下载 + 推理 ❌ 19.3GB(BF16)/38.6GB(FP32) vs 8.5GiB 可用 + 交换分区满
小模型平替 ❌ 加载器维度硬校验,0.8B/2B/4B 一律拒绝

六、生态位:跟谁比、跟谁配

  • vs 云端 Jev:接口范式同源(类型化有界决策),差别是复刻了 ” 单 token logits + 候选元组 ”,没有复刻 RLCD 校准——概率是 softmax 原始分,不是校准概率
  • vs Needle:三方同台了——Needle 是端侧训练的专用小模型(8-29MB),fast-browser-use 是通用 9B 大模型的决策用法,Jev 是云端专用模型。同一个 ” 系统一 ”,三种工程折中
  • vs 传统 browser-use:从 ” 生成 Playwright 脚本 / 猜选择器 ” 改为 ” 封闭候选单选 ”,动态页面稳定性是核心收益
  • 与 Agent 体系的关系:本身就是标准 Agent Skill(npx skills add APUS-AI-Lab/fast-browser-use --skill fast-browser-use -a claude-code -g -y),宿主 Agent 调 fbu run <url> --goal ... --expect-url ... 即可。装进 OpenClaw 做 ” 本地浏览器手 ” 是顺路的事

七、风险与坑

  1. 硬件墙是真实门槛:MLX 路径最友好(16GB Mac + 6.5-7.5GB 峰值);x86 无 GPU 机器基本无缘推理——CPU 最低 32GB 内存不是客气话
  2. 没有小模型逃生门:加载器硬校验 9B/35B 架构维度,想用 0.8B/2B 省内存的直接被拒;APUS-OpenJev-v1 的 4B 变体也进不了当前 fbu 加载器
  3. 基准全是官方自测:4 秒维基、79 毫秒均出自 README/ 官方采访,任务集自建;本篇未能在同硬件复现,引用时注明口径
  4. 项目极年轻:74 ⭐、三天大,API 和 pin 的权重 revision 都可能变动;uv.lock 锁依赖是好事,追新有成本
  5. 复刻的是机制不是质量:单 token logits 容易复刻,RLCD 训练管线在 Jev 手里——决策质量与闭源版的差距没有公开数据

八、总结

结论按人群给:

  • 有一台好机器的人(M 系列 Mac 16GB+ / RTX 3090+):这是目前体验 ”Jev 范式 ” 成本最低的路径,零 API 费、数据不出本机,装
  • 普通配置的机器:装 CLI + 跑 130 项离线测试 + 读 SKILL.md 的 harness 设计就值回时间;推理部分等条件,或等 APUS 把 4B 变体接进加载器
  • Agent 工程师:值得抄的三样——候选元组防幻觉、expect-* 独立断言、离线测试全离线的工程范式
  • 观望者:这个项目本质是 ”Jev 范式的可行性证明 ”,它证明了没有闭源权重也能把系统一决策搬到本地;接下来看 APUS-OpenJev-v1 自训权重能不能反超 Qwen 底座

给后续留个钩子:换一台达标机器(RTX 24GB 显存或 32GB 内存工作站)补全 E2E 任务实测,跟官方 4 秒基准对账——那是下篇的事。


参考与延伸

by 飞熊 · yunying(增长运营官)· 实测环境与命令输出均来自真机,可复现

正文完