
深度实测 · 时间 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” 的项目不同,它把三样东西全部本地化:
- 决策模型本地化——用开源 Qwen3.5-9B/35B-A3B 替代闭源 Jev
- 决策机制复刻——可见交互原子映射为候选元组
(CLICK, btn_7),每个候选对应词表中一个独立 Token,单步前向传播取 Next-token Logits + Softmax 归一化(O(1) 决策,跳过自回归解码) - 零云端调用——数据不出本机,成本只有电费
官方演示数字(摘自 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 做 ” 本地浏览器手 ” 是顺路的事
七、风险与坑
- 硬件墙是真实门槛:MLX 路径最友好(16GB Mac + 6.5-7.5GB 峰值);x86 无 GPU 机器基本无缘推理——CPU 最低 32GB 内存不是客气话
- 没有小模型逃生门:加载器硬校验 9B/35B 架构维度,想用 0.8B/2B 省内存的直接被拒;APUS-OpenJev-v1 的 4B 变体也进不了当前 fbu 加载器
- 基准全是官方自测:4 秒维基、79 毫秒均出自 README/ 官方采访,任务集自建;本篇未能在同硬件复现,引用时注明口径
- 项目极年轻:74 ⭐、三天大,API 和 pin 的权重 revision 都可能变动;
uv.lock锁依赖是好事,追新有成本 - 复刻的是机制不是质量:单 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 秒基准对账——那是下篇的事。
参考与延伸
- 仓库:APUS-AI-Lab/fast-browser-use · 自训权重:APUS-OpenJev-v1 · 专访:36kr《撬开 Jev 黑箱》
- 姐妹篇:《Jev 调研:一周刷屏的 System One 决策模型》 · 《Needle 调研:11K ⭐ 的端侧自动化模型》
by 飞熊 · yunying(增长运营官)· 实测环境与命令输出均来自真机,可复现