Skip to content

yuu551/bedrock-agentcore-browser-sample

Repository files navigation

Bedrock AgentCore Browser Sample

Amazon Bedrock AgentCoreのBuilt-in Tool「AgentCore Browser」を使用したブラウザ操作エージェントのサンプル実装です。

概要

このサンプルでは、Strandsエージェントフレームワークを使用して、AgentCore Browserとbrowser-useライブラリを組み合わせた自然言語によるブラウザ操作を実現します。

前提条件

  • Python 3.12以上
  • AWS CLI設定済み
  • us-west-2リージョンのAWSアカウント
  • Amazon Bedrockモデルへのアクセス権限
    • anthropic.claude-3-5-haiku-20241022-v1:0
    • anthropic.claude-3-5-sonnet-20241022-v2:0

セットアップ手順

1. 依存パッケージのインストール

pip install -r requirements.txt

2. IAMロールの作成

AgentCore Runtime用のIAMロールを作成します:

python create_iam_role.py

実行後に表示されるRuntime Role ARNをメモしてください。

3. deploy_runtime.pyの設定

deploy_runtime.pyファイルを編集し、runtime_role_arnに手順2で取得したARNを設定:

runtime_role_arn = "arn:aws:iam::YOUR_ACCOUNT_ID:role/BrowserRuntimeRole-XXXXXXXXXX"

4. AgentCore Runtimeのデプロイ

python deploy_runtime.py

デプロイ完了後に表示されるAgent ARNをメモしてください。

5. test_invoke.pyの設定

test_invoke.pyファイルを編集し、agent_arnに手順4で取得したARNを設定:

agent_arn = "arn:aws:bedrock-agentcore:us-west-2:YOUR_ACCOUNT_ID:runtime/browser_agent-XXXXXXXXXX"

6. エージェントの実行テスト

python test_invoke.py

ファイル構成

  • create_iam_role.py - AgentCore Runtime用のIAMロールを作成
  • deploy_runtime.py - エージェントをAgentCore Runtimeにデプロイ
  • agent.py - Strandsエージェントの実装(ブラウザ操作ロジック)
  • requirements.txt - 必要なPythonパッケージ
  • test_invoke.py - デプロイ済みエージェントの動作テスト

使用方法

デプロイ完了後、test_invoke.pyを実行すると、エージェントがブラウザを操作して指定されたキーワードを検索し、結果を要約して返します。

カスタマイズ

agent.pyrun_browser_task関数内のタスク定義を変更することで、異なるブラウザ操作を実行できます:

task = (
    f"最初に、ブラウザツールの検索/URLバーに『{starting_page}』を入力して..."
    # タスクの詳細を定義
)

注意事項

  • このサンプルは開発環境用です。本番環境では適切な認証設定を行ってください
  • ブラウザ操作中にCAPTCHAが表示される場合があります
  • AgentCore Browserセッションはコンソールからライブビューで確認できます

トラブルシューティング

タイムアウトエラー

test_invoke.pyConfig設定でタイムアウト値を調整できます:

config = Config(
    read_timeout=600,  # 必要に応じて増減
    connect_timeout=300,
    retries={'max_attempts': 2}
)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages