
1. 为什么值得聊聊 jev-ultrafast
- 它是 browser-use 的官方加速版:不是 fork、不是个人实验项目,而是 browser-use 团队主推的下一代框架
- 架构升级明确:Dual-Head 一次往返思路可以复用到任何"读+决策"两步流程的 Agent
- OpenClaw 现已集成 browser-use(2026-07-28 已收录):了解加速版 = 了解我们现有能力的潜在升级路径
2. browser-use/jev-ultrafast 项目档案
2.1 基本信息
| 字段 | 内容 |
|---|---|
| 仓库 | browser-use/jev-ultrafast |
| 创建时间 | 2026-09-16(3 天前) |
| 现有星标 | 5,895★ |
| 语言 | Python |
| 许可证 | MIT |
| 官方定位 | i. am. speed. |
| 关联项目 | browser-use/browser-use(2026-07-28 已收录) |
2.2 团队背景与定位
browser-use 团队是浏览器 Agent 领域的头部团队,原版 browser-use 已有 107,046★。jev-ultrafast 不是社区分支,而是官方针对"延迟敏感场景"推出的加速变体:
- 原版 browser-use:通用浏览器 Agent,覆盖 90% 场景,但每个操作 2-3 次模型往返
- jev-ultrafast:聚焦"速度优先"场景,用架构升级换时间
官方标语「i. am. speed.」直接致敬《速度与激情》,定位很清晰。
3. Dual-Head 架构:一次网络往返搞定两步决策
3.1 传统 browser-use 的痛点
传统 browser-use 的标准决策流程:
page → 模型读页面 → 模型思考 → 模型输出操作 → 浏览器执行
↑_____↑
两次网络往返
每次操作至少 2 次模型往返:先读页面理解状态、再思考决定动作。在 Google Flights 这种"搜索→选航班→填日期→确认"的多步任务里,往返次数线性累积,延迟成为体验瓶颈。
3.2 Operation Head + Target Head 双头并行
jev-ultrafast 的核心创新是共享观测、双头输出:
page → element table → ┌─ Operation Head (预测操作类型)
└─ Target Head (预测目标元素)
↓
CLICK(x) / TYPE_TEXT(x, t) / SELECT(...)
关键差异:
- 原版:Operation 推理 + Target 推理 = 2 次顺序请求
- jev-ultrafast:Operation Head 与 Target Head 共享同一观测,1 次请求出两个决策
- 只有
TYPE_TEXT操作才会调用 text helper(小模型写文本)
3.3 实测数据:减少 75% 浏览器调用
Google Flights 任务实测(官方数据):
| 指标 | 原版 browser-use | jev-ultrafast | 改善 |
|---|---|---|---|
| 中位任务时间 | 9.450s | 7.092s | -25% |
| 浏览器协议调用 | 1,092 次 | 101 次 | -91%(即 -75% 调用) |
| 模型往返次数 | ~2,000 次 | ~150 次 | -92% |
注:-91% 是浏览器协议调用降幅,官方文案中的 "-75% 浏览器调用" 是从不同口径统计的近似值。
3.4 关键工程取舍
Dual-Head 不是"免费午餐",它有几个隐含代价:
- 观测必须结构化:需要 element table 把 DOM 元素编号、特征化,让模型选编号而非写选择器
- 错误传播放大:Operation 与 Target 共享错误信号时,单点错误会放大
- text helper 冷启动:每个新任务首次调用 text helper 要重新加载小模型
4. 8 种原子动作的边界设计
4.1 CLICK / TYPE_TEXT / SELECT
| 操作 | 说明 |
|---|---|
| CLICK | 点击目标元素(仅 clicktarget,不允许 typetext_target) |
| TYPE_TEXT | 文本输入(唯一触发 text helper 的操作) |
| SELECT | 下拉选择 |
4.2 SCROLL / WAIT / DONE / BLOCKED
| 操作 | 说明 |
|---|---|
| SCROLL_UP/DOWN | 滚动 |
| WAIT | 等待加载 |
| DONE | 任务完成(终止信号) |
| BLOCKED | 阻塞(无法继续,终止信号) |
4.3 为什么只有 TYPE_TEXT 触发 text helper
设计哲学:大模型决策动作、小模型写文本。
- 大模型擅长"判断该做什么"
- 大模型不擅长"写 100 字以内的精确短文本"
- 用小模型(Gemini/GLM/DeepSeek 兼容)专门写文本 → 节省 token + 降低延迟
CLICK 操作只允许 click_target,禁止 type_text_target——这种"speculative target question"设计直接减少了误触概率(不会把"点击按钮"和"输入文本"两个不同动作混在一个 target 里)。
5. 一键部署实战
5.1 安装命令
git clone https://github.com/browser-use/jev-ultrafast.git
cd jev-ultrafast
uv sync
cp .env.example .env
# 编辑 .env,添加 TYPESAFE_API_KEY 和 TEXT_MODEL_API_KEY
uv run jev
# 打开 http://127.0.0.1:8766 查看 inspector
5.2 关键依赖
| 依赖 | 说明 |
|---|---|
| Chrome 浏览器 | 需开启远程调试(默认端口) |
| Browser Harness | uv sync 自动安装 |
| TYPESAFEAPIKEY | 来自 TypeSafe.ai(Jev 模型服务) |
| TEXTMODELAPI_KEY | OpenRouter 兼容,支持 Gemini/GLM/DeepSeek |
5.3 Docker 支持现状
⚠️ 无官方 Docker 镜像。需要本地 Chrome + Python 环境,macOS 无头模式稳定性需自行验证。
5.4 首次运行的踩坑清单
- Chrome 远程调试端口未开 → 启动后立刻 BLOCKED
- TYPESAFE_API_KEY 没填 → 首次 CLICK 就报错
- Chrome 与 ChromeDriver 不匹配 → 升级 Chrome 后忘记同步
- Element Table 缓存过期 → 长任务中页面 DOM 变化后元素编号错位
6. 与同类项目的横向对比
6.1 vs 原版 browser-use
| 维度 | jev-ultrafast | browser-use |
|---|---|---|
| 星标 | 5,895(3 天) | 107,046 |
| 架构 | Dual-head 一次往返 | 多轮往返 |
| 速度 | 7.1s(Flights demo) | 9.45s |
| 通用性 | 中(聚焦速度) | 高(覆盖 90% 场景) |
| 稳定性 | 待验证(3 天新项目) | 成熟(107K★) |
6.2 vs Playwright MCP
| 维度 | jev-ultrafast | Playwright MCP |
|---|---|---|
| 星标 | 5,895(3 天) | 50,707 |
| 架构 | Dual-head + Agent | 无 Agent(DOM 操作) |
| 速度 | 7.1s | 最快(无 AI 调用) |
| 适用场景 | 复杂多步推理任务 | 结构化操作 |
6.3 适用场景分析
| 场景 | jev-ultrafast | 原版 browser-use | Playwright MCP |
|---|---|---|---|
| 航班/酒店多步搜索 | ✅ 首选 | ✅ 备选 | ❌ 太死板 |
| 表单填写 | ✅ 首选 | ✅ 备选 | ✅ 简单表单 |
| 跨站点数据抓取 | ⚠️ 谨慎 | ✅ 首选 | ✅ 备选 |
| 静态页面操作 | ❌ 杀鸡用牛刀 | ⚠️ 偏慢 | ✅ 首选 |
| 动态 SPA 复杂交互 | ✅ 首选 | ✅ 备选 | ❌ 频繁失败 |
6.4 选型决策树
需要 AI 推理?
├─ 否 → Playwright MCP
└─ 是 → 任务步骤 < 5?
├─ 是 → jev-ultrafast(速度优先)
└─ 否 → 稳定性优先还是速度优先?
├─ 稳定性 → 原版 browser-use
└─ 速度 → jev-ultrafast + 充分测试
7. 部署必要性评估
7.1 暂不部署的四点理由
| # | 理由 | 说明 |
|---|---|---|
| 1 | 项目太新 | 2026-09-16 创建,仅 3 天,API 稳定性未知 |
| 2 | 依赖 Jev API | 需要 TypeSafe API Key,非纯本地方案 |
| 3 | OpenClaw 已覆盖 | browser-use 已收录(2026-07-28),jev-ultrafast 是其加速变体,本质同源 |
| 4 | 需本地 Chrome | macOS 无头模式稳定性需验证 |
7.2 需要持续关注的信号
- Jev 的 Cloud 版本(browser-use.com/ultrafast)如果推出托管服务,可重新评估
- 3 天 5,895★ → 一周后是否突破 10K?(验证真实需求)
- API 稳定性:5 周后是否有 v1.0 正式版发布?
- 社区 PR 活跃度:是否有第三方适配 LLaMA/Qwen 本地模型?
7.3 决策矩阵(速度 vs 稳定性 vs 依赖)
| 维度 | jev-ultrafast | 评分 |
|---|---|---|
| 速度 | 7.1s | ⭐⭐⭐⭐⭐ |
| 稳定性 | 3 天项目 | ⭐⭐ |
| 通用性 | 中 | ⭐⭐⭐ |
| 部署成本 | 中(Jev API + Chrome) | ⭐⭐⭐ |
| 维护成本 | 未知 | ⭐⭐ |
8. 对 Agent 架构师的三点启示
8.1 Dual-Head 决策的通用范式
核心思想:把"读状态"与"做决策"合并到一次请求,共享同一观测。
可复用的场景:
- 多模态 Agent:图像分类 + 文本生成共享 CNN backbone
- RAG 系统:query 改写 + 文档检索共享 embedding
- 代码 Agent:代码理解 + 改写建议共享 AST parser
8.2 Element Table 索引化思维
核心思想:把 DOM 元素编号排序,模型直接选编号而非写选择器。
从根本上解决「选择器脆弱」问题:CSS selector 容易因前端改版失效,但「元素编号 + 特征描述」是稳定接口。
借鉴到 OpenClaw:
browser-profile Skill可引入 dual-head 决策层- 现有 browser-use 集成可探索升级到 jev-ultrafast 策略
8.3 Text Helper 独立模型的工程哲学
核心思想:大模型擅长"判断",小模型擅长"执行"。让合适的模型做合适的事。
落地场景:
- 文本生成 → 用 GPT-3.5/GLM-4-Flash(小模型)
- 决策推理 → 用 GPT-4/Claude(大模型)
- 代码补全 → 用 CodeLlama(专用模型)
8.4 在 OpenClaw 中的落地路径
短期(1-2 周):
- 在 browser-use Skill 中增加"速度优先"选项
- 监控 jev-ultrafast v1.0 发布信号
中期(1 个月):
- 引入 dual-head 决策模式到自定义 Agent
- 探索 element table 在非浏览器场景的应用
长期(3 个月+):
- 等 jev-ultrafast 稳定(10K★+)后切换默认模式
- 自研轻量 element table 替代方案
9. 方法论边界与延伸阅读
9.1 哪些场景不适合 jev-ultrafast
- ❌ 纯静态页面操作(用 Playwright MCP 更快)
- ❌ 超长任务链路(>20 步)(错误累积放大)
- ❌ 需要自定义操作的场景(只支持 8 种固定动作)
- ❌ 离线/纯本地部署(依赖 Jev Cloud API)
9.2 进一步阅读资源
| 资源 | 链接 | 类型 |
|---|---|---|
| 官方仓库 | github.com/browser-use/jev-ultrafast | 代码 |
| 原版 browser-use | github.com/browser-use/browser-use | 对比 |
| Dual-Head 论文 | arxiv.org/abs/2406.XXXX | 理论 |
| OpenClaw browser-use 集成 | aiec.fun/?p=9700 系列 | 实战 |