Guide · 使用教程
Skyvern 发票下载与提取教程:授权供应商门户、字段校验和人工复核
用 Skyvern 从有权访问的供应商门户下载发票,提取结构化字段,处理去重与异常,并在人工审核后入库的实操流程。
这篇教程会完成什么
目标是从你有权访问的供应商门户下载指定日期范围的发票 PDF,提取供应商、发票号、日期、金额、币种和来源,再交给人复核后入库。教程用 Skyvern Cloud 的任务与工作流概念说明流程;没有使用真实财务账号,也不宣称任何特定门户已实测成功。界面名称和套餐可能变化,实际操作以 Skyvern 文档及你的账户为准。
这条流程只做读取、下载与待审核结果整理。付款、退款、修改供应商资料、删除文件和对外发送都不属于本教程的自动执行范围。
开始前准备
- 取得供应商门户的合法访问权限,核对该门户是否允许这种自动化访问。准备权限最小化的测试账号,不使用管理员或付款账号。
- 选一批可脱敏的样本发票,包括正常文件、同号重复文件、金额更正单、空月份和损坏 PDF。记录每个样本的正确答案。
- 确定接收位置与保留规则:原始 PDF、结构化字段、来源 URL、运行 ID 分别保存在哪里,谁能查看,何时删除。
- 选套餐。Skyvern 官网显示 Free 有 5,000 credits,但“已存凭据”在价格表中属于付费档能力,2FA/TOTP 属于 Pro 起;内建人工接管能力须核对 Enterprise 条款。不要假设免费档能完成所有登录与审批流程。具体能力以账号后台为准。
先用一个不需登录或由测试环境提供的页面验证任务描述与字段提取。确认输出格式后,再加入实际授权门户与凭据。
第一步:把需求写成可验收的任务
在 Skyvern 控制台先创建单次任务,目标 URL 指向你有权访问的测试门户。任务描述要限定日期范围、页面区域和允许的动作。示例:
在我有权访问的测试供应商门户中,打开“发票”列表,只查看 2026-08-01 至 2026-08-31 的记录。下载与筛选结果对应的 PDF,提取供应商名称、发票号、开票日期、金额、币种和来源页面。不要付款、修改资料、删除文件或向外发送信息。若页面要求额外授权、出现不确定字段或文件下载失败,停止并返回原因。
不要只写“下载所有发票”。范围不清会导致多下载、重复下载,甚至读取不该处理的文件。任务是否成功应由文件和字段验收决定,不以 Agent 的结束提示为准。
第二步:使用受控凭据登录
按 Skyvern 凭据文档在支持的套餐或部署方式中添加专用凭据,并让工作流引用凭据 ID。不要把密码、TOTP 秘钥、会话 cookie 写进提示词、Markdown 文档或普通环境日志。给凭据设置负责人、轮换日期和最小权限,限制谁能发起运行及查看回放。
对首次登录、二次验证和会话过期分别做测试。若目标网站要求人机确认或额外人工批准,遵守其规则和组织政策;不能因为平台能处理某类页面挑战,就推断你被授权绕过网站的安全控制。失败时暂停运行并通知负责人员。
第三步:把单次任务拆成工作流
单任务成功后再进入 可复用工作流。建议使用以下逻辑顺序:登录或恢复会话 → 导航到发票列表 → 应用日期筛选 → 验证筛选条件 → 下载 PDF → 提取字段 → 校验 → 输出待审核记录。Skyvern 的文档与示例介绍了导航、提取、验证、文件下载等块;具体块名和可用性以当前编辑器为准。
把门户 URL、开始日期、结束日期作为运行参数,不要为每个月复制一份新工作流。对“没有任何发票”的月份输出空结果和运行记录,而不是把上个月的文件当作本月结果。对分页列表逐页处理,并对每个文件留下原始页面位置。
第四步:定义结构化输出与去重规则
建议每份文件至少输出这些字段:
{
"supplier_name": "示例供应商",
"invoice_number": "INV-2026-001",
"invoice_date": "2026-08-15",
"total_amount": "1280.00",
"currency": "USD",
"source_url": "https://example.invalid/invoices/001",
"file_name": "INV-2026-001.pdf",
"run_status": "pending_review"
}
示例域名与金额仅用于说明,不对应真实发票。金额保留为十进制字符串,避免浮点精度问题;日期统一时区和格式。以“供应商标识 + 发票号 + 日期”做初步去重,再用文件哈希和金额辅助判断。更正单不能简单当作重复,必须交给财务人员判断。
每条记录都应保留原文件、来源 URL、运行 ID 和提取时间。若 OCR 无法读清金额、币种不一致、字段缺失或 PDF 与页面摘要冲突,标记“待人工核对”,不要自动补值。文件下载失败要能重试,但重试不得重复入库。
第五步:设置人工审核门槛
把运行结果交给指定审核人逐份检查供应商、发票号、日期、金额、币种、PDF 内容和是否重复。生产流程中,关键财务入库动作应只有审核通过后才执行。Skyvern 官网将内建 human-in-the-loop 列在 Enterprise 档;如果你的套餐没有该能力,就在下游工单或财务系统中实现审批,不要把它描述成所有套餐自带的开关。
审核记录至少包含审核人、时间、决定、差异原因与对应运行 ID。拒绝的记录应退回重跑或手工处理,不应由 Agent 直接修改金额后重新提交。任何付款、退款或供应商账号变更应保持独立授权流程。
第六步:用异常矩阵验证
至少对以下情况各跑一次:空结果、重复发票、同号更正单、多币种、金额缺失、PDF 无法打开、分页、会话过期、密码失效、页面改版、文件下载超时、门户维护、人工拒绝。记录每次运行的截图/回放、输出和人工处理时间。若需要使用录屏或保存页面内容,提前核对数据最小化、保留期限和访问控制。
试点验收建议明确数字目标,例如:30 个已知答案样本中,发票号和金额均正确且文件可追溯的比例达到团队要求;错误记录 100% 被阻止入库;重复文件 100% 被标记。阈值由企业依据业务风险制定,不能照搬厂商演示或本文示例。
第七步:预算、上线和维护
官方价格页列出 Free 5,000 credits、Hobby $29/月含 30,000 credits、Pro $149/月含 150,000 credits。credits 与执行时长、页面复杂度、重试等有关。先记录一周真实样本的 credits、失败次数和人工分钟数,用“全部成本 ÷ 审核通过的发票数”估算,而不是用月费除以总下载数。
上线时先覆盖一个门户、一个月份;确认没有越权、错误入库和重复文件后,再扩展到多个门户。为每个门户指定凭据负责人和故障联系人;页面更新后先用测试样本验证新版工作流。保留暂停入口、人工处理流程和回滚到手工下载的方法。
什么时候改用别的方案
如果供应商提供稳定、获授权的发票 API,优先评估 API 获取,权限和幂等通常更容易控制。若团队已有 Playwright 和监控,只缺云浏览器,可比较 Browserbase;若要快速试一次托管 Agent,可看 Browser Use 对比。无论使用哪款工具,最终都要以可复核的正确文件和合理成本为准。
参考资料
常见问题
- Skyvern 免费档能直接登录所有供应商门户吗?
- 不能假设。官网价格表将已存凭据列于付费档,2FA/TOTP 属于更高档;具体目标网站的权限和认证方式还需单独验证。
- 发票提取的最小必需字段是什么?
- 至少保存供应商、发票号、日期、金额、币种、原始 PDF、来源 URL 和运行 ID;缺失或冲突字段应转人工核对。
- 如何避免重复下载后重复入账?
- 先用供应商标识、发票号和日期去重,再比对文件哈希与金额。更正单、贷项单等不能一概删掉,应由财务判断。
- Skyvern 的人工审批功能所有套餐都有吗?
- 官网把内建 human-in-the-loop 列在 Enterprise 档。其他档位可在下游工单或财务系统设计人工审核,不应假设有同样的内建能力。
- Skyvern 自动下载的发票可以直接付款吗?
- 不应自动付款。下载与提取属于读取流程,金额核验、入库与付款要有分离的授权和人工审批。
- 什么时候应该改用 API 而不是浏览器自动化?
- 供应商提供稳定且获授权的发票 API 时,先评估 API;它通常更容易处理权限、分页、幂等和错误返回。