Tools
Build AI agents and automate UI workflows from your web browser - Amazon Nova Act
2025-12-30
0 views
admin
Reimagine the possible with AI agents ## Lesson Objectives ## What is Amazon Nova? ## What is Amazon Nova Act? ## What are the features? ## What are the benefits? ## What are the use cases? ## Solution Architecture ## Task: Build an AI agent to assist a first-year psychology student enrol into an Australian university ## Tutorial 1: Build reliable AI agents for UI workflow automation with Amazon Nova Act and Kiro ## Upgrade to the latest version ## Tutorial 2: Deploy the web browser workflow with Amazon Q in Visual Studio Code ## More learning resources Building workflows takes time and effort to maintain for developers and engineers. With designing automated workflows we need to consider our business processes and logic. At AWS re:Invent 2025, on Day 3, AWS VP of Agentic AI Dr Swami Sivasubramanian announced the general availability of Amazon Nova Act in the AWS region United States (N.Virginia) us-east-1. In this lesson, you will learn how to: AWS introduces a family of AI offerings under Amazon Nova which include the following: a) Amazon Nova 2 Foundation Models: c) Automate web browser workflows at scale Amazon Nova Act is an AWS service that helps you to build and manage AI agents tasked with automating UI workflows at massive scale for repetitive tasks. Take a closer look at how Amazon Nova Act is used at Amazon AGI Lab and how it become generally available for web browser automation to assist with taking action and making decisions. With web browser automated workflows the capabilities of Amazon Nova Act include: Agents may be quickly created with natural language prompts and python code. The critical UI workflow automation from your browser can solve tasks such as: Allow Kiro to access your data. Select Allow access. Select Trust publisher and install to install the extension. You may experiment with your user journeys in the Amazon Nova Act Playground and generate an API key from the link: https://nova.amazon.com/act I am not able to access this playground from my location in Sydney (ap-southeast-2) With the Nova Act extension installed, in the Kiro terminal enter: In Kiro select vibe coding and develop a prototype in this agentic IDE and enter this prompt: Kiro will create a prototype and save the files in your project folder. You can open the 'uts-psychology-enrollment-workflow' html file and have a look at the prototype and share with your team. You may also inspect the README file. With a staged process, Kiro will design the: c) Analyze the acceptance criteria d) Design Implementation Plan If you inspect your project folder, you will be able to see a subfolder titled '.kiro' automated and it includes both the steering files and the specs. Kiro has completed all the specifications for the development from the beginning. Step 1: Open Visual Studio Code and Open a Folder 'UTS enrolment folder'. Step 2: Open chat in Visual Studio and enter the prompt. Step 3: In Visual Studio with Amazon Q we can deploy the workflow into AWS via our IAM credentials from the specs created in Kiro.
Two deployment files were created: ** Deployment script** You may also deploy this workflow on Amazon Nova Act CLI and you may productionize this workflow on Nova Act CDK templates. Until the next update, happy learning! 😀 Templates let you quickly answer FAQs or store snippets for re-use. Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse COMMAND_BLOCK:
pip install --upgrade nova-act Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
pip install --upgrade nova-act COMMAND_BLOCK:
pip install --upgrade nova-act COMMAND_BLOCK:
# UTS Psychology Enrollment - AWS Deployment Script
param( [string]$BucketName = "uts-psychology-enrollment", [string]$Region = "us-east-1"
) Write-Host "=== UTS Psychology Enrollment - AWS S3 Deployment ===" -ForegroundColor Cyan
Write-Host "" # Check AWS CLI
Write-Host "Checking AWS CLI configuration..." -ForegroundColor Yellow
aws sts get-caller-identity 2>&1 | Out-Null
if ($LASTEXITCODE -ne 0) { Write-Host "ERROR: AWS CLI not configured. Run: aws configure" -ForegroundColor Red exit 1
}
Write-Host "✓ AWS CLI configured" -ForegroundColor Green # Create bucket
Write-Host ""
Write-Host "Creating S3 bucket: $BucketName..." -ForegroundColor Yellow
aws s3 ls "s3://$BucketName" 2>&1 | Out-Null
if ($LASTEXITCODE -eq 0) { Write-Host "✓ Bucket already exists" -ForegroundColor Green
} else { aws s3 mb "s3://$BucketName" --region $Region 2>&1 | Out-Null if ($LASTEXITCODE -eq 0) { Write-Host "✓ Bucket created" -ForegroundColor Green } else { Write-Host "ERROR: Failed to create bucket" -ForegroundColor Red exit 1 }
} # Enable website hosting
Write-Host ""
Write-Host "Enabling static website hosting..." -ForegroundColor Yellow
aws s3 website "s3://$BucketName" --index-document uts-psychology-enrollment-workflow.html
Write-Host "✓ Website hosting enabled" -ForegroundColor Green # Set up public access
Write-Host ""
Write-Host "Configuring public access..." -ForegroundColor Yellow $policy = @"
{ "Version": "2012-10-17", "Statement": [{ "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::$BucketName/*" }]
}
"@ $policy | Out-File -FilePath "bucket-policy.json" -Encoding utf8 aws s3api put-public-access-block --bucket $BucketName --public-access-block-configuration "BlockPublicAcls=false,IgnorePublicAcls=false,BlockPublicPolicy=false,RestrictPublicBuckets=false" 2>&1 | Out-Null
aws s3api put-bucket-policy --bucket $BucketName --policy file://bucket-policy.json 2>&1 | Out-Null
Write-Host "✓ Public access configured" -ForegroundColor Green # Upload file
Write-Host ""
Write-Host "Uploading HTML file..." -ForegroundColor Yellow
aws s3 cp uts-psychology-enrollment-workflow.html "s3://$BucketName/" --content-type "text/html"
if ($LASTEXITCODE -eq 0) { Write-Host "✓ File uploaded successfully" -ForegroundColor Green
} else { Write-Host "ERROR: Upload failed" -ForegroundColor Red exit 1
} Remove-Item "bucket-policy.json" -ErrorAction SilentlyContinue # Show results
Write-Host ""
Write-Host "=== Deployment Complete ===" -ForegroundColor Green
Write-Host ""
Write-Host "Website URL:" -ForegroundColor Cyan
Write-Host " http://$BucketName.s3-website-$Region.amazonaws.com" -ForegroundColor White
Write-Host "" Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
# UTS Psychology Enrollment - AWS Deployment Script
param( [string]$BucketName = "uts-psychology-enrollment", [string]$Region = "us-east-1"
) Write-Host "=== UTS Psychology Enrollment - AWS S3 Deployment ===" -ForegroundColor Cyan
Write-Host "" # Check AWS CLI
Write-Host "Checking AWS CLI configuration..." -ForegroundColor Yellow
aws sts get-caller-identity 2>&1 | Out-Null
if ($LASTEXITCODE -ne 0) { Write-Host "ERROR: AWS CLI not configured. Run: aws configure" -ForegroundColor Red exit 1
}
Write-Host "✓ AWS CLI configured" -ForegroundColor Green # Create bucket
Write-Host ""
Write-Host "Creating S3 bucket: $BucketName..." -ForegroundColor Yellow
aws s3 ls "s3://$BucketName" 2>&1 | Out-Null
if ($LASTEXITCODE -eq 0) { Write-Host "✓ Bucket already exists" -ForegroundColor Green
} else { aws s3 mb "s3://$BucketName" --region $Region 2>&1 | Out-Null if ($LASTEXITCODE -eq 0) { Write-Host "✓ Bucket created" -ForegroundColor Green } else { Write-Host "ERROR: Failed to create bucket" -ForegroundColor Red exit 1 }
} # Enable website hosting
Write-Host ""
Write-Host "Enabling static website hosting..." -ForegroundColor Yellow
aws s3 website "s3://$BucketName" --index-document uts-psychology-enrollment-workflow.html
Write-Host "✓ Website hosting enabled" -ForegroundColor Green # Set up public access
Write-Host ""
Write-Host "Configuring public access..." -ForegroundColor Yellow $policy = @"
{ "Version": "2012-10-17", "Statement": [{ "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::$BucketName/*" }]
}
"@ $policy | Out-File -FilePath "bucket-policy.json" -Encoding utf8 aws s3api put-public-access-block --bucket $BucketName --public-access-block-configuration "BlockPublicAcls=false,IgnorePublicAcls=false,BlockPublicPolicy=false,RestrictPublicBuckets=false" 2>&1 | Out-Null
aws s3api put-bucket-policy --bucket $BucketName --policy file://bucket-policy.json 2>&1 | Out-Null
Write-Host "✓ Public access configured" -ForegroundColor Green # Upload file
Write-Host ""
Write-Host "Uploading HTML file..." -ForegroundColor Yellow
aws s3 cp uts-psychology-enrollment-workflow.html "s3://$BucketName/" --content-type "text/html"
if ($LASTEXITCODE -eq 0) { Write-Host "✓ File uploaded successfully" -ForegroundColor Green
} else { Write-Host "ERROR: Upload failed" -ForegroundColor Red exit 1
} Remove-Item "bucket-policy.json" -ErrorAction SilentlyContinue # Show results
Write-Host ""
Write-Host "=== Deployment Complete ===" -ForegroundColor Green
Write-Host ""
Write-Host "Website URL:" -ForegroundColor Cyan
Write-Host " http://$BucketName.s3-website-$Region.amazonaws.com" -ForegroundColor White
Write-Host "" COMMAND_BLOCK:
# UTS Psychology Enrollment - AWS Deployment Script
param( [string]$BucketName = "uts-psychology-enrollment", [string]$Region = "us-east-1"
) Write-Host "=== UTS Psychology Enrollment - AWS S3 Deployment ===" -ForegroundColor Cyan
Write-Host "" # Check AWS CLI
Write-Host "Checking AWS CLI configuration..." -ForegroundColor Yellow
aws sts get-caller-identity 2>&1 | Out-Null
if ($LASTEXITCODE -ne 0) { Write-Host "ERROR: AWS CLI not configured. Run: aws configure" -ForegroundColor Red exit 1
}
Write-Host "✓ AWS CLI configured" -ForegroundColor Green # Create bucket
Write-Host ""
Write-Host "Creating S3 bucket: $BucketName..." -ForegroundColor Yellow
aws s3 ls "s3://$BucketName" 2>&1 | Out-Null
if ($LASTEXITCODE -eq 0) { Write-Host "✓ Bucket already exists" -ForegroundColor Green
} else { aws s3 mb "s3://$BucketName" --region $Region 2>&1 | Out-Null if ($LASTEXITCODE -eq 0) { Write-Host "✓ Bucket created" -ForegroundColor Green } else { Write-Host "ERROR: Failed to create bucket" -ForegroundColor Red exit 1 }
} # Enable website hosting
Write-Host ""
Write-Host "Enabling static website hosting..." -ForegroundColor Yellow
aws s3 website "s3://$BucketName" --index-document uts-psychology-enrollment-workflow.html
Write-Host "✓ Website hosting enabled" -ForegroundColor Green # Set up public access
Write-Host ""
Write-Host "Configuring public access..." -ForegroundColor Yellow $policy = @"
{ "Version": "2012-10-17", "Statement": [{ "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::$BucketName/*" }]
}
"@ $policy | Out-File -FilePath "bucket-policy.json" -Encoding utf8 aws s3api put-public-access-block --bucket $BucketName --public-access-block-configuration "BlockPublicAcls=false,IgnorePublicAcls=false,BlockPublicPolicy=false,RestrictPublicBuckets=false" 2>&1 | Out-Null
aws s3api put-bucket-policy --bucket $BucketName --policy file://bucket-policy.json 2>&1 | Out-Null
Write-Host "✓ Public access configured" -ForegroundColor Green # Upload file
Write-Host ""
Write-Host "Uploading HTML file..." -ForegroundColor Yellow
aws s3 cp uts-psychology-enrollment-workflow.html "s3://$BucketName/" --content-type "text/html"
if ($LASTEXITCODE -eq 0) { Write-Host "✓ File uploaded successfully" -ForegroundColor Green
} else { Write-Host "ERROR: Upload failed" -ForegroundColor Red exit 1
} Remove-Item "bucket-policy.json" -ErrorAction SilentlyContinue # Show results
Write-Host ""
Write-Host "=== Deployment Complete ===" -ForegroundColor Green
Write-Host ""
Write-Host "Website URL:" -ForegroundColor Cyan
Write-Host " http://$BucketName.s3-website-$Region.amazonaws.com" -ForegroundColor White
Write-Host "" - Build an AI agent from UI automated workflows
- Identify use cases for Amazon Nova Act - Nova 2 Lite - This is foundation model cost effective for reasoning tasks such as building chatbots. The data type includes: text, video and image.
- Nova 2 Pro (preview) - This is an intelligent reasoning model suitable for AI tasks such as agentic coding. The data type includes: text, video,image and speech.
- Nova 2 Omni (preview) - This foundation model is capable of
- Nova 2 Sonic - This is a speech-to-speech model that can be used for conversational AI. The data type includes: text and speech.
- Nova multimodal embeddings - This is a multimodal embedding model that can be used for agentic RAG and semantic search. The data type includes: text, image, audio and video. - Amazon Nova Forge - This frontier model allows you to combine your organizations' data with curated training data from Amazon Nova. - Amazon Nova Act - This AWS service that built on the architecture of Nova 2 Lite to create AI agents to automate web browser UI workflows. - Extracting information
- Confirming bookings
- Filling out forms
- Perform a web search - Amazon Nova act completes repetitive tasks, launches APIs and can also perform escalations.
- Develop UI automation agents from prototype to production in a matter of hours.
- Deploy and manage fleets of agents - Data entry - Use agents to help you populate details and remove the need to copy and paste data.
- Web QA testing - validating user journey workflow in a web browser instead of using test scripts.
- Checkout flows - the agent may take actions to complete a workflow for example a purchase, refund, validation and UI changes.
- Data extraction - navigate websites and extract data from unstructured data sources that cannot be programmed or easily exported. - Step 1: Launch Kiro (i.e. agentic IDE) from your desktop and sign in with your AWS Builders ID. - Step 2: In Kiro, navigate on the left-handside to Extension and search for Amazon Nova Act to install the extension. - Step 3: Now start developing a prototype to build an AI agent with Amazon Nova Act for automating UI workflow from a web browser. - Step 4: Create your first workflow - Step 5: Create a project folder a name it 'UTS enrolment folder' and save it in your working directory such as Documents - Step 6: In Kiro IDE go to File -> Open Folder -> UTS enrolment folder - Step 4: You may create the Steering files using Kiro. - Step 5: You may also create your SPECS using Kiro. - Step 1: Open Visual Studio Code and Open a Folder 'UTS enrolment folder'.
- Step 2: Open chat in Visual Studio and enter the prompt. - Step 3: In Visual Studio with Amazon Q we can deploy the workflow into AWS via our IAM credentials from the specs created in Kiro.
Two deployment files were created:
- ** Deployment script** - A deployment.md file was created - Amazon Nova Act User Guide
- Amazon Nova Act API Reference
- Introducing Amazon Nova Act
- Amazon Nova Act with SDK
- Set Python Interpreter
- Amazon Nova Act extension
how-totutorialguidedev.toaimlllmpython