hwatu:为 AI 智能体打造的轻量验证浏览器
面向 AI 智能体的「验证浏览器」,单次页面检查约 35 ms,支持像素比对、动画测量等内建原语。
Show HN 上亮相的 hwatu 自称为「为 AI 智能体设计的验证浏览器」。其核心思路是把浏览器自动化中常用的「截图—肉眼比对」流程,替换成一次调用即可完成的测量操作:智能体只需向 hwatu 发起一个请求,就能拿到像素匹配率、差异区域热力图、控制台日志、JS 报错、动画参数等结构化结果,而无需维护常驻的 Chrome 实例或多轮工具调用。
产品定位与核心数据
hwatu 以单一静态二进制加上系统自带的 webkitgtk-6.0 运行,不捆绑 170 MB 级别的 Chromium。项目方公布的关键性能数据如下:
- 窗口创建约 13 ms,单次完整验证(打开、加载、执行 JS、截图、关闭)约 35 ms 中位数。
- 在相同工作负载下,「常驻 Playwright 服务」每次调用约 341 ms,hwatu 约 39 ms,差距约 9 倍。
- 复现案例:智能体针对 stripe.com 着陆页克隆版本,将像素匹配率从 85.13% 提升至 97.49%(项目方称最终可达 98.8%)。
项目方将传统方案归纳为两类:「冷库」(每次任务启动 Playwright,调用快但运行慢、状态不保留)与「暖浏览器」(常驻 Chrome + devtools-mcp,资源占用高、窗口会抢占用户焦点)。hwatu 自定位为「最冷的暖守护进程」:引擎常驻但不带 UI、无标签页、无扩展,按需才弹出窗口。
内建测量原语
与 Playwright 等自动化 API 不同,hwatu 把验证所需的原语直接做进浏览器:
diff:返回匹配百分比、差异区域与热力图。motion:将动画转为时长、缓动函数、速度等数值。seek:将页面所有动画钉在某一时刻,便于确定性截图。snapshot:把页面状态序列化为 JSON(tokens 而非像素)。click / type / scroll / upload:真实输入事件,并附带结构化错误。expect:单次调用完成带轮询的页面断言。challenge:识别 CAPTCHA 与反爬机制,提供结构化的等待/恢复接口。
对智能体而言,这意味着不需要再调用截图工具、图像理解模型、DOM 解析工具组成的「三件套」,而是用一次工具调用拿到可机器读懂的验证结果。
集成与协议
hwatu 提供三种接入方式:MCP 服务器(与 Claude Code、Cursor 等编码智能体直接对接)、命令行 CLI,以及基于 Unix 域套接字的「一行 JSON」协议。安装脚本会检测当前环境支持的编码智能体,打印可连接列表,但默认不修改任何客户端配置,需要用户显式执行 hwatu setup --client claude --scope project 才会写入。配置可通过相同参数加 --undo 回滚,且 --dry-run 可预览。
无头模式(headless)按窗口属性而非启动模式设置,可在运行中切换;当需要人类介入时,可通过 hwatu focus <id> 把同一会话投放到用户的平铺窗口管理器中。
与现有方案的取舍
项目方坦承这不是通用浏览器替代品:它没有标签栏、不渲染广告以外的内容、没有扩展机制,适合放在 CI 或智能体循环中作为「快门」。对于仍需完整浏览器能力的场景(调试复杂 SPA、人工浏览),它内置了一个极简 WebKit 浏览器供人使用,配有原生广告拦截、类 vim 地址栏与崩溃恢复。
总体而言,hwatu 把「智能体验证网页」从一串工具调用压缩成一次调用,并以结构化数据替代像素猜测,对依赖浏览器回归测试的 AI 编码智能体工作流具有实用价值,但其覆盖范围仍属于小众开发者工具。
