Lightpanda: Chromeより60倍速い64MBの軽量ブラウザ

BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술

Transcript

00:00:00今回はLightPandaを紹介します。これはAIエージェント用にゼロからZigで書かれたヘッドレスブラウザで、WebKitやChromiumを使用しません。そのため、ヘッドレスChromeに比べて最大9倍高速で、メモリ使用量も16分の1に抑えられています。
00:00:12Chrome DevToolsプロトコルを公開しているため、PuppeteerやPlaywrightと一緒に使えますが、ピクセル描画は行わず、Service Worker、IndexedDB、CORSといった一般的なWeb APIもサポートしていません。
00:00:22では、なぜOpenClawやCellsエージェントブラウザで使われているのでしょうか?チャンネル登録をして、一緒にその理由を探りましょう。
00:00:30LightPandaは2024年頃、Pierre氏、Francis氏、Kate氏によってリリースされました。Claude Codeが登場するずっと前、ChatGPTの人気が出始めた頃のことです。
00:00:41最初はWebスクレイピングや自動化ツールとして始まりましたが、その後AIエージェントが爆発的に普及したため、AIエージェントに注力し、資金調達にも成功しました。
00:00:51しかし、これは単なるAIブームに乗じたリブランドだったのでしょうか、それとも実際にエージェントにとって有用なのでしょうか?
00:00:56今回は、独自のWebFetchツールを備えたエージェントをClaude SDKで構築し、ブラウザエンジンとしてChromeとLightPandaの両方を使用して、性能差やその理由を比較検証します。
00:01:09LightPandaはMCPサーバーや独自のクラウドサービスも提供していますが、今回は可能な限りローカル環境で検証を行います。
00:01:16まずはLightPandaの基本的な使い方を確認してから、WebFetchツールの作成に進みます。
00:01:22手元にあるこちらのスクリプトは、Wikipediaから複数のリンクを取得するものです。
00:01:27仕組みとしては、まずLightPandaサーバーを作成し、Puppeteerを使ってそのサーバーに接続します。
00:01:32処理時間を計測するコードを組み込んでおり、Wikipediaのページにアクセスして、「参考文献」セクション内のすべてのリンクを抽出して表示します。
00:01:40どのような画面かイメージするために、Webブラウザのページのここにある「参考文献」セクションを見てみます。
00:01:44ご覧の通り、最初の参考文献リンクは「Device Atlas」で、下の表示と一致しています。
00:01:50LightPandaはすべてのリンクを344ミリ秒で発見しました。
00:01:53同じことをChromeで試すと、392ミリ秒かかります。
00:01:58これだけでは大きな差はありませんが、スクレイピングするページ数が多くなると劇的に状況が変わります。
00:02:04こちらは先ほどと似たスクリプトですが、一つ大きな違いがあります。
00:02:07Wikipediaの1ページではなく、100ページからリンクを取得するようにしました。
00:02:11定義を確認すると、HTTPS、JavaScript、Mongo、Pythonなど、Webブラウザからフェッチするページがずらりと並んでいるのがわかります。
00:02:19これをLightPandaで試すと、全体で18秒で完了しました。
00:02:23同じことをChromeで行うと、約30秒かかります。
00:02:26実行の状況によっては、60秒かかることもありました。
00:02:29では、エージェントを介して実行した場合、パフォーマンスにどのような違いが出るか見てみましょう。
00:02:32Claude SDKを使用した非常に基本的なエージェントを用意しました。ここに、このプロンプトを実行するWebFetchツールがあります。
00:02:39JavaScriptにおけるArrayのMap、Filter、Reduceの違いを要約し、MDNの特定のリンクにアクセスして情報を取得します。
00:02:48下部にはエージェントのループ処理があり、ここではツールが一つだけなので、その特定のツールが使われているかを確認するif文があります。
00:02:54もしツールが増えれば、状況は変わるでしょう。
00:02:56こちらが、ツール呼び出しが行われるたびに実行されるWebFetch関数です。
00:03:00その下にはメトリクスがあり、ブラウザのメモリ使用量を計算する関数があります。
00:03:04このプロジェクトでは、Chrome DevToolsプロトコルを使用してLightPandaとChromeの両方を利用します。
00:03:09ポートを指定してサーバーを起動し、Puppeteerがそのポートに接続してからエージェントを実行します。
00:03:14「LightPanda serve」でサーバーを起動してからエージェントを実行します。MDNから3つのURLを取得し、Claudeに情報を渡します。
00:03:22そして、Map、Filter、Reduceの違いについての回答と、メトリクスが返ってきました。
00:03:29次にChromeで試してみます。LightPandaは完全なブラウザではなく、Chromeのようなレベルのキャッシュ機能を持たないため、フェアにするためにChromeのデフォルトキャッシュも無効にしておきます。
00:03:38これなら公平に比較できます。
00:03:40同じ処理をChromeで実行します。これも同様にMDNからURLを取得し、Claudeから回答を得ます。
00:03:46しかし、ここからが劇的に異なります。
00:03:48結果を並べて比較してみましょう。左がLightPanda、右がChromeです。どちらも3回のフェッチを行っています。
00:03:54しかし、LightPandaのフェッチ時間はChromeより遥かに速く、2倍近い差があります。
00:03:59トータルの処理時間は同じですが、
00:04:01こちらをご覧ください。LightPandaのブラウザメモリはわずか66メガバイトですが、Chromeは829メガバイトです。
00:04:0710倍以上の開きがあります。エージェントのメモリ消費量もLightPandaの方が若干小さいですが、ブラウザエンジンを変えたことによる影響はそこまで大きくはありません。
00:04:17正直なところ、ヘッドレスブラウジングにChromeを二度と使うべきではありません。
00:04:20なぜなら、LightPandaはChromeより最大21倍も軽量で、高速かつ省メモリだからです。
00:04:28ただし、LightPandaの代わりにChromeを使いたくなるシナリオが一つだけあります。
00:04:33先ほどのJavaScriptの質問を、「東京のAirbnbの物件を5つ取得して」というプロンプトに変更してChromeで実行すると、期待通りの結果が得られます。
00:04:42しかし、LightPandaで同じことを試すと、Airbnbのリストが取得できていないことがわかります。
00:04:47これはAirbnbがシングルページアプリケーション(SPA)だからです。LightPandaもJavaScriptを実行するためのV8エンジンを搭載していますが、
00:04:54それは言語レベルの実行機能に限定されています。
00:04:57つまり、async/await、クロージャ、Promiseといった機能です。
00:05:00しかし、Airbnbのような複雑なSPAになると、LightPandaではレンダリングが難しく、必要な情報をすべて取得するのには苦労します。
00:05:07SPAを正しくレンダリングできないという点を除けば、将来的には改善されるかもしれませんが、
00:05:13LightPandaは、Web検索やWeb取得を行うカスタムエージェントに追加するツールとして非常に優れています。
00:05:20エージェントによるWebブラウジングといえば、もしClaude Codeに、普段ログインして使っているChromeセッションを安全に操作させたいなら、
00:05:27こちらの「Chrome MCPサーバーを使ったリモートデバッグ」についての動画をチェックしてみてください。

Key Takeaway

AIエージェントのWebブラウジングにおいて、LightPandaはChromeより最大21倍の軽量化と大幅な高速化を達成し、メモリ消費を829MBから66MBまで削減する。

Highlights

  • LightPandaはAIエージェント用にZig言語で開発されたヘッドレスブラウザであり、WebKitやChromiumを使用しない。

  • 100ページのスクレイピングにおいて、LightPandaは18秒で完了し、Chromeと比較して約40%の時間短縮を実現した。

  • メモリ消費量はLightPandaが66MB、Chromeが829MBであり、約12.5倍の差がある。

  • Chrome DevToolsプロトコルを公開しているため、PuppeteerやPlaywrightとの連携が可能。

  • JavaScriptの言語機能はサポートするが、複雑なシングルページアプリケーション(SPA)のレンダリングには対応していない。

Timeline

LightPandaの概要と特徴

  • Zig言語でゼロから記述されたヘッドレスブラウザである。
  • AIエージェント専用に最適化され、一般的なWeb APIの一部を非対応にすることで軽量化を実現している。

WebKitやChromiumへの依存を排除したブラウザエンジン。AIエージェントの自動化ツールとして設計され、ピクセル描画やIndexedDBなどのリソースを消費するAPIを省くことで、Chrome比で最大9倍の高速化と16分の1のメモリ削減を達成した。

Chromeとのパフォーマンス比較

  • Wikipediaの1ページ処理では差が小さいが、100ページ処理ではChromeの30秒に対してLightPandaは18秒で完了する。
  • ページ数が増えるほどLightPandaの処理速度優位性が顕著になる。

実際のスクレイピング環境における検証結果。単一のページ取得ではミリ秒単位の差であったが、100ページを連続して取得するケースでは、Chromeで最大60秒かかる場合がある処理を大幅に効率化した。

メモリ使用量とエージェント実運用

  • エージェント実行時のブラウザメモリ消費量はLightPandaが66MB、Chromeが829MBである。
  • 同じ処理環境下で、LightPandaはChromeより2倍近いフェッチ速度を記録した。

Claude SDKを使用したWebFetchツールの検証。Chromeのデフォルトキャッシュを無効にした公平な条件下でも、LightPandaは大幅なメモリ節約とレスポンス速度の向上を示した。

制限事項と用途

  • Airbnbのような複雑なシングルページアプリケーション(SPA)の完全なレンダリングには未対応である。
  • V8エンジンによる言語レベルのJavaScript実行は可能だが、DOMの描画を伴う複雑なUI操作には不向きである。

Airbnbなどのサイトで実証された通り、LightPandaはJavaScriptの実行環境は持つものの、SPA特有の動的レンダリングを完遂できない場合がある。検索やデータ取得目的のカスタムエージェントにおける補助ツールとして適している。

Community Posts

View all posts