【免费下载链接】heym
Build agentic systems. Run them with confidence. Orchestrate agents, automate business processes, inspect every execution, and keep humans in control. Deploy Heym on your own infrastructure.
Heym 是一个可以部署在自己基础设施上的开源 Agent 工作流编排平台,其中的 Playwright 节点提供了开箱即用的浏览器自动化能力:可视化步骤、AI 自然语言步骤,以及 Auto Heal 自愈选择器。当你用爬虫采集数据时,页面一次改版就能让写死的 CSS 选择器集体失效;Heym 的 Auto Heal 会在选择器连续失败后,自动调用 LLM 分析当前页面 HTML 与截图,替换为更稳健的 role/text 定位器,让爬虫在页面结构变化时"自己修复自己"。
为什么爬虫最怕"选择器腐烂"
传统爬虫脚本的脆弱点几乎都集中在选择器上:
- 网站改版换了 class 名,
.btn-primary一夜之间全部失效 - 动态渲染导致元素出现时间不确定,点击落空
- 页面结构微调后,采集脚本大面积报错却无人知晓
Heym 的 Playwright 节点把这些高频故障场景做成了平台能力,而不是让你自己写一堆 try/except。核心源码位于 playwright_node.py,AI 步骤与自愈逻辑由 playwright_code_generator.py 生成。
快速开始:部署 Heym 并打开画布
本地启动非常简单,只需准备 Bun、Python 3.11+、UV 和 Docker:
git clone https://gitcode.com/gh_mirrors/he/heym cd heym ./run.sh启动后访问 http://localhost:4017 创建账号,进入可视化画布。左侧节点面板中选中 Playwright 节点拖入画布,即可开始搭建浏览器自动化流程:
生产环境可以使用 Docker Compose 一键部署:cp .env.example .env && ./deploy.sh,详见 ENVIRONMENT-VARIABLES.md。
用可视化步骤组装浏览器操作
点击 Playwright 节点,在右侧属性面板中用 Add Step 逐步添加动作,每一步都可以单独开启/关闭(关闭的步骤保留在列表中但运行时跳过),方便定位问题而不删除工作成果。常用步骤类型:
| 步骤 | 作用 |
|---|---|
| navigate | 打开 URL(支持表达式,如$userInput.body.url) |
| click / type / fill | 点击、逐字输入、填充表单 |
| getText / getHTML / getAttribute | 采集元素文本、HTML、属性 |
| getVisibleTextOnPage | 采集整页可见文本(整页正文提取神器) |
| scrollDown / scrollUp / wait / refresh | 滚动、等待、刷新 |
| screenshot | 截图(base64 存入 results) |
| aiStep | AI 自然语言步骤(下节重点) |
完整参数说明见官方文档 playwright-node.md。运行工作流后,每个步骤的输出通过outputKey存入$节点名.results,后续节点可直接引用:
Auto Heal 自愈选择器:AI 三步挽救失败的选择器
这是本文的主角。在 aiStep 属性中勾选Auto heal mode后,Heym 的自愈流程是:
- 某个选择器动作(click/type/fill/hover/selectOption)连续失败 2 次后触发自愈
- Heym 抓取当前页面的 HTML 与截图,连同失败步骤一起发送给 LLM
- LLM 返回一个更稳健的替代定位器,通常是
role=button[name='Submit']或text=Exact text这类文本/角色定位器,而不是脆弱的 CSS 路径 - 用新选择器立即重试,流程继续执行
对应的自愈提示词与接口在 playwright.py 中定义,LLM 被约束只能返回 click、type、fill、hover、selectOption 这五类交互动作,保证替换结果可执行。自愈的代价极低——只在失败时才会多一次 LLM 调用,成功路径零额外开销。
步骤缓存 + 截图理解:把 AI 步骤成本压到最低
配合两个开关,AI 步骤可以做到"偶尔调用 LLM,平时白嫖缓存":
- Save steps for future usages(
saveStepsForFuture):第一次由 LLM 生成的步骤会被写回节点保存,后续运行直接复用缓存步骤,不再调用 LLM(见 playwright.py)。页面没变就不花钱,页面变了再由 Auto Heal 兜底 - Send screenshot to LLM(
sendScreenshot):把页面截图一并发给 LLM,对视觉型元素(图片按钮、Canvas 区域)的定位明显更准
抗检测与登录态:让爬虫更像真实用户
Heym 还在两个"爬虫老难题"上做了内建支持:
- Reduce automation flags(
playwrightStealth):移除--enable-automation等自动化特征、去掉 User Agent 里的HeadlessChrome、补齐window.chrome与插件指纹,减少被反爬识别为脚本的概率 - Cookie Bootstrap 登录态恢复:启用 Auth Bootstrap 后,Heym 先从存储的
storageState或 cookies 恢复登录,检查指定选择器确认登录成功;如果恢复失败,自动执行你配置的 Fallback 登录步骤。官方推荐的用法是:先跑一次带网络捕获的节点,把$节点名.cookies存进全局变量,后续节点通过$global.authState复用登录态
运行后如何验证:输出字段与 Traces 面板
一次运行结束后,Playwright 节点的输出字段非常直白:
$playwrightNode.status——"ok"表示成功$playwrightNode.results—— 各步骤的采集结果(getText、screenshot 等)$playwrightNode.screenshot—— 截图(base64)$playwrightNode.cookies/$playwrightNode.networkRequests—— 开启登录态或网络捕获时的附加数据
AI 步骤的每次 LLM 调用(请求、响应、耗时、token 成本)都可以在 Traces 页面完整追踪,排查自愈是否触发一目了然:
常见问题 FAQ
Q1:纯步骤模式(不用 AI)也有 Auto Heal 吗?Auto Heal 依赖 LLM,只在 aiStep 上生效。纯手动步骤中某个选择器失效时,可以用每步的开关先隔离该步骤,再修正选择器。
Q2:AI 步骤会一直调 LLM 吗?不会。勾选 Save steps for future usages 后,后续运行直接复用缓存步骤,跳过 LLM 调用;只有缓存步骤失效且开启 Auto Heal 时才会额外调用一次。
Q3:能不能直接写 Playwright Python 代码?可以,把 Mode 切到 Run Code 即可。但自定义代码属于任意 Python 执行,默认关闭,需管理员设置HEYM_PLAYWRIGHT_CUSTOM_CODE_ENABLED=true启用,启用后运行在 Heym 的加固沙箱容器中。日常使用推荐步骤模式。
延伸阅读
- Playwright 节点完整文档:playwright-node.md
- Crawler 节点(基于 FlareSolverr 的轻量抓取):crawler-node.md
- 为什么选择 Heym:why-heym.md
- 节点类型总览:node-types.md
【免费下载链接】heym
Build agentic systems. Run them with confidence. Orchestrate agents, automate business processes, inspect every execution, and keep humans in control. Deploy Heym on your own infrastructure.
相关推荐
Stagehand终极指南:精通AI浏览器自动化
Stagehand终极指南:精通AI浏览器自动化 痛点:传统自动化 vs AI代理的困境 还在为浏览器自动化而头疼吗?传统框架如Playwright需要编写脆弱
人工智能AI Agent浏览器控制AI 评测LLMOpsPlaywright MCP Server 浏览器自动化实战指南
Playwright MCP Server 浏览器自动化实战指南 Playwright MCP Server 是一个基于 Playwright 的浏览器自动化工
MCP 服务浏览器控制AI 应用Stats macOS 菜单栏系统监视器实战指南:如何装好 10 个监视模块并用上远程监控
Stats macOS 菜单栏系统监视器实战指南:如何装好 10 个监视模块并用上远程监控 Stats 是一款运行在 macOS 菜单栏的免费开源系统监视器,装
桌面应用指标监控可观测性
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考