Skyvern 浏览器自动化平台:如何 10 分钟跑通第一条 AI 工作流
【免费下载链接】skyvernAutomate browser based workflows with AI项目地址: https://gitcode.com/GitHub_Trending/sk/skyvern
Skyvern 是一个开源的浏览器自动化平台,你给它一句自然语言目标,它自己驱动浏览器完成登录、填表、提取、下载,不需要你维护任何选择器。适合想替代传统脚本化 RPA 的开发者、内部工具团队,以及需要处理多个外部网站操作的业务人员。
一个保险报价的真实场景
某保险经纪公司每月要从 20 家供应商门户拉取报价。过去由专人逐家操作:登录、填车型信息、提交、记录报价,一次约 15 分钟,且经常因页面改版或漏填字段返工。
接入 Skyvern 后,流程变成:一个工作流自动登录各供应商系统,填写报价表单,把最终保费提取为 JSON 并汇总。同一种"登录—填表—提取"的组合,换成供应商发票下载、政府系统登记,只需要改提示词和凭据,不需要重写脚本。
三步看懂感知-执行循环
Skyvern 执行循环示意:对同一页面反复执行"截图—LLM 规划—动作执行",直到目标达成
每个任务按循环推进,一轮只有三步:
- 截屏。把当前页面截图连同任务目标、已执行动作一起交给视觉 LLM。
- 规划。LLM 识别页面可交互元素,返回下一步动作(填写某字段、点击某按钮、提取数据)。
- 执行。Playwright 引擎在内置 Chromium 中执行动作,然后回到第 1 步,直到目标达成或触达步数上限。
关键点在于:它不依赖预写死的 XPath 或 CSS 选择器,靠的是对页面截图的理解。网站改版后通常只需微调提示词,而不是修脚本。
把部署压到两条命令
最短路径是 Docker Compose:
git clone https://gitcode.com/GitHub_Trending/sk/skyvern && cd skyvern cat > .env <<'EOF' ENABLE_OPENAI=true OPENAI_API_KEY=你的密钥 LLM_KEY=OPENAI_GPT5_5 EOF docker compose up -d它会拉起 Postgres、API 服务和 Web UI 三个容器。1–2 分钟后访问http://localhost:8080即可用;API 密钥自动生成在.skyvern/credentials.toml。在 UI 里新建一个 Task,写入目标"打开 Hacker News,提取排名第一的帖子标题",点 Run 就是第一个最小用例——Recording 标签页会逐步回放每一步的截图、动作和 LLM 的推理。
不想装 Docker 的话,pip 路径同样可用:
pip install "skyvern[all]" skyvern quickstartquickstart默认使用 SQLite,免去数据库配置。Python 要求 3.11–3.13。
首次启动的三个常见坑
- 403 Invalid credentials:密钥复制不完整。删掉
.skyvern目录重启服务即可重新生成,注意不要在密钥前后带入换行符。 - 端口与监听:容器默认只监听 localhost;要暴露到局域网,需要改
docker-compose.yml的端口绑定,并自行在反代层加鉴权。 - 内存:浏览器跑在 API 容器内,文档建议 4GB 起步、生产 8GB 以上,内存不足时任务会明显变慢或被系统杀掉。
让登录和 2FA 不再是手动环节
很多网页流程的卡点在登录。Skyvern 的凭据体系支持自有凭据、Bitwarden、1Password 和自定义 HTTP 凭据接口四种来源,凭据 ID 直接绑定到工作流的登录块上。二次验证支持 TOTP 动态口令,来源覆盖 QR 扫码、邮箱和短信下发的三种形态。
登录块只需要描述目标和引用的凭据,不要把明文密码写进提示词。适合供应商门户、内部后台这类必须登录的系统;对完全不涉及登录的公开网站,这一节可以跳过。
用块库把多步流程固化下来
Skyvern 工作流编辑器:左侧画布串联登录块与任务块,右侧块库按需添加登录、提取、验证、循环等模块
单步目标用 Task 就够了;一旦流程超过三步且需要固定顺序,就值得固化成 Workflow。编辑器左侧画布按箭头串联块,右侧块库提供登录块、浏览器任务块、提取块、验证块、For 循环、HTTP 请求块、文件解析块等类型,全部可参数化。
一个典型组合是:登录块进入供应商后台,任务块筛选出本季度发票列表,循环块逐条下载,最后汇总输出。这条工作流之后每次执行只改参数(账期、客户名),不改结构。
让输出变成可以消费的 JSON
给任务传入data_extraction_schema后,Skyvern 的提取结果会按你声明的字段返回,而不是自然语言段落。这样下游 API、脚本或表格就能稳定消费结果,不用每次写解析逻辑。
每次运行还带有完整录像:每一步的截图、执行的动作、LLM 的推理记录都在。任务失败时,回放录像通常能定位到具体是哪一步的哪个判断偏了。
Skyvern Runs 页面的 Recording 标签页:回放浏览器每步操作,并展示对应的 LLM 推理与最终 JSON 输出
边界与限制,先看清再上线
- 成本随步数线性增长。每走一步就是一次截图加一次 LLM 调用,
MAX_STEPS_PER_RUN(默认 10)是最直接的预算阀门,复杂任务要按需调大并接受相应成本。 - 自托管版没有云端的住宅代理池和验证码求解。批量访问有风控的外部网站容易被拦截,这是自部署与云服务差距最大的一项;内网系统则不受此影响。
- 浏览器与 API 同容器运行。多任务并发时内存线性上涨,需要横向扩容时应切到 Kubernetes 部署,仓库内
kubernetes-deployment/目录有现成清单。 - LLM 是硬前提。所有规划都依赖你提供的模型密钥(OpenAI、Anthropic、Bedrock、Gemini、Ollama 等),模型选型直接决定每一步的准确性和单价。
延伸资料
自托管的前置条件、浏览器模式和存储配置见 docs/developers/self-hosted/;数据库迁移脚本按时间戳排在 alembic/versions/,升级排障时可对照版本差异;浏览器自动化 SDK 封装在 skyvern/library/,任务执行核心逻辑在 skyvern/webeye/。
【免费下载链接】skyvernAutomate browser based workflows with AI项目地址: https://gitcode.com/GitHub_Trending/sk/skyvern
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考