LLM 网页 UI 自动化六方案全录:Jev 的价值、laya 的证伪与本地平替 NeoHorse

实测日期:2026-09-23 ~ 09-29 · 环境:某医药电商测试环境(已脱敏) 起因:公众号展示"Jev 决策 + 小模型规划"的网页自动化范式,并称通用小模型 laya 可平替 Jev。本基准验证三件事:Jev 的价值到底在哪、laya 能不能接棒、以及跨境云 Jev 能否用本地 4B 判别式模型替代。 模型规格:“bu-30”=browser-use/bu-30b-a3b-preview(30B 总参稀疏 MoE,每 token 激活约 3B,本机双卡 vLLM);“NeoHorse”=TokenRhythm/NeoHorse-Jev-4B(Apache-2.0,Qwen3.5-4B backbone + 判别式 pointer head,本机部署)。 测法:同执行器横比,每方案 n=5(F 组采购链路首测 n=1,表中已标注),全轮 pass 才计均时,失败轮不剔除。

一句话结论(全部有数据兜底)

  • Jev 的价值 = 让激活 3B 量级的稀疏小模型直接具备生产可用的网页操作能力:同一个 bu-30,自己选元素 0/15;挂上 Jev 两个用例双双 5/5、50 次决策置信度全部 ≥0.85。
  • Jev 的天花板 = 云端、无自托管:1.03s/步的实测延迟经官方姿势优化可压到 0.46s,但跨境 RTT ~210ms 不可消除(官方仅 OpenRouter 云端,不能自建)。
  • 本地平替初证:NeoHorse-Jev-4B(本地 4B)替代云 Jev,决策单价口径下成立——登录稳态 0.04s/决策(全轮均值含预热 0.06s)vs 云 Jev 1.15s、采购首测 0.24s vs 云 Jev v2 0.46s(同一脚本 DECISION= 开关可切换,此口径可比)。总时长结论暂未下:登录 F 组用冻结计划与 B/C/D 不可比,采购 F 组仅 n=1(见「变量控制审计」)。
  • laya 平替 Jev 的设想被证伪:0/15,判别式先验坍缩(详见下文)。

变量说明:每组的 规划 × 决策 × 环境

组规划决策环境批次n
Abu-30(browser-use 内循环,无独立决策层)同一 LLM 看全页 DOM09-235
Bbu-30(t_plan 均 0.51s)云 Jev(v1 姿势)09-235
Cdeepseek-flash(t_plan 均 8.9s)云 Jev(v1 姿势)09-235
Ddeepseek-flash 规划+直选合一同左09-235
Ebu-30laya(证伪)09-2315
F登录冻结计划(无 LLM 规划调用)NeoHorse 本地09-295
F采购deepseek-flash(t_plan 8.35s)NeoHorse 本地09-29(sbo 适配后)1

F 组登录用冻结计划是有意设计——让决策层成为唯一变量做机理性对照;代价是总时长与 B/C/D 不可比(它们各付了 0.5~1.3s 规划税)。F 组采购规划模型与 C/D 相同,但环境已是 sbo 收银台改造后的新版本,与 C 组(09-23)总时长对照混入环境变量,且 n=1。

基准设计

四层架构,六组方案只换"规划模型 × 决策层"这一个变量,判据、安全闸、执行器逐行相同:

  1. 规划层:LLM 把意图拆成步骤(action / what / value)
  2. 决策层(被比较变量):每步(英文动作描述 + 元素清单)→ 目标元素编号
  3. 执行层:Playwright 确定性回放
  4. 判定层:代码硬断言(URL 特征 + 页面关键文本双条件),绝不问 LLM 成没成

六组:A bu-30+browser-use · B bu-30+Jev · C deepseek+Jev · D deepseek 直选 · E bu-30+laya(证伪) · F 规划+NeoHorse 本地决策

  • 用例一 短信登录(4 步短任务)
  • 用例二 采购链路(10 步长任务:搜索→悬浮加购 3 件→结算→采购金支付)

结果总表

用例一:短信登录

方案准确率均耗时
bu-30 + Jev5/512.2s
deepseek + Jev5/512.7s
deepseek 直选5/511.8s
bu-30 + browser-use5/515.9s
bu-30 + laya0/15 ❌4.4s 即崩
冻结计划 + NeoHorse(本地)5/510.8s※

※ F 组登录用冻结计划(无 LLM 规划调用),与 B/C/D(含 0.5~1.3s 规划税)总时长不可比;可比口径是决策耗时:0.06s/决策 vs 云 Jev 1.15s、直选 0.87s。

用例二:采购链路(10 步)

方案准确率均耗时10 步决策合计
bu-30 + Jev5/534.9s11.2s(≈1.1s/步)
deepseek + Jev5/541.6s10.3s
deepseek 直选5/541.8s—
bu-30 + browser-use迷失 ❌—94+ 步未到结算
deepseek + browser-use5/549.7s—
deepseek 规划 + NeoHorse(本地)1/135.2s(n=1)2.4s(0.24s/步)

bu-30 对照组是 Jev 价值最硬的反证:同一个 bu-30,在 browser-use 里自主边看边选,长链条直接迷失(94+ 步反复重启搜索、幻觉自造网址);挂上 Jev 后同一模型 10 步一次不错走完。长任务崩的不是"模型会不会操作",而是"每步选元素的活有没有人接管"。

Jev 价值的四条实证

1. 对照组证明:没有专用决策层,小模型玩不转网页

laya(被点名的"平替")在同一执行器上 0/15,三变体各 0/5。崩法很有代表性:放着明显的 [4] <input> 手机号码 不选,去选 tab 和 div;且错选置信度 0.33 高于正确答案的 0.15——置信度门控救不了它。192 条裸决策底稿最好变体仅 56%。定案:低准确率主因不是中文,是没有"网页状态→选元素"训练数据导致的判别式先验坍缩。

2. 同一小模型 + Jev = 立刻 5/5,且长任务不退化

bu-30 挂 Jev 后 4 步登录 5/5、10 步采购也 5/5(两批独立复跑均值均 34.9s)。全场 50 次元素选择置信度最低 0.85、无一选错——规划层负责"做什么",“在哪做"全部交给决策层,小模型短板被整个绕开。

3. 跨语言匹配是隐形刚需

规划层输出英文动作描述,页面元素全是中文。Jev 英文动作→中文元素 conf 稳定 0.85~1.0。bu-30 这类小模型生成中文会乱码,英文提示词是唯一可靠姿势——决策层必须扛住跨语言,这是"小模型+决策层"组合能成立的前提。

4. 成本结构:便宜到可以按步计费

单次决策约 $0.00002(用例二一整单 10 次决策 <$0.0003);每步只上送几十条元素标签 + 一句英文动作——对比"每步把全页 DOM 喂给大模型"的 agent 方案,上下文体积差着量级。 延迟口径修正(09-29 审计):实测 ~1.0s/次 = TLS 重握手 ~0.40s(基准实现缺陷)+ 跨境 RTT ~0.21s(不可消除)+ 服务端推理 0.24s;网传"原生 3580ms"未经证实。详见下文「延迟深潜」。

Jev 的诚实边界:大模型在场时零增量、云端无自托管

  • 登录用例:deepseek 直选 11.8s 比 deepseek+Jev 12.7s 还快——多交一次 API 网络税,没换回准确率(都 5/5);采购用例 41.6s vs 41.8s 打平。
  • 决策层的强弱只在"规划模型自己选不准"时才兑现价值。有强模型 API 且不在乎成本,直选即可。
  • 官方文档核正(docs.typesafe.ai):Jev 是 System One 决策模型,官方明确反对 agent while-loop——我们的四层架构与官方一致;但其仅 OpenRouter 云端、无自托管选项,中国用户 ~210ms RTT 地板锁死。想要更低的延迟,只能本地化——这正是本基准后半程转向 NeoHorse 的原因。

延迟深潜:1.03s → 0.46s → 0.24s 的三级跳

阶段每次决策做了什么
v1 基准实测1.033sTLS 重握手 ~0.40s(每步新建连接)+ 跨境 RTT ~0.21s + 服务端 ~0.24s
v2 官方姿势0.461srequests.Session keep-alive 消除握手 + 结构化英文 state + conf≥0.5 门控
v3 本地 NeoHorse0.24s(采购)/ ~0.04s(登录)彻底去掉跨境链路(RTT 地板不存在了)

方法学附注:t_plan(规划层耗时)是端到端噪声主源(ds 单次 4.7~15s 波动,远大于决策层差异)——评估决策层必须分口径记录(sel_time),否则会被规划波动淹没。另:“代理网络税"说法经实测作废(代理链中位 805ms vs 直连 1335ms,税在握手与 RTT、不在代理)。

本地平替 NeoHorse-Jev-4B 工程实录

为什么能平替:判别式架构(prefill-only,无自回归)+ 专训"网页状态→选元素”——裸选微测 16/16(中英 × 4/26 选项,p_max 0.92~0.9997);laya 同题上限 56%,此模型无坍缩先验问题。延迟 keep-alive 稳态 ~43ms/次(28ms@4选项 / 79ms@26选项)。

两用例实测(只报可比口径):登录 5/5,决策合计 0.25s/4 次决策=0.06s/决策(对照:云 Jev 同用例 1.15s、直选 0.87s);采购链路 1/1,决策 2.4s/10 步=0.24s/步(对照:云 Jev v2 同脚本 0.461s、v1 1.033s)。两组总时长与 09-23 各组不可直接比——环境已换(sbo 收银台)、n 也不同,见下方审计。

采购链路首测踩掉的 5 个坑(全为工程适配,非模型能力):

  1. 名词化指令失效:直接问 “homepage search box” → 模型选"搜索"按钮(conf 0.42 错选);改成动词化模板(“Which element should receive the input text ‘板蓝根’ for this action: ‘fill the …’?")→ conf 0.98 选对。click/hover 同理展开。
  2. state 超 2048 token 上限(HTTP 422 “state exceeds 2048 tokens”):搜索页 100+ 元素折进 state 爆限 → state 瘦身(只留情境句+动作),元素清单全量走 criteria 通道(实测 100 条 OK)。
  3. 页面阶段匹配泛化 bug:"search" 子串抢先匹配 #/indexContent?...searchkey=,把搜索页误判成"homepage”——4B 判别式模型被误导选导航元素;修正匹配顺序。
  4. 新手引导层(“下一步(1/2)“每轮弹出、全屏挡卡片):预处理循环点掉。
  5. 判别式模型的"站点语"依赖:“推荐卡片"抽象概念全灭(4 种通用表述 conf 0.13~0.28 全选空元素);把站点标记词(“首推"标签)写进 state 注记后 conf 0.38 选中对卡。⇒ 结论:判别式小模型定位站点特定元素靠标签 token 而非抽象概念——抽象描述失败时,注入站点 UI 标记词,而不是把答案写进指令。

部署要点:单并发(GPU lock,忙时 429/529);conf 是未标定统计量 (max(p)-1/K)/(1-1/K)(0.5 门控实测可用);state≤2048tok;常驻约 10G 显存——与生产栈排他让位(起前先停生产 vLLM、测试完恢复,全流程纪律化)。

环境漂移与全链闭环(链路人机协作)

站点半月内三连变脸,全部定位+修复,终以真码人机协作闭环 paySuccess:

漂移根因修复
快照只剩 2 元素、填表崩「温馨提示」错误弹窗跨 SPA 路由残留快照前置 JS:只点可见的确认
hover/click 全 30s 超时新手引导全屏遮罩引导层前缀点掉(≤5 轮)
提交订单不再直达 paySuccess站点新增 #/sbo 收银台中间页断言链扩展:sbo 分支 + 二次提交
sbo 提交弹「采购金支付安全校验」短信风控(换登录态必触发;固定测试码仅登录接口有效)真码人机协作:脚本提示→人工填码→确认

闭环实录:全链 29s——数量 3@10s → sbo@25s → 短信弹窗@28s → 真码填入 → paySuccess 双证齐(订单号已脱敏)。

变量控制审计(09-29 复核,结论按可比口径分级)

结论成立度依据 / 限制
决策单价:NeoHorse ≪ 云 Jev(登录 0.04 vs 1.15;采购 0.24 vs 0.46/1.03)稳同脚本骨架只换决策 API(DECISION= 开关),规划/执行/判定冻结
跨语言、小模型可用性(B vs E、B vs browser-use 迷失)稳同执行器同判据,n=5/15
登录"NeoHorse 总时长六方案最快(10.8s)”撤回F 用冻结计划、B/C/D 付规划税(0.51/1.3/1.27s),规划变量未控制;只可作机制性演示
采购"NeoHorse 35.2s 比 C 组 41.6s 快”存疑规划已对齐(同 deepseek-flash),但 n=1 无显著性,且环境跨批次(09-23 直达 paySuccess → 09-29 sbo 收银台+短信风控)

欠账(补测清单):①F 组采购 n=1→5;②与 C/D 同环境重跑对照(或把 B/C/D 在 sbo 环境重跑);③登录 F 若要比总时长,需换回 LLM 规划与 B/C/D 同口径各跑一遍。

选型建议

场景建议
生产长链任务 + 本机有 GPU本地 NeoHorse 决策 + 小模型规划(决策 0.24s/次、无 API 成本、无跨境依赖;n=1 初证,见审计)
成本敏感 / 边缘 / 无本地 GPU稀疏小模型 + 云端 Jev(小模型可用的门票,34.9s)
有强模型 API、不在乎 token 成本大模型直选,不必加决策层
laya 类通用小模型做决策层❌ 证伪,仅限其训练域(文本分类/分流)
站点特定元素定位判别式决策层 + 站点标记词注记(“首推"类标签直接写进 state)

资产

  • ~/jev-laya-test/ — 六组脚手架(bench_cart.py 支持 DECISION=jev|nh|llm、JEV_V1=1 旧姿势对照)、全量结果 JSON(bench_cart_ds_nh.json 等)、全部踩坑记录
  • 决策层延迟审计脚本(audit_jev_latency*.py)与离线冒烟(audit_jev_v2_smoke.py)
  • NeoHorse 部署与调用姿势详见技能 llm-ui-automation(含部署实录、站点注记机制、GPU 让位序列)