Libretto:让 AI 浏览器自动化变得确定可靠
在 AI 驱动的浏览器自动化领域,一个常见的痛点是不确定性——开发者往往依赖编码代理在运行时根据提示自行摸索,结果可能因页面变化、网络延迟或代理理解偏差而失败。近日,Saffron Health 团队开源了 Libretto,一个旨在解决这一问题的工具包,它通过提供实时浏览器环境和高效的 CLI,帮助编码代理生成确定性的自动化脚本,并支持调试现有工作流。
核心能力:从“希望”到“掌控”
Libretto 的关键转变在于,它将自动化开发从“在运行时给代理一个提示,希望它能搞定”的模式,升级为“使用编码代理生成真实的、可复现的脚本”。具体来说,Libretto 提供以下功能:
- 实时页面检查:以最小的上下文开销,让代理直接与真实浏览器页面交互,避免基于静态 HTML 的猜测。
- 网络流量捕获:自动记录 API 调用,帮助反向工程网站接口,为后续转换为直接网络请求奠定基础。
- 用户动作录制与回放:用户可以在浏览器中手动执行操作,Libretto 会记录这些动作,并生成可重放的自动化脚本(如 Playwright 脚本)。
- 交互式调试:当自动化工作流中断时,开发者可以实时调试,针对实际站点进行修复,而不是依赖模拟环境。
这些能力通过一个技能+CLI 的组合实现,编码代理可以调用 Libretto 技能来执行任务,而 CLI 则用于设置和管理工作空间。
实际应用场景
Libretto 的设计初衷是作为编码代理的一个技能使用,适用于多种自动化需求。以下是一些典型用例:
- 一次性脚本生成:例如,提示代理“使用 Libretto 技能,登录 LinkedIn 并抓取前 10 个帖子的内容、发布者、反应数和前 25 条评论”。代理会打开浏览器窗口,自动探索并生成脚本。
- 交互式脚本构建:在医疗软件如 eClinicalWorks EHR 中,用户可以演示如何获取患者保险 ID 的工作流,Libretto 会录制动作并转换为可输入的 Playwright 脚本。
- 浏览器自动化转网络请求:将现有的浏览器脚本(如从 Hacker News 获取帖子的脚本)转换为直接网络请求,提高效率和可靠性。
技术实现与设置
Libretto 通过 npm 安装,首次设置时会自动检测可用的 AI 提供商凭证(如 OPENAI_API_KEY),并下载 Chromium 浏览器。它支持多种 AI 模型提供商,包括 OpenAI、Anthropic、Gemini 和 Vertex,用户可以通过 CLI 命令切换或配置自定义模型。工作空间状态可随时检查,确保环境就绪。
行业背景与意义
在 AI 自动化工具日益普及的今天,Libretto 的出现填补了一个关键空白。许多团队依赖编码代理处理网页集成,但往往受限于代理的“黑箱”行为——它们可能因页面动态变化而失败,导致维护成本高昂。Libretto 通过引入确定性和可调试性,降低了这类集成的风险。Saffron Health 团队最初开发它是为了维护医疗健康软件的浏览器集成,开源后有望帮助更多团队简化类似任务。
小结
Libretto 不是一个独立的自动化工具,而是一个增强编码代理能力的桥梁。它让 AI 驱动的浏览器自动化从依赖概率性输出,转向基于真实交互的确定性生成。对于需要处理复杂网页集成、追求可靠性和可维护性的开发者来说,Libretto 提供了一个实用的解决方案,有望在 AI 辅助开发领域推动更稳健的实践。
