AmazonがNova Act SDKを発表!ブラウザ操作を自動化できるAIエージェント開発キットとは? | romptn Magazine

AmazonがNova Act SDKを発表!ブラウザ操作を自動化できるAIエージェント開発キットとは?

AIツール

2025年4月1日、Amazonが新たなAIエージェント開発ツール「Nova Act SDK」を発表しました。このツールは、Webブラウザでの操作を自動化するAIエージェントを、Pythonを使って簡単に構築できるようにするものです。

このSDKを使えば、ECサイトでの商品購入からオンライン予約、社内システムでの休暇申請まで、さまざまなWebタスクを自動化できます!

本記事では、Nova Act SDKの特徴や活用方法、競合製品との違いを分かりやすく解説していきます。

今回の記事で分かること
  • Nova Actとは?
  • Nova Act SDKの特徴
  • Nova Act SDKの使い方
  • Nova Act SDKとOpenAI Agents SDKの違い
スポンサーリンク

Nova Actとは?

Nova Act(ノヴァ アクト)は、AmazonのAGI(汎用人工知能)ラボが開発した、Webブラウザ操作に特化したAIエージェントモデルです。現在、このモデルを活用するための開発キット「Nova Act SDK」がPython用に提供されています。

このSDKを使うことで、開発者はWebブラウザ上で動作するAIエージェントを簡単に構築できます。例えば、ECサイトでの商品検索や購入、フォーム入力、情報収集など、人間がブラウザで行うさまざまな操作を自動化することが可能なんです!

Amazonが取り組む「Amazon Nova」シリーズの一部として開発されたNova Actは、Webブラウザを使った実世界のデジタル環境で動作するエージェントの第一歩と位置づけられています。

Amazon Novaとの関係

Nova Actは、Amazonが展開する基盤モデル群「Amazon Nova」の一部で、Novaシリーズには以下のようなモデルがあります。

  • Nova Micro/Lite/Pro: テキスト生成モデル
  • Nova Canvas: 画像生成モデル
  • Nova Reel: 動画生成モデル

その中でNova Actは、「操作」に特化したモデルとして位置づけられています。Novaシリーズの「理解・推論・操作」能力を、Webブラウザという具体的な環境に適用した実装といえるでしょう。

Nova Act SDKの特徴

Nova Act SDKには、他のAIエージェント開発ツールにはない独自の特徴があります。その主な特徴を詳しく見ていきましょう!

①高信頼なステップ制御

Nova Actの最大の特徴は、複雑なタスクを「検索」「クリック」「情報取得」などの小さなステップに分解して実行する点です。このアプローチにより、他のAIエージェントが苦手とする日付選択やドロップダウンメニュー、ポップアップなどの操作も高精度で処理できます。

Amazonの内部評価では、これらの操作において90%以上の成功率を記録。業界最高水準の精度を実現しています。

ベンチマーク説明Amazon Nova ActClaude 3.7 SonnetOpenAI CUA
ScreenSpot Web Textテキスト要素操作0.9390.9000.883
ScreenSpot Web Icon視覚的要素操作0.8790.8540.806
GroundUI WebUI要素理解と操作0.8050.8250.823
ベンチマーク結果(Amazon内部評価)

②Playwrightとのシームレスな連携

Nova Act SDKは、人気のブラウザ自動化ツール「Playwright」と統合されています。AIによる高レベルな操作指示と、Playwright APIによる細かな制御を組み合わせることで、パスワード入力やファイルダウンロードなど、AIだけでは難しい操作も柔軟に対応できます。

これにより、ログインが必要なサイトでの操作や、セキュリティ上の制約がある環境でも安全に動作するエージェントを構築できます。

③Pythonとの統合性

Nova Act SDKはPythonで記述されているため、既存のPythonプロジェクトに簡単に組み込むことができます。操作の間にテストコードやエラー処理、データ加工ロジックを挿入したり、スレッドプールで並列処理を実装したりと、開発者が業務要件に応じた柔軟な制御が可能です。

from nova_act import NovaAct
import pandas as pd
from concurrent.futures import ThreadPoolExecutor

# 複数のショッピングサイトで価格比較を行う例
sites = ["amazon.com", "walmart.com", "target.com"]
product = "coffee maker"
results = []

def check_price(site):
    with NovaAct(starting_page=f"https://www.{site}") as n:
        n.act(f"search for {product}")
        n.act("click on the first result")
        price = n.extract("find the price of the product")
        return {"site": site, "price": price}

# 並列実行
with ThreadPoolExecutor(max_workers=3) as executor:
    results = list(executor.map(check_price, sites))

# 結果を表示
df = pd.DataFrame(results)
print(df.sort_values("price"))

このように、Pythonの豊富なライブラリエコシステムと組み合わせることで、高度な自動化処理を実現できます!

④軽量かつ並列実行に最適化

Nova Act SDKは、1インスタンスが1ブラウザセッションに対応するシンプルな設計になっています。同時に複数のNova Actインスタンスを並列に実行することも可能なため、多数のWebページを対象としたスクレイピングや自動操作を高速かつ効率的に実行できます。

これにより、例えば複数の不動産サイトから物件情報を収集し、比較分析するといった処理も簡単に実装できるんです!

⑤操作ログと実行動画の記録

Nova Act SDKは、すべての操作ステップを自動でHTMLログとして保存します。また、オプションで実行過程を動画として記録することも可能です。

こうした機能により、実行結果の検証や異常時の分析、ユーザートレーニングなど、可視化を重視する業務でも安心して活用できます!

Nova Act SDKの使い方

それでは、Nova Act SDKの基本的な使い方を見ていきましょう!

日本在住では利用できないため、簡単に使い方をご紹介する形となります。

まず、Nova Act SDKを使用するには、以下の環境が必要です。

  • 対応OS: MacOSまたはUbuntu
  • Pythonバージョン: 3.10以上
  • アクセス権限: 米国在住のAmazonアカウント保有者(2025年4月現在)

インストール方法

以下のコマンドでPipからインストールできます。

pip install nova-act

認証とAPIキーの設定

Nova Act SDKを使用するには、APIキーが必要です。以下の手順で取得・設定します。

  1. Nova公式サイトにアクセス(米国在住者のみ)
  2. APIキーを生成
  3. 環境変数として設定
export NOVA_ACT_API_KEY="your_api_key"

基本的な使い方

Nova Act SDKの基本的な使い方は非常にシンプルです。

以下はECサイトで商品を探して価格比較する際のコード例です!

from nova_act import NovaAct

# オンラインショップで特定製品の価格をチェックする例
with NovaAct(starting_page="https://www.bestbuy.com") as n:
    # サイトでゲーミングノートPCを検索
    n.act("search for gaming laptop with RTX 4070")
    
    # フィルターを適用して結果を絞り込む
    n.act("filter by price range between $1000 and $1500")
    n.act("sort by customer rating from highest to lowest")
    
    # 最初の3つの結果の情報を取得
    n.act("get the name, price, and rating of the first three laptops")
    
    # 気に入った商品を見つけたら詳細ページへ
    n.act("click on the second laptop in the results")
    
    # 仕様の確認
    n.act("scroll down to specifications section")
    n.act("check if it has at least 16GB RAM and 1TB storage")
    
    # 在庫確認と配送オプションの確認
    n.act("check if the item is in stock for delivery")

このコードでは、Best Buyサイトでゲーミングノートパソコンを検索し、価格帯やレーティングでフィルタリング、詳細情報の確認までの一連の流れを自動化しています。価格比較や商品調査の際に活用できる例ですね!

対話的な実行

また、開発中は、Pythonの対話シェルから段階的に操作を試すと便利ですよ。

from nova_act import NovaAct
n = NovaAct(starting_page="https://www.amazon.com")
n.start()  # ブラウザを起動

# 操作を1つずつ実行
n.act("search for a coffee maker")
# ブラウザ上で動作確認後、次の操作
n.act("select the first result")

この方法で、各ステップの動作を確認しながら開発を進められます!

データ抽出の例

Nova Act SDKでは、Webページから構造化データを簡単に抽出できます。

from nova_act import NovaAct
from pydantic import BaseModel
from typing import Optional, List

# データモデルを定義
class Product(BaseModel):
    name: str
    price: float
    rating: Optional[float] = None
    reviews: Optional[int] = None

with NovaAct(starting_page="https://www.amazon.com") as n:
    n.act("search for coffee makers")
    # 複数の商品情報を抽出
    products = n.extract(Product, multiple=True)
    
    # 結果を表示
    for product in products:
        print(f"商品名: {product.name}")
        print(f"価格: ${product.price}")
        if product.rating:
            print(f"評価: {product.rating}⭐ ({product.reviews}件のレビュー)")
        print("---")

このように、Pydanticのモデルを使って、欲しい情報の構造を定義するだけで、AIが自動的にWebページから該当するデータを抽出してくれます!

Nova Act SDKとOpenAI Agents SDKの違い

Nova Act SDKとOpenAIの「Agents SDK」は、どちらもAIエージェント開発のためのツールキットですが、それぞれ異なる強みと特徴があります。

項目Nova Act SDKOpenAI Agents SDK
主な目的Webブラウザを操作するLLMエージェントを構築ツール連携と複雑なLLMフローを簡潔に構築
実行対象ブラウザ操作(クリック・入力・情報抽出など)任意のPython関数や外部ツール
構成要素act(操作単位)、Playwright連携、並列実行Agent / Tool / Guardrail / Handoff
トレース機能各actの実行結果をHTML形式で出力・確認OpenAIトレーシングツールと統合(可視化・デバッグ)
GUI操作実際のWebページ上のUI要素を操作操作対象はテキストやAPIベースが主
開発言語Python(Playwright + SDK)Python(軽量な構文でエージェントを記述)
実行例ECサイトでの購入、フォーム入力、情報収集など複数ツールの連携、業務プロセスの自動化、AIアプリケーション

Nova Act SDKはブラウザ操作に特化している一方、OpenAI Agents SDKはより汎用的なツール連携フレームワークとしての側面が強いといえます。プロジェクトの目的に応じて適切なツールを選択することが重要です!

Nova Act SDKの活用例

Nova Act SDKは、さまざまな業務やタスクの自動化に活用できます!ここでは、4つほどご紹介します。

①不動産検索の自動化

複数の不動産サイトから条件に合う物件を探し、距離や価格などの情報を統合するエージェントを構築できます。

class Apartment(BaseModel):
    address: str
    price: float
    bedrooms: int
    bathrooms: float
    sqft: Optional[int] = None

# 物件情報を抽出
with NovaAct(starting_page="https://www.realestate.com") as n:
    n.act("search for 2 bedroom apartments in Redwood City")
    apartments = n.extract(Apartment, multiple=True)

# 各物件の最寄り駅までの距離を調査
def add_station_distance(apartment):
    with NovaAct(starting_page="https://maps.google.com") as n:
        n.act(f"get directions from {apartment.address} to nearest train station by bike")
        distance = n.extract("find the biking distance in minutes")
        apartment.station_distance = distance
    return apartment

# 並列処理で効率的に情報収集
from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor(max_workers=5) as executor:
    apts_with_distance = list(executor.map(add_station_distance, apartments))

# 駅からの距離でソート
import pandas as pd
df = pd.DataFrame(apts_with_distance)
df.sort_values("station_distance")

②定期注文の自動実行

特定の曜日や時間に自動で注文するエージェントも簡単に構築できます!

import schedule
import time

def order_salad():
    with NovaAct(user_data_dir="./my_chrome_profile") as n:  # ログイン済みのブラウザプロファイル
        n.act("go to sweetgreen.com")
        n.act("select my usual salad")
        n.act("proceed to checkout")
        n.act("select delivery for tonight")
        n.act("complete the order")
    print("夕食のサラダを注文しました!")

# 毎週火曜日の18時に実行
schedule.every().tuesday.at("18:00").do(order_salad)

while True:
    schedule.run_pending()
    time.sleep(60)

③旅行予約の自動化

旅行の計画と予約を自動化するエージェントを構築する例です。

from nova_act import NovaAct
from datetime import datetime, timedelta
from pydantic import BaseModel
from typing import List, Optional

class FlightOption(BaseModel):
    airline: str
    departure_time: str
    arrival_time: str
    duration: str
    stops: int
    price: float

# 旅行日程を設定
departure_date = (datetime.now() + timedelta(days=30)).strftime("%Y-%m-%d")
return_date = (datetime.now() + timedelta(days=37)).strftime("%Y-%m-%d")

# フライト検索
with NovaAct(starting_page="https://www.expedia.com") as n:
    n.act("go to flights section")
    n.act("select round trip")
    n.act("set departure from New York")
    n.act("set destination to Tokyo")
    n.act(f"set departure date to {departure_date}")
    n.act(f"set return date to {return_date}")
    n.act("search for flights")
    
    # フィルターを適用
    n.act("filter for flights with 1 stop or less")
    n.act("sort by price from lowest to highest")
    
    # 上位5件のフライト情報を抽出
    flights = n.extract(FlightOption, multiple=True, limit=5)
    
    # 最安値のフライトを選択
    n.act("select the cheapest flight option")
    
    # ホテルも検索
    n.act("add hotel to this trip")
    n.act("search for hotels in Tokyo city center")
    n.act("filter for 4-star hotels or better")
    n.act("select the hotel with the best reviews in the first 5 results")
    
    # レンタカーはスキップ
    n.act("skip rental car")
    
    # 予約情報の確認
    booking_summary = n.extract("get the total price and booking details")
    print(f"予約内容: {booking_summary}")

④ソーシャルメディア管理の自動化

複数のソーシャルメディアプラットフォームでの投稿管理を自動化する例です。

from nova_act import NovaAct
import csv
from datetime import datetime

# 投稿予定コンテンツをCSVから読み込む
posts = []
with open('social_media_schedule.csv', 'r') as file:
    csv_reader = csv.DictReader(file)
    for row in csv_reader:
        posts.append(row)

# 今日の日付に対応する投稿を探す
today = datetime.now().strftime("%Y-%m-%d")
todays_posts = [post for post in posts if post['scheduled_date'] == today]

# 各プラットフォームに投稿
for post in todays_posts:
    platform = post['platform']
    content = post['content']
    image_path = post.get('image_path', None)
    
    if platform == 'twitter':
        with NovaAct(user_data_dir="./twitter_profile") as n:
            n.act("go to twitter.com")
            n.act("click on 'Post' button")
            n.act(f"type '{content}'")
            if image_path:
                # Playwrightを使って画像をアップロード
                n.page.locator("input[type='file']").set_input_files(image_path)
            n.act("click 'Post' to publish")
            
    elif platform == 'linkedin':
        with NovaAct(user_data_dir="./linkedin_profile") as n:
            n.act("go to linkedin.com")
            n.act("click on 'Start a post' button")
            n.act(f"type '{content}'")
            if image_path:
                n.act("click on 'Add image' button")
                # Playwrightを使って画像をアップロード
                n.page.locator("input[type='file']").set_input_files(image_path)
            n.act("click 'Post' to publish")
    
    elif platform == 'instagram':
        with NovaAct(user_data_dir="./instagram_profile") as n:
            n.act("go to instagram.com")
            n.act("click on 'Create' button")
            if image_path:
                # Playwrightを使って画像をアップロード
                n.page.locator("input[type='file']").set_input_files(image_path)
            n.act("click 'Next'")
            n.act(f"type '{content}' in the caption field")
            n.act("click 'Share' to publish")
    
    print(f"{platform}に投稿完了: {content[:30]}...")

ぜひ参考にしてください!

Nova Actの料金

Nova Act SDKは、Apache-2.0ライセンスでGitHubに公開されており、無料で利用できます

ただし、Nova Act SDKを使用するには、Nova APIキーが必要です。2025年4月2日時点では米国在住のAmazonアカウント保有者のみがAPIキーを取得できます。

【FAQ】Nova Act SDKに関するよくある質問

Q
Nova Actとは何をするためのものですか?
A

Nova Actは、ユーザーに代わってWebブラウザ上でタスクを実行するAIエージェントです。検索、クリック、フォーム入力、情報抽出など、人間がブラウザで行う操作を自動化できます。

Q
Nova Actはどのような種類のWebブラウザ操作を自動化できますか?
A

Nova Actは以下のようなブラウザ操作を自動化できます。

  • 検索フォームへの入力と検索実行
  • ボタン、リンク、画像などのクリック
  • フォームフィールドへの入力
  • ドロップダウンメニューからの選択
  • 日付選択(カレンダーピッカー)
  • ポップアップウィンドウでの操作
  • Webページからの情報抽出
  • スクロールやナビゲーション
Q
Nova Actを使うための条件はありますか?
A

現在(2025年4月時点)、Nova Act SDKは米国在住のAmazonアカウント保有者のみが利用できます。また、MacOSまたはUbuntuのOS環境と、Python 3.10以上が必要です。

Q
Nova Actは他のAIエージェントとどう違いますか?
A

Nova Actの主な違いは、Webブラウザ操作に特化している点と、複雑なタスクを信頼性の高い小さなステップに分解するアプローチです。特に日付選択やドロップダウンメニューなど、他のAIが苦手とする操作でも高い精度を誇ります。

まとめ

いかがでしたでしょうか?

Amazon Nova Act SDKの概要から特徴、基本的な使い方、活用例まで幅広く解説しました。

この記事で紹介したことをまとめると次のようになります。

  • Nova Act SDKはブラウザ操作を自動化するための高性能AIエージェント開発キット
  • Webでの操作を信頼性の高い小さなステップに分解し、90%以上の精度を実現
  • Pythonとの深い統合やPlaywrightとの連携で柔軟な拡張性を提供
  • シンプルなコードで複雑なブラウザ操作を自動化できる
  • ECサイト操作、旅行予約、ソーシャルメディア管理など幅広い用途に活用可能

Webサイトでの単調な操作に時間を取られていたり、業務の効率化を図りたいと考えている方にとって、かなり助けになる情報だったのではないでしょうか?

ぜひ、Nova Act SDKを活用して、Webブラウザ操作の自動化をしてみましょう。AIエージェントがあなたの「デジタルアシスタント」として活躍する日はすぐそこです!