見出し画像

Sentientというライブラリを使ってAIにブラウザを操作させてみた!

はじめに

最近、さまざまなタスクを自動化するためのツールやライブラリが登場しています。その中でも、”Sentient”というエージェントが指示に従ってブラウザを操作してくれるライブラリがあり、各AIのAPIを使用することで簡単な指示でブラウザを制御してくれるOSSがあったので実際に使用してみます。

Sentientとは

Sentientは、Pythonで開発された強力なAIフレームワークであり、主に自動化やデータ収集のためのタスクを効率的に実行することを目的としています。このライブラリは、高度な機械学習アルゴリズムを駆使しており、特にブラウザ操作やウェブデータの収集に特化しています。

主な特徴

  1. 直感的なインターフェース: Sentientは、初心者でも使いやすいシンプルなAPIを提供しています。これにより、複雑な機械学習モデルを扱うことなく、簡単にAIエージェントを構築できます。

  2. 高度な自動化機能: ウェブサイトのナビゲーション、フォームの入力、データの抽出など、さまざまなブラウザ操作を自動化できます。これにより、手動での作業を大幅に削減し、時間を節約することが可能です。

  3. 柔軟なカスタマイズ: ユーザーのニーズに応じて、Sentientの機能をカスタマイズできます。特定のタスクに特化したエージェントを簡単に作成できるため、さまざまなビジネスシーンで活用できます。

  4. コミュニティとサポート: Sentientはオープンソースプロジェクトであり、活発なコミュニティが存在します。公式フォーラムやGitHubでのサポートが充実しており、問題解決や情報交換が容易です。

手順

ライブラリのインストール

ターミナルを開き、以下のコマンドを実行します。

pip install sentient

ブラウザを開発モードで起動

ChromeをターミナルからPort 9222の開発モードで起動する必要があります。
以下のコマンドを使用してChromeのインスタンスを起動します。

  • Macの場合

% sudo /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
  • Macの場合(Brave)

% sudo /Applications/Brave\ Browser.app/Contents/MacOS/Brave\ Browser --remote-debugging-port=9222 --guest
  • Linuxの場合

$ google-chrome --remote-debugging-port=9222
  • Windowsの場合

"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222

この際に、すべてのChromeを閉じてから実行してください

APIキーの設定

OPENAI_API_KEYを取得し、環境変数に設定します。

% export OPENAI_API_KEY="sk-APIキー"

Windowsの場合は環境変数の編集から新規作成でOPENAI_API_KEYの値に設定してください。

私はtogether aiの無料クレジット分を使用しました。 こちらを使用する場合は環境変数にTOGETHER_API_KEY を使用してください。

その他のプロバイダー(ex.AnthropicやOllama)でも設定可能です。

実行例

プログラム

Sentientを用いて最新のセキュリティニュースのページを表示させるプログラムは以下です。

from sentient import sentient
import asyncio


custom_instructions = """
1. Google検索を使用してください
"""
custom_goal = "セキュリティに関する最新のニュースを調べて記事を表示してください" 

result = asyncio.run(sentient.invoke(
    goal=custom_goal,
    task_instructions=custom_instructions,
    provider="together",
    model="meta-llama/Llama-3.3-70B-Instruct-Turbo"))

sentient.invokeにおけるgoalには指示の完了状態、task_instructionsにはタスクの完了までの実行における具体的な指示内容、providerには使用しているプロバイダー名、modelにはそのモデル名を入力します。

ログ

プログラムを実行すると、以下のようなログが出力されます。(結果の一部をマスキングしています。)

==================================================
Current State: State.BASE_AGENT
Agent: sentient
Current Thought: I have been given the objective to調べて記事を表示してください, which translates to 'investigate and display the article'. The current webpage is https://www.security-next.com/165647, and it appears to be an article about a security incident. The DOM representation of the 
page shows various elements, including links, text, and advertisements. My next step will be to confirm that the current webpage is indeed the article I am looking for.
Plan:
 1. Confirm that the current webpage is the article
 2. Verify that the article is about the latest security news
 3. Extract relevant information from the article
Current Task: Confirm that the current webpage is the article
Completed Tasks:
  [] 1. Search for 'セキュリティに関する最新のニュース' on Google
  [] 2. Click on the first news article link
  [] 1. Confirm that the current webpage is the Security NEXT news website
  [] 2. Find the latest news article on the webpage
  [] 1. Confirm that the current webpage is the article
==================================================

Current Thoughtは現在のエージェントの思考内容、Planは思考に対しての実行計画、Current Taskは現在行っているタスク、Completed Tasksはこれまでに完了したタスクを表しています。
この時点でブラウザは以下のように検索トップにあったSecurity NEXTの記事を表示しておりました。

指示通りセキュリティに関連するニュースが表示されており、動作確認完了です。

まとめ

今回は、Sentientを使ってAIエージェントがブラウザを操作する手順について解説しました。実行手順や具体的なコード例を通じて、ブラウザ操作の自動化がどれほど便利かを感じていただけたと思います。実行結果についてですが、最新ニュースを表示と指示しましたが新着記事ではなくページのトップにある記事が表示されていたので、今回使用したプロンプトやプロバイダー、モデルでは意図を完璧に理解できていなかったので改善の余地はまだあると感じました。今後もこの技術を活用し、さらに複雑なタスクの自動化に挑戦していけると面白いかもしれません。

おしらせ

電巧社ではセキュリティ分野専門のブログも公開しています。ゼロトラストセキュリティを始めとした、ランサムウェアへの対処法等を紹介しています。こちらもよろしくお願いします。

↓↓ゼロトラストセキュリティ製品『Color Tokens』はこちらから!!↓↓

https://de-denkosha.co.jp/product/cyber-sec/colortokens/

この記事が参加している募集