Playwrightとは何かの続き。ツールそのものの話はそちらに譲り、ここでは「エージェントと組むと何が変わるのか」を書く。
RPAの定番構成が抱えていた壁
ブラウザ操作の自動化というと、長らく定番だったのはExcelとWindowsを土台にした構成だ。マクロやスクリプトでシナリオを書き、決まった手順を機械になぞらせる。手打ちの繰り返し作業から人間を解放する、という意味では確かに効果があった。
ただし、この構成には昔からついて回る弱点がある。シナリオを書くのも直すのも、結局は人間の仕事だということだ。多くのRPA製品は、「シナリオ」を組み立てる画面の中にスクリプトを仕込む形が一般的で、画面の見た目が少し変わっただけでシナリオが動かなくなる。直すとなると、シナリオ側もスクリプト側もどちらも面倒だ。プログラマーである必要はなかったが、それに近い知識は求められたし、習熟にかかる時間がとにかく長かった。 シナリオが長くなるほど修復は難しくなり、そもそもシナリオを組み立てる作業そのもののコストが高い。
この構成でよく使われてきた言語の1つがVBScriptだが、Microsoft公式のアナウンスによると、JavaScriptやPowerShellのような、より高度な言語への置き換えを進めているという。
長年RPAの土台に使われてきた言語そのものを、開発元がもう推奨していない。これは、従来のRPAの定番構成が抱えていた「シナリオが書きにくい・直しにくい」という弱点を、開発元の側から裏づけているように見える。
管理人も、同じ罠にはまった
管理人も、エージェントと一緒に自動化の仕組みを作っていて、同じ罠にはまったことがある。「シナリオを作らなければ」「YAMLで汎用的に組もう」——この発想そのものが、変な縛りになっていた。 手順を人間が読み書きできる形で残しておけば、あとから直しやすいはずだと考え、YAMLで手順を定義する方式を採った。
だが実際にやってみると、これは「シナリオ主導型」の時代の弱点を、形を変えて引き継いだだけだった。「人間主導」「シナリオ主導」から、結局抜け出せていなかった、と後から気づいた。同じように、実行するためのCLIメニューまで作り込んだこともあったが、これも要らなかった。エージェントにPlaywrightとJavaScriptのコードをそのまま書いてもらい、自然言語で「これをやって」と頼むほうが、何倍も楽で、効率も精度も良かった。
「UIは要らない」——これがエージェント時代の重要なポイントの一つだと思う。 シナリオを組むための画面も、実行するためのメニューも、人間がエージェントとやり取りする窓口として作っていたものだ。エージェントに直接、自然言語で頼めるなら、その窓口自体がまるごと不要になる。もちろん、複数人で使う、頻繁に同じ操作を繰り返す、といった場面ではUIがあったほうがいい。ただ、少なくとも「自分ひとりで、都度やりたいことを変えながら回す」用途では、UIを作り込む前に、まず自然言語で頼んでみる価値がある。
シナリオを書く発想そのものをやめる
その後、シナリオを事前に人間が書いておくという前提そのものを外した。「このページからこのページに移動して、ログインして、この項目を入力して送信して」という指示を自然言語で渡すだけにし、状況の把握・次の一手の判断・つまずいたときのやり直しまで、すべてエージェントに任せる形に変えた。
これが成立するのは、Playwrightとは何かで触れた「アクセシビリティ・スナップショット」の仕組みがあるからだ。エージェントは、画面のスクリーンショットを目で追うのではなく、ページの構造をデータとして読み、状況を把握したうえで次の操作を自分で決める。人間が座標やボタンの位置をあらかじめ書いておく必要がない。
この切り替えで変わったのは、次の3点だ。
- シナリオを書く——事前に人間が手順を書く作業がなくなり、頼みたいことを自然言語で伝えるだけになった
- 実行する——エージェントが状況を把握しながら操作し、想定外の画面が表示されてもその場で判断する
- 直す・広げる——動かなくなったときも、機能を増やしたいときも、YAMLを開くのではなく自然言語で頼み直すだけで済む
シナリオ構築から実行、修正、拡張まで、一連の流れをエージェントが引き受ける形になった、ということだ。
ブラウザでできることは、たいてい自動化できる
Playwrightとは何かにも書いたとおり、ブラウザで人間ができることは、基本的にPlaywrightでほぼ自動化できる。 この記事で書きたかったのはその先で、その自動化の「シナリオを書く」という作業自体も、エージェントに任せられるということだ。
RPAが解決してきたのは「繰り返し作業から人間を解放する」ことだった。エージェントとPlaywrightの組み合わせが解決するのは、その一段上——「シナリオを書く・直す・広げるという、RPAを運用する側の仕事」からの解放だと思う。習熟に時間がかかり、シナリオが長くなるほど修復が難しくなる、というその重さを、丸ごと軽くした。これは本当に革命的な変化だと感じている。