1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Amazon Nova】自然言語でブラウザを操作するツールを作ってみた【Playwright】

Last updated at Posted at 2025-10-17

はじめに

2025年はAIエージェント元年と言われています。

AIエージェントは、質問に答えるだけでなく、メール送信やレポート作成など、人間が行うようなタスクを自律的にこなす仕組みです。

ただ、既存のAIを人間のように振る舞わせるシステムを構築するには、AIが外部システムと連携するために、複雑なプログラムを設計・開発する必要があります。

これを標準化し簡単にする仕組みとして、MCP(Model Context Protocol)が用意されています。

とはいえ、MCPサーバーが既に用意されておりクライアントも対応している領域に限られ、MCP未対応の領域では結局自作が必要です。

なので私は、AIと外部システムを都度連携させるのではなく、それらを操作できる「ブラウザ」をAIに連携させればいいと考えました。

そこで、ブラウザを自然言語で動かすAIエージェント「nova-click」を作りました。

同じ方向性の取り組みは各社でも進んでいて、OpenAIのOperator、AnthropicのClaude for Chrome、GoogleのProject Marinaなどが公開されています。

nova-clickのデモ

それではデモをご覧ください

image.png

プロンプト「Amazonで50ドル以下の最も人気のある防水Bluetoothスピーカーを検索し、カートに追加してください。」

使用方法

# リポジトリをクローン
git clone https://github.com/Naoki0513/nova-click.git
cd nova-click

# 依存関係インストール
pip install boto3==1.38.13 playwright==1.40.0
python -m playwright install chromium

# AWSクレデンシャル設定
mkdir credentials

以下の形式でaws_credentials.jsonを作成

{
  "aws_access_key_id": "AKIA…",
  "aws_secret_access_key": "xxxxxxxx",
  "region_name": "us-west-2"
}

起動

python main.py

main.py内の定数を変更して違うプロンプトやモデルを試せます。

仕組み

  1. 今開いているページのスナップショットをPlaywrightで取得します。
  2. そのスナップショットをもとに、ページの要素を操作するツールをAmazon Novaが呼び出します。
  3. 再度スナップショットを取得し、必要あれば再度ツールを呼び出す。不要であれば完了する。
  4. というループを繰り返すことで、最終的にWebのタスクを完了させます。

Amazon Novaを選んだ理由

なぜAmazon BedrockのうちAmazon Novaを用いていたかというと、それはコストパフォーマンスが良かったということです。

モデル 入力コスト($/Mトークン) 出力コスト($/Mトークン) コンテキストウィンドウ 速度
Amazon Nova Pro 0.80 3.20 最大300Kトークン 速い
GPT-5 1.25 10.00 最大128Kトークン 普通
Claude Sonnet 4 3.00 15.00 最大200Kトークン 普通

Nova Proは特にコスト面で優れており、大きなコンテキストウィンドウも持ってるので複雑なページの状態も扱いやすいです。

工夫したこと

工夫したこととしてはコンテキストエンジニアリングです。

コンテキストエンジニアリングとは、AIエージェントにおいて渡すコンテキストを工夫、最適化することによって精度を上げるという手法です。

それをどう工夫したかというと、先ほど申し上げた通りそのままページのHTML情報を全部載せるだけだと非常に量が多いです。

それをいかに最適な情報だけを渡すために、PlaywrightのARIA snapshotを用いることで、最低限のDOM情報のみ渡すことで、処理を最適化させました。

現状のユースケース

ユースケースとしては、E2Eテストの自動化が挙げられます。

例えば、Playwrightで書かれたテストコードは、画面の要素が少し変わるだけで動作しなくなることがあります。
そのため、画面の変更に合わせてコードを毎回修正する必要が生じ、運用が大変です。

しかし、ブラウザ操作AIエージェントに任せることで、自然言語だけで画面操作を実行できます。これにより、複雑なコードの運用を避け、効率的にテストを行えます。

まとめ

以上まとめです。Amazon Novaを使うことによって、より安く高速でブラウザ操作を実行できるエージェントを作成いたしました。

まだ研究段階なのですが、これからどんどん精度を高めてかつコストを安くしてスピードを早めていく必要があるかなという風に思います。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?