自动化与运维 browser-automationplaywrightmcp-servertypesafe-system-onecommand-line-interfaceirreversible-action-guard

Jev Browser

让大模型设定目标、Jev判断动作的浏览器自动化工具。

FollowAgents 评估 · FARS-2.1
谨慎使用
为什么不是更高等级:信任与安全维度为 16/29,未达「推荐」所需的 18/29,按「风险不做平均」下调推荐等级。
75/ 100 五分制 3.8 / 5
1 2 3 4 5 6
按维度查看评分与理由
1信任安全16 / 29 · 2.8/5

项目清楚声明其为非官方项目、说明 TypeSafe System One 是外部决策服务,并以作者、仓库和 MIT 许可提供了明确来源归属,因此来源归属可给满分。CI 使用只读 contents 权限,发布采用 OIDC 而非长期 npm 令牌;浏览器自动化还会将不可逆操作转为 needs_confirmation,并要求显式 allow_irreversible。不过,检测依赖概率判断,browser_act 可直接执行操作,且任意网页自动化本身具有较广外部影响,所以最小权限、确认和外部影响控制未给满分。README 解释页面描述会发给 Jev、LLM 默认不读取快照,但没有完整列出传输字段、服务端保留或隐私政策。API 密钥通过环境变量提供,私有基准文件被忽略,但没有说明凭据值、日志、页面文本和持久化 profile 的脱敏、存储或清理措施。依赖较少且 CI 使用 npm ci,但材料未提供锁文件、漏洞扫描、更新机器人或固定提交 SHA。没有通用撤销、事务或恢复机制,故 rollback 为零。

2可靠稳定12 / 14 · 4.3/5

README、package.json 和工作流在包名、入口、Node 版本、测试命令及发布方式上高度一致,因此静态自洽性充分。依赖和 Chromium 安装步骤明确,Node 20/22 也有 CI 配置;但核心决策依赖外部 TypeSafe API、网络和用户密钥,未说明离线替代、重试策略或服务不可用时的降级方案。失败信息设计很完整,列出 likely_done、needs_login、needs_confirmation、error、stuck、ambiguous、blocked 等状态及调用方应采取的动作,因而 failure_messages 给满分。

3适用触发16 / 18 · 4.4/5

材料覆盖 MCP、库和 CLI 三种使用方式,并给出表单、动态页面、iframe、Shadow DOM、文件上传和非英语界面等具体场景,受众与场景说明充分。已明确列出有序子目标、开放式目标及多值比较等限制,同时提供 check、snapshot 和手动 act 的接管路径,因此能力边界可给满分。步骤编写规则和工具参数使触发较精确,但目标选择及不可逆性仍由概率分布决定,低置信度和误判仍需调用方处理,所以 trigger_precision 未给满分。Node 要求、Chromium 安装、环境变量、持久化 profile、headed/headless 差异和多 MCP 客户端配置均有说明,环境适配充分。

4规范维护15 / 18 · 4.2/5

README 的快速开始、源码安装、工具表、状态表、库与 CLI 示例、布局和发布章节结构清晰;安装命令及网络、密钥要求也很具体。示例覆盖主要接口,已知限制和规避方式明确,MIT 元数据与完整 LICENSE 一致,以上项目可给满分。名称在包、二进制和文档之间一致,但版本仅为 0.1.1,且没有兼容性或稳定性承诺,因此 naming_stability 为 2。存在版本号、标签发布流程和自动生成 GitHub release notes,但材料中没有 CHANGELOG 或升级说明,所以 versioning_changelog 仅为 1。作者、问题地址和发布仓库明确,但缺少维护政策、支持期限、响应责任或共同维护者说明;发布者身份未知本身不构成扣分,扣分来自维护责任范围不完整。

5有效结果10 / 13 · 3.8/5

工具输出采用明确状态、URL、动作记录、分数、候选项和页面文本等可操作字段,且文档逐项说明调用方如何继续,因此输出可用性充分。相较让 LLM 反复读取完整页面快照,该架构具有明确的上下文压缩和决策分工价值;不过性能、正确率及 token 节省主要是仓库自己的基准陈述,且部分明确标为估算,所以 marginal_value 为 2。文档提供约 300 ms 调用延迟、典型调用次数和端到端时间,但未说明 TypeSafe API 的价格、配额、失败成本或长期运行开销,因此成本收益分析尚不完整。

6证据核验6 / 8 · 3.8/5

README 将结果指向 RESULTS.md,并给出基准命令、任务组织和 ground-truth check 的位置,使主要声明有可追踪路径;但所提供材料不含 RESULTS.md、测试源码、锁文件或基准产物,无法逐项核对 40/42、零假完成及 token 数字,因此 claim_traceability 未给满分。README、package.json、CI 和 release 工作流相互印证安装、入口、测试和发布陈述,但效果与安全检测数据主要只有 README 单一来源,故 cross_source_corroboration 为 2。文档明确把上下文节省标注为 estimate,区分已观察结果、已知限制和调用方责任,也没有把静态材料包装成独立验证,因此事实与推断分离充分。

证据充分度: 评估于 2026年9月20日 审查版本 578cff6e701a
源码中未见的安全控制:回滚或恢复路径
使用前请注意
  • 页面描述、可见文本以及可能包含凭据的 values 会参与外部 TypeSafe API 驱动的决策;在处理敏感站点前,应确认实际传输、日志、保留和隐私条款。
  • 不可逆操作保护依赖概率分类,不能视为强制安全边界;调用方仍应限制 browser_act 和 allow_irreversible,并在付款、发送、删除或下单前取得用户确认。
  • JEV_BROWSER_PROFILE 会保留登录状态;应使用受限目录、控制文件权限,并定义会话结束后的清理方式。
  • 所给材料未包含 RESULTS.md、测试实现、依赖锁文件或原始基准输出,因此性能、正确率和依赖完整性声明尚未在本次静态审查中独立核验。
  • 未记录通用撤销或恢复流程;对有副作用的任务,应优先使用测试账户、沙箱环境或站点自身的回滚能力。
评估证据 [1][2][3][4][5]
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

Jev Browser 是一个 MIT 许可的浏览器自动化项目,同时提供 JavaScript 库、命令行工具和 MCP 服务器。调用方大模型逐步给出目标及待输入文本,而 TypeSafe System One 的 Jev 根据页面描述判断目标元素、动作、取值以及步骤是否完成、受阻、报错或将执行不可逆操作。Playwright 负责真正操作网页,调用方通常只接收状态、URL、动作记录和置信度,而不必持续读取完整页面快照。项目支持表单、下拉框、对话框、拖放、文件上传、iframe、Shadow DOM、新标签页及非英语界面等场景。它适合希望降低大模型页面上下文用量、同时保留人工确认和直接接管能力的自动化流程,但运行时依赖 Chromium、网络和 TypeSafe System One API。

JevBrowser 通过 Playwright 启动浏览器,并以“等待页面稳定—描述页面—请求 Jev 决策—执行动作”的循环完成单个可观察目标。src/page-script.mjs 从各 frame 提取元素、标签、状态、可见文本、指标和对话框信息;src/page-model.mjs 计算页面差异、计数并生成紧凑表示;src/jev.mjs 调用 System One API,取得 yes/no、choice 或 score 概率分布。MCP 服务器暴露 browser_open、browser_do、browser_check、browser_choose、browser_snapshot、browser_act、browser_screenshot 和 browser_close;browser_do 可返回 done、likely_done、needs_login、needs_confirmation、error、stuck、max_actions、ambiguous 或 blocked。CLI 可直接执行单个网页目标或运行 JSON flow,JavaScript 用户也可以导入 JevBrowser 类。对于付款、下单、发送或删除等疑似不可逆动作,系统会返回待确认状态,只有调用方再次允许 allow_irreversible 才会继续。

  1. 使用 Claude Code 的开发者,希望通过 MCP 自动登录测试站点、填写表单并验证页面结果。
  2. 维护网页回归流程的工程团队,需要用 JSON flow 串联多个可观察步骤,并在每一步获得明确状态。
  3. 处理大型网页的自动化用户,希望让 Jev读取紧凑页面描述,减少主调用模型反复消费完整快照。
  4. 自动执行结账、发送或删除流程的操作人员,需要在不可逆动作之前暂停并交由用户确认。
  5. 调试复杂控件的测试人员,需要覆盖自定义下拉框、拖放、iframe、Shadow DOM、弹窗或文件上传。
  6. 遇到低置信度目标的自动化开发者,需要查看候选元素后用 browser_act 直接接管操作。

这个 Agent 有哪些优点和局限?

优点
  • 把页面读取和动作选择交给 Jev,主调用模型通常无需读取完整快照;项目给出的同任务估算中,上下文中位数约减少 5 倍。
  • MCP、CLI 和 JavaScript 库共用同一套自动化能力,既可接入 Claude Code,也可嵌入脚本或 JSON flow。
  • 明确区分 done、likely_done、ambiguous、blocked、needs_confirmation 等状态,便于调用方处理不确定性和失败。
  • 内置不可逆动作防护,可在下单、付款、发送或删除前暂停并要求显式授权。
  • 文档列出了对 iframe、Shadow DOM、文件上传、拖放、新标签页和大型页面等复杂浏览器场景的支持。
局限
  • 核心决策依赖 TypeSafe System One API 和用户自己的 API key,无法仅靠本地 Playwright 完成完整自主决策。
  • 需要 Node.js、Chromium、Playwright 及网络环境;部分网站还必须使用 headed 模式。
  • 一个步骤内包含多个有序子目标时效果有限,必须拆分成单一结果步骤。
  • 开放式目标、计数任务及比较大量值的判断可能不可靠,需要 browser_check、browser_snapshot 或调用方自行验证。
  • README 报告的结果来自 42 个现场任务,仍有计数和排序验证失败,不能据此推断对所有网站都稳定。

如何安装或部署这个 Agent?

从 npm 使用 MCP:先运行 npx playwright install chromium,再配置 Claude Code:claude mcp add jev-browser -e TYPESAFE_API_KEY=your-key -- npx -y -p jev-browser jev-browser-mcp。其他 MCP 客户端可使用命令 npx、参数 -y -p jev-browser jev-browser-mcp,并设置环境变量 TYPESAFE_API_KEY。若需观察浏览器,增加 JEV_BROWSER_HEADED=1

从源码安装:git clone https://github.com/Ying-Kai-Liao/jev-browser && cd jev-browser,然后依次运行 npm installnpm run setupcp .env.example .env,并在 .env 中填写 TYPESAFE_API_KEY。离线测试运行 npm test;需要网络和 API key 的 MCP 端到端测试运行 npm run test:e2e。源码版 MCP 可通过 claude mcp add jev-browser -- node /absolute/path/to/jev-browser/bin/jev-browser-mcp.mjs 注册。

如何使用这个 Agent?

MCP 的基本流程是先调用 browser_open(url),再以 browser_do(goal, values?) 执行一个可观察结果,例如登录时将用户名和密码作为有意义的 values 字段传入。返回 done 后可用 browser_check(question) 验证结果;遇到 likely_doneambiguousstuckneeds_confirmation 时,应检查页面、读取候选项或请求用户决定,而不是盲目重试。

JavaScript 库示例:import { JevBrowser } from "jev-browser"; const b = await JevBrowser.launch({ headed: true }); await b.open("https://www.saucedemo.com/"); await b.do("Log in", { values: { username: "standard_user", password: "secret_sauce" } }); const p = await b.check("Does the cart badge show 1 item?"); await b.close();

CLI 可运行:node bin/jev-browser.mjs do https://the-internet.herokuapp.com/login "Log in" username=tomsmith 'password=SuperSecretPassword!',或执行流程文件:node bin/jev-browser.mjs run examples/flows/todomvc.json --headed。每个步骤应只描述一个结果,所有自由文本都放入 values;需要保留登录状态时可设置 JEV_BROWSER_PROFILE=/dir

这个 Agent 与同类方案有什么区别?

项目将其页面上下文用量与 Playwright-MCP 风格的循环作了估算比较:在同一组任务上,Jev Browser 报告每任务中位数约少 5 倍,总量约 8,000 对 557,000 个 token。该差异主要来自把页面阅读交给 Jev;大型页面贡献了大部分节省,而很小的页面没有明显节省。资料没有提供两者在成功率、成本或完整功能范围上的全面对照。

常见问题

必须使用 TypeSafe System One 吗?
是。动作决策由 Jev 通过 TypeSafe System One API 完成,运行时需要用户提供 TYPESAFE_API_KEY
它会自行执行付款或删除吗?
疑似下单、付款、发送或删除的动作会返回 needs_confirmation。只有用户同意后,调用方以 allow_irreversible: true 再次调用才应继续。
自动化卡住或目标不明确时怎么办?
检查返回的 infopage_textcandidates,再使用 browser_checkbrowser_snapshotbrowser_act 验证和接管。不要把 likely_doneambiguousstuck 当作成功。
登录状态可以跨重启保留吗?
可以设置 JEV_BROWSER_PROFILE=/dir 使用持久化浏览器配置。登录墙且 values 中没有凭据时,browser_do 会返回 needs_login
是否支持所有无头浏览器网站?
不能保证。文档指出 x.com 等网站可能向 headless Chromium 返回空白页面,这类站点需要设置 JEV_BROWSER_HEADED=1

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents