Dance with Agents

Playwrightとは何か――エージェントと組めば、自動化は魔法になる

実践

RPAからエージェントへ

管理人は、かなりの数の作業をエージェントとPlaywrightの組み合わせで自動化してきた。UiPathのような既存のRPAツールは使っていない。エージェントに自然言語で頼むだけで、シナリオの作成も修正もほぼ思いのままにできる。感覚としては、もう魔法に近い。

その仕組みの土台になっているのがPlaywrightだ。

Playwrightとは

公式サイトによると、Playwrightはテスト・スクリプト・AIエージェントのための、信頼性の高いWeb自動化を可能にするツールだ。

Microsoftが開発・維持しているオープンソースのツールで、Chromium・Firefox・WebKitという3種類のブラウザエンジンすべてを、Windows・Mac・Linuxを問わず同じコードで動かせる。対応言語はTypeScript・Python・.NET・Javaの4つ(公式ドキュメント)。

もともとは「自動テスト」の文脈で語られることが多いツールだが、公式が挙げる用途はテストだけではなく、スクリプト(作業の自動化)とAIエージェントも含む。この記事で中心に書くのは、テスト以外のこの2つの使い方だ。

読み方と、ちょっとした小ネタ

「プレイライト」と読む。play(劇)+wright(〜を作る人)の複合語で、もともと英語では「劇作家」を意味する単語だ。wrightは「職人・製作者」を表す古い英語で、船大工のshipwright、車大工のwheelwrightのように、特定分野の職人を指す接尾辞として使われてきた(etymonline)。プログラムを「書く」道具に、たまたま「作る人」を意味する単語が含まれている、というのは面白い符合だと思う。

管理人はこの単語をよく使うわりに打つのが面倒なので、日本語入力の単語登録に「ぷれいら」→「Playwright」を登録している。地味だが、頻出する固有名詞ほどこの手の登録で打つ回数が減る。

何に使えるか

ブラウザで人間ができることは、基本的にPlaywrightでほぼ自動化できる、と言ってしまっていい。クリック、入力、スクロール、ファイルのアップロード、タブを跨いだ操作——人間がマウスとキーボードでやっていることの大半に、対応する操作がある。

具体的には、こういった作業が対象になる。

  • ログインしてから何ページか進む、といった一連の操作の自動化
  • フォームへの入力と送信を、件数分繰り返す
  • ページに表示されている情報を取得する(いわゆるスクレイピング)
  • 複数のサイトやページを順番に巡回して、状態を確認する
  • 作ったWebアプリやサイトが、意図どおりに動くかを機械的に確認する(本来のテスト用途)

どう始めるか

コマンドとしてはシンプルで、npm経由で導入する。

npm init playwright@latest

これで、必要なブラウザ本体(Chromium・Firefox・WebKit)ごとインストールされ、すぐ動かせる状態になる。

ただ、今のいちばん現実的な始め方は「自分でコードを書く」ことではない。エージェントに「Playwrightで◯◯を自動化して」と自然言語で頼むだけで、環境構築からコードの作成まで面倒を見てくれる。

エージェントとの相性がとくにいいのには理由がある。Microsoftは、PlaywrightをMCP(エージェントに道具を持たせる、共通の差し込み口)経由で使える公式サーバー、playwright-mcpも提供している。公式の説明によると、このサーバーは構造化されたアクセシビリティ・スナップショットを通じて、LLMがWebページとやり取りできるようにする。

「アクセシビリティ・スナップショット」というのは、画面のスクリーンショットではなく、ページの中にどんな要素(ボタン、入力欄、リンク……)がどう配置されているかを、構造化されたデータとしてエージェントに渡す仕組みだ。エージェントは画像を目で追う代わりに、この構造を読んで「次にどこを押すべきか」を判断する。だからこそ、少々レイアウトが変わった程度ではつまずきにくい。

冒頭で「RPAからエージェントへ」と書いた理由はここにある。 シナリオを事前に書いておかなくても、エージェントがその場でページの構造を読んで判断できるからだ。この先の話——事前にシナリオを書く発想そのものをやめた経緯——はシナリオを書くのをやめた話に書いた。

仕事の自動化の記事

仕事の自動化のページへ →