Show HN: Libretto – AIブラウザ自動化を決定論的に作る

Hacker News / 2026/4/16

💬 オピニオンDeveloper Stack & InfrastructureSignals & Early TrendsTools & Practical Usage

要点

  • Librettoは、コーディング・エージェントがコーディングエージェントのワークフロー向けに、決定論的で検査可能なブラウザ自動化スクリプトを生成するのを助ける「Skill+CLI」として提示されている。
  • この記事は、実行時のAI(実行時にプロンプトする方式)から開発時のAI(事前に実コードを生成する方式)へ切り替えることで、信頼性、デバッグ容易性、そして自動化ロジックの所有権が向上すると主張している。
  • DOMの脆弱なパースへの依存を減らすために、PlaywrightのUI自動化と、ブラウザセッション内での直接的なネットワーク/APIリクエストを組み合わせることで、複雑で高リスクなサイトにおいてより高い堅牢性が得られると述べている。
  • このアプローチには、手動のユーザー操作を記録すること、ステップ実行によるデバッグ、そして誤って送信したりデータを変更したりすることを抑えるためのオプションの読み取り専用モードが含まれている。
  • 著者らは、Librettoが既存ツールであるBrowseruse/Stagehandの欠点、とりわけ解釈可能性、過剰なAI呼び出しに起因するコスト、新しい自動化の生成や失敗のデバッグへの対応の面を補うことを位置づけている。

Libretto(https://libretto.sh)は、あなたのコーディングエージェントが決定的なブラウザ自動化を生成したり、既存のものをデバッグしたりしやすくする Skill+CLI です。重要な転換は、「実行時にエージェントへプロンプトを渡して、なんとかして理解してくれることに期待する」から次へ: 「コーディングエージェントを使って、読み取り・実行・デバッグできる“実際のスクリプト”を生成する」です。

デモはこちら: https://www.youtube.com/watch?v=0cDpIntmHAM。ドキュメントは https://libretto.sh/docs/get-started/introduction から始まります。

私たちはヘルスケアのスタートアップで、EHR とペイヤー(支払)ポータルの連携に向けたブラウザ自動化を 1 年かけて開発・保守してきました。これらの自動化を作り、失敗したものをデバッグする作業は、非常に時間がかかりました。

Browseruse や Stagehand のように実行時の AI を使うツールはいろいろありますが、試したところ次の理由で(1)古くて複雑なサイト(ヘルスケアのサイトを含む)では、信頼性の低いカスタム DOM パースに依存しているためうまくいきませんでした。可能な場合は、そのウェブサイト内部のネットワーク呼び出しを使うほうが、より速く、より信頼できます。(2)AI 呼び出しを大量に行う必要があるためコストが高くなりがちで、複雑なロジックを含むワークフローでは、キャッシュされたアクションに頼って確実に動くとは限りません。(3)実行時に動くので、エージェントが何をするのか解釈できません。プロンプトを正しく渡して正しいことをしてくれることに少し期待するしかありませんが、レガシーなワークフローはサイトごとに直感的でないことや一貫性のなさが多く、実行時にエージェントが勝手に正しく把握してうまくやると信用できません。(4)新しい自動化の生成にはあまり役立たず、また自動化の失敗をデバッグするのにもあまり役立ちません。

私たちは、壊れやすい実行時エージェントに頼らずに、ゴチャゴチャしていて、しかもリスクの高い環境でも、ブラウザ自動化を確実に生成し、保守できる方法が欲しいと考えました。

Libretto は、実行時エージェントの代わりに「開発時間(development-time)の AI」を使う点で異なります。つまり、スクリプトは実行時の不透明なエージェント挙動ではなく、事前に実際のコードとして生成され、読み取り・制御できます。ブラックボックスではなく、コードの主導権はあなたにあり、すべてを検査・修正・バージョン管理・デバッグできます。

実行時の DOM パースに頼る代わりに、Libretto はハイブリッドアプローチを採用します。より高い信頼性とボット検知回避のために、Playwright の UI 自動化と、ブラウザセッション内でのダイレクトなネットワーク/API リクエストを組み合わせます。

エージェントがスクリプトを生成・更新するのを助けるために手動ユーザー操作を記録し、ステップ実行によるデバッグをサポートし、エージェントがうっかりデータを送信または変更してしまうのを防ぐためのオプションの読み取り専用モードがあり、さらにあなたのコーディングリポジトリにすでにあるすべての抽象化と慣習に従うコードを生成します。

皆さんが実際にどのようにブラウザ自動化を構築・保守しているのか、また今回私たちが取ったアプローチへのフィードバックがあればぜひ聞かせてください。


コメント URL: https://news.ycombinator.com/item?id=47780971

ポイント: 100

# コメント: 35