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:0anthropic.claude-3-5-sonnet-20241022-v2:0
pip install -r requirements.txtAgentCore Runtime用のIAMロールを作成します:
python create_iam_role.py実行後に表示されるRuntime Role ARNをメモしてください。
deploy_runtime.pyファイルを編集し、runtime_role_arnに手順2で取得したARNを設定:
runtime_role_arn = "arn:aws:iam::YOUR_ACCOUNT_ID:role/BrowserRuntimeRole-XXXXXXXXXX"python deploy_runtime.pyデプロイ完了後に表示されるAgent ARNをメモしてください。
test_invoke.pyファイルを編集し、agent_arnに手順4で取得したARNを設定:
agent_arn = "arn:aws:bedrock-agentcore:us-west-2:YOUR_ACCOUNT_ID:runtime/browser_agent-XXXXXXXXXX"python test_invoke.pycreate_iam_role.py- AgentCore Runtime用のIAMロールを作成deploy_runtime.py- エージェントをAgentCore Runtimeにデプロイagent.py- Strandsエージェントの実装(ブラウザ操作ロジック)requirements.txt- 必要なPythonパッケージtest_invoke.py- デプロイ済みエージェントの動作テスト
デプロイ完了後、test_invoke.pyを実行すると、エージェントがブラウザを操作して指定されたキーワードを検索し、結果を要約して返します。
agent.pyのrun_browser_task関数内のタスク定義を変更することで、異なるブラウザ操作を実行できます:
task = (
f"最初に、ブラウザツールの検索/URLバーに『{starting_page}』を入力して..."
# タスクの詳細を定義
)- このサンプルは開発環境用です。本番環境では適切な認証設定を行ってください
- ブラウザ操作中にCAPTCHAが表示される場合があります
- AgentCore Browserセッションはコンソールからライブビューで確認できます
test_invoke.pyのConfig設定でタイムアウト値を調整できます:
config = Config(
read_timeout=600, # 必要に応じて増減
connect_timeout=300,
retries={'max_attempts': 2}
)