Free YouTube Transcribe

Video transcript

Building Agents with Amazon Nova Act and MCP - Du'An Lightfoot, Amazon (Full Workshop)

AI Engineer · 13,586 words · 62 min read

Want to search this transcript, jump the video from any line, or download it as TXT, SRT, or VTT?

Open in the transcript tool

Full transcript

0:04[Music]

0:15Building agents with Amazon Nova ACT and

0:19MCP.

0:23I'm excited today because we're going to

0:25build intelligent autonomous AI systems

0:29that can help you build,

0:32scale, and improve your applications and

0:36business. My name is Dewan Lightoot and

0:39I'm joined by

0:45swap. Swap. Yeah,

0:51there we go. There you go. My name is

0:54Dwan Lifford and I'm joined by Hey, I'm

0:56Banjo Bami. I'm a solic architect here

0:58at AWS.

1:01Now, this is the AI engineer worldfare

1:05and I've been in tech over 15 years and

1:08right now is the most exciting time for

1:12me in my entire career. And one of the

1:16reasons for this excitement is agents.

1:19How many of you right now are been

1:21building agentic systems?

1:25I love it. So when we talk about agentic

1:29AI, I think it's important that we level

1:32set from an AWS perspective.

1:35There are three key terms we need to

1:37think about. First, the ability to plan.

1:42A agent gets a prompt. It gets an

1:45objective and it determines the actions

1:48that need to be taken. So it creates the

1:50plan and then it takes actions on those

1:53actions by using things like tools. Now

1:57the last piece, the third piece and

2:00probably the most interesting is the

2:02reasoning where the agent is able to

2:05evaluate the results and determine if it

2:10needs to update the plan and take

2:12additional actions until the objective

2:14is complete.

2:16This is an agent.

2:18Now when we actually break down the

2:21architecture,

2:23I think it's important to take a look at

2:24this because we have the user input, we

2:27have the agentic system, we have the

2:30possibility of some type of human in the

2:32loop and then we have the generator

2:35response. Now when we dive a little

2:38deeper, there's some components of this

2:40agentic system. We have the LLM.

2:43We have a knowledge base with external

2:46information that we want may want to

2:48provide. We have guardrails to say to

2:51the model don't do this or to ground the

2:54model with the truth from our knowledge

2:56base to say okay is this actual relevant

2:58information. Is this accurate to the

3:01information we're receiving from the

3:02knowledge base? And then we have access

3:04to additional tools, memory, or we may

3:07need to talk to additional agents or

3:09LLMs like Amazon Nova ACT through

3:12something like MCP.

3:14And we have the ability to design our

3:16own flows for these systems.

3:18Now, the most interesting piece that I

3:22think a lot of us are probably focused

3:24on when we're building these systems is

3:26around the continuous evaluation

3:28framework. Like how do we know if we're

3:30using the right LLM? How do we know if

3:33our prompt is consistent, accurate, or

3:36even optimized for the performance we're

3:38expecting? And then how do we even judge

3:41our system? How do we rate that and

3:43determine that that it's actually

3:44solving the problems that we need or

3:45intend?

3:47Now, once we have this, we need to log

3:49this information and then have some type

3:51of subject matter expert and determine

3:54how can we improve this system. And this

3:56is the iterative approach. So we're

3:58always trying to improve and optimize

4:00our agentic system.

4:04Now continuing on this continuing on

4:06with this story. Now there are some use

4:08cases that we should be building these

4:09systems for. Like if it's complex task

4:12and we don't know which tools should be

4:14used, how many tools should be used and

4:16we want the model to leverage his reason

4:18and capabilities. Well, this is a great

4:20use case for a gentic system. But if

4:24it's something that is just one step,

4:26our traditional if this then that

4:28approach is probably the best solution,

4:31right? We don't always need to provide

4:33some type of agentic system for

4:34something that can be done with a

4:36traditional solution.

4:40Now when we talk about agents on AWS,

4:43there are three approaches and

4:45perspectives we should think about.

4:47First is going to be to specialize using

4:49something like Amazon Q. How many of you

4:51are have used Amazon Q?

4:54The there's Amazon Q in the console to

4:57help solve your problems on AWS. In the

4:59console, there's Amazon Q developer

5:01inside of your IDE. And right now, one

5:04that I'm I think most excited about is

5:06Amazon QLI agent. How many of you have

5:09used that?

5:13For me, if you if you are into

5:15increasing your productivity, using a CI

5:18a CLI agent has helped me tremendously.

5:22You from editing a video, it can do

5:25that. Summarizing a document, reading my

5:28entire codebase. Like today for one of

5:31my demos, I had some code and I was

5:33trying to figure out why wasn't it

5:35working. I said, "Analyze this code and

5:36tell me what you see. Let me know the

5:39APIs that it's calling." Well, I looked

5:41up the APIs. Well, it didn't match my

5:43APIs in the API gateway. So, when the

5:45code was deployed, it wasn't deployed

5:46with the right APIs. So, the agent was

5:48able to help me save a ton of time by

5:51just analyzing the code and tell me what

5:53it saw because I never seen the code

5:54before, right? So, that's what these

5:56tools are able to um to help us do. The

5:58next is fully managed. If you're using

6:00Amazon Bedrock, you're able to leverage

6:02Amazon Bedrock agents to build and

6:05manage agents inside of AWS. And today

6:08what we're going to be focusing on is

6:09the DIY the do-it-yourself approach by

6:12using strands agents. This is allows you

6:15to not just leverage Amazon bedrock but

6:18also leverage models through other

6:22providers using light lm.

6:25Now when we talk about strands agents

6:27strands agent was announced about a

6:29month ago. I want to say something about

6:31a month ago. This is open source

6:33extremely lightweight. So if you use

6:35other agent FL frameworks, it's like

6:38that. But the implementation is you'll

6:41see in the code how easy it is to build

6:44a aentic system or a agent itself in a

6:47few lines of code and already get

6:49started. I built a multi- aent solution

6:51in about under 50 lines of code.

6:55And so when we break down strands

6:57agents, there are three components. We

6:59have a prompt, we have a LLM, and we

7:01have tools. So you create a function

7:04called let's say a get weather tool

7:07right you define your agent you give it

7:10a prompt and it's already implemented

7:13and you'll see in the code as Banjo goes

7:15through it here in a moment

7:19now taking it a step further as Danielle

7:22presented today on Amazon Nova Act these

7:25models are able to do some really cool

7:27things and this is another thing that

7:29I'm excited about Amazon Nova Act is a

7:32research preview model. And

7:36the capabilities of this allows you to

7:40use a prompt or give instructions and

7:43take complex tasks and do things like

7:45browse the internet to find research or

7:48to research or to search on Amazon.com

7:52to find the top list of widgets, right?

7:55And then return them and then add them

7:56to your cart. So you'll see how we can

7:58leverage this not just using the SDK for

8:01Amazon Nova ACT but also by leveraging

8:04MCP which leads us into the last piece

8:07which I think when we talking about

8:10agents I don't think we would be here

8:12today as fast as we have moved if it

8:15wasn't for MCP. How many of you are

8:18leveraging MCP today? Modern contest

8:20protocol. How many of you have built

8:22your own MCP servers?

8:25I built several um I got two that I use

8:28all the time. One, how many of you use

8:31Obsidian?

8:33Okay, so for my documentation, I built

8:35the Obsidian MCP server. This allows me

8:38to save all my documents, reference all

8:42my documents, and just my entire

8:44workflow is streamlined because of this

8:46MCP server I use right there. But I also

8:50use one for my bookmarks. I built the

8:52bookmark manager because every Friday

8:54I'm restarting my computer and I lose my

8:56bookmarks. I save them and I forget

8:58about them. But now I can just say save

9:00this bookmark. It gives it a

9:01description, gives it a title, give it a

9:03date and I can even add notes so I can

9:05remember where this bookmark. So now

9:07when I open up QCLI, I can say hey I'm

9:09looking on the top. I'm looking for um

9:11some information on MCP. Can you tell me

9:13all the bookmarks that I have? Then

9:15it'll find it. Can you tell me the ones

9:16I saved last week? And so these this is

9:18the power that we have today. But with

9:21that being said, I think it's time that

9:23we all start building. Banjo's going to

9:26take over. But if you you open your

9:29laptops and log on to this link, this is

9:32going to take you to a workshop

9:33environment where you have access to an

9:35Amazon account where Banjo is going to

9:38walk you through building out today's

9:40workshop. I thank you for your time.

9:42Cool. All right. So, uh, this is going

9:45to be a hands-on workshop. So, we've

9:47provisioned an AWS account for everybody

9:49here. So you don't have to install

9:50anything on your computer. Everything is

9:52going to be done through the browser.

9:54And I always say the hardest part of the

9:56workshop is just getting started. So

9:58some of my colleagues are also here. So

9:59raise your hand AWS folks that are here

10:01to support. Uh so we're going to take

10:03some time to just get logged into an

10:05environment. We're going to set up a VS

10:06Code server, enable models, uh get the

10:08Nova Act API key. So again, this is the

10:11hardest part of the workshop, just

10:12getting started. Uh so let's take some

10:14time to just get into the environment

10:16and I'll follow along as well.

10:19So, and this is uh again everything is

10:22you don't have to install anything on

10:23your computer. You don't have to use

10:24your own AWS account. Everything is

10:25provisioned for you. So, but while

10:27that's loading, let me briefly walk

10:29through the three modules of the

10:30workshop. Uh so, the workshop is really

10:32about how you can use Nova Act. So, the

10:34first module is just getting started

10:36with Nova Act. We're going to make an

10:37API call that the second part of the

10:40module is going to make an MCP server

10:41that can leverage a Nova Act. And then

10:44finally, we're going to use the strands

10:45agent to hook everything together. So

10:47that's kind of the the three steps

10:48you'll go through at this workshop and

10:50all the code is available via the link

10:52on GitHub so you can try it out on your

10:54own as well. Uh but yeah trying to get

10:57started here if you can't follow along

10:59I'm going to be doing up here so don't

11:00worry too much and again all the code is

11:02available so you can try it outline uh

11:04offline.

11:06Okay, so the first things first, uh, if

11:09you're following along, make sure to

11:10click this open AWS console button.

11:13Again, we provision the AWS account. You

11:15know, don't log into your own AWS

11:17account. Don't try to create a new one.

11:19Everything is uh previsioned here

11:20already. So, going to click clicking

11:23that button to open up your AWS account.

11:26So, logged into my AWS account.

11:35So the first thing we do in an AWS

11:36account, we're going to enable uh Amazon

11:38Bedrock models. So Amazon Bedrock think

11:41of as a serverless API to access

11:43different foundation models and you can

11:45build lots of gen applications in it. So

11:47it has capabilities like knowledge

11:49bases, guard rails, you can build agents

11:51on top of it for anything you need to

11:53build uh AI agents or geniary

11:56applications. Amazon Bedrock has

11:58capabilities for that. But for this

12:00workshop, we're just going to enable

12:01specific models. So going to enable

12:05specific models. You can click the

12:06Amazon models and we used the Claude 37,

12:103.5 IQ, and 3.5 sonnet. So those are the

12:14ones we're going to use for this

12:15workshop.

12:18And

12:19that's going to request access there.

12:27And again, all the instructions are also

12:28in this workshop as well. Uh, so we

12:31could follow along, but I'm just going

12:32to go through it just for sake of time.

12:35And then the next part once we get the

12:36model access, there's a VS Code server

12:38that has everything set up already. So

12:40I'm just going to go in there

12:47and if the URL and password is there,

12:49you can log in to your VS Code server

12:51with everything installed.

13:06and I'm also going to log into Amazon Q.

13:08So, Amazon Q is our U ID extends in to

13:11help you write code.

13:13U we have time you can sign up through a

13:16builder ID completely free. You don't

13:18need uh AWS account. You don't need to

13:20put in your credit card. You can just uh

13:22log in through there. I already have an

13:24account so just feed it up but it puts

13:26uh nice little AI agent there. I can ask

13:30questions, update code, etc. So it's uh

13:32I'll show you some examples of go

13:34through some of the code. So

13:39So who's gotten to this point setting up

13:41all the models workshops because this is

13:43once you get all this done then that's

13:45when the real fun begins. So does

13:46getting a pulse if I need to slow down

13:49or

13:50slow down a bit. Okay, I'll wait a bit

13:52again. raise your hand if you're stuck

13:53anywhere. Questions, we have uh agents

13:56that can come around and support you.

13:58So, I'm going to pause for a little bit.

14:04Any general questions while we're

14:06waiting?

14:09Oh, yeah. So, this workshop uh again all

14:11the code is available online. Uh this

14:14workshop available as well. So, you can

14:16also look through that. There's a

14:18website called workshops.awws. AWS

14:22and when you go there you can do

14:24something like uh Nova act and then it's

14:28the only worktop that shows up. So you

14:30can always go to workshops.Waww

14:32search nova act and this workshop will

14:34show up so you can see all the

14:35instructions all the code and run this

14:38uh on your own.

14:54Okay. And then the last thing, uh,

14:57because we're going to use Nova Act, we

14:58actually need to get a Novaact API key.

15:01So, if you go to Nova, Amazon.com,

15:04it this is a website that you can use

15:06the Amazon Nova model. So, you can do

15:08like chatting, generating images, uh,

15:10speaking with Nova, uh, generate videos,

15:13but then also this is where the the ACT

15:15API key is generated. So, if you're

15:19following along and you want to generate

15:20your key, again, it's free to log in.

15:23You can use your Amazon.com uh like when

15:25you order something on Amazon.com

15:27account to log into this and then you

15:29can just generate a key here and it'll

15:31be able to access that

15:49Oops. Okay. So, I'm going to walk

15:52through what module one is. Uh before I

15:55get has anybody got in here? Just quick

15:57pulse check. If not, you know, I'll

15:59continue. I know the Wi-Fi is slow, so

16:01it might be hard. So, I'll just continue

16:03on. Uh but yeah, the first one we got to

16:06see how Nova Act works. Uh how how the

16:09actual code looks like. Uh generated the

16:11key. uh need to export the key and then

16:14kind of running the first script which

16:15is actually going to open amazon.com uh

16:19and we're actually going to look for the

16:21first coffee maker. So let me see how

16:23that uh code looks like. Let's go here.

16:27Make this bigger.

16:29Oops.

16:36So very simple code uh with Nova Act

16:38it's again it's all on Python SDK I so I

16:42decide what a page to go to. So go to

16:44amazon.com I say I want you to search

16:46for a coffee maker. I say select the

16:49first result and I say get the title of

16:51that product page. So uh very simple if

16:53you ever done kind of web automation

16:55before of something like uh Selenium or

16:57Playright you probably have to like look

16:59for this diff tag you know look at this

17:01H1 tag grab this information. a lot of

17:03manual processes of actually inspecting

17:06the actual website. Here I'm just saying

17:08click the search bar, find something

17:10like I don't have to specify click this

17:12tag, do that. So it makes it much more

17:14easier to engage with the website as a

17:16natural human would instead of like

17:17looking through divs and trying to find

17:19this P tag specifically. So uh this is a

17:22great way to just uh you know use Nova

17:24Act right out of the box. So I'm going

17:27to uh run this

17:30so we can see

17:36examples.

17:38All right. All right. So, added my key.

17:41Going to what happens when I run this

17:43file.

17:59Give it a second.

18:04Oops, we failed. All right, let's start

18:06over.

18:10One.

18:16Ah, okay. I know.

18:23Got to run out of this. Let's start that

18:25over.

18:36Yeah, question.

18:38So just to explain why is Banjo running

18:40that command? It's running F XVFB. It's

18:43a frame buffer where it runs your X11

18:46system. What happens there? Nova act

18:49actually goes and clicks a mouse on a

18:51browser. That's why it needs to be run

18:52like that. Otherwise, it has no guey. So

18:54this is just kind of a way to emulate um

18:56a graphical user interface on this Linux

18:59box. Thank you, Darko. Yeah, since we're

19:01running everything in the the cloud on a

19:03browser, I'm saying, you know, open a

19:04browser again, but it's already in a

19:06browser. So that's why it crashed. So I

19:07had to put that frame buffer command. Uh

19:10and yeah, the workshop kind of walks

19:12through why we did that. But you can see

19:14uh what is going on when Nova act says,

19:17I'm going to search for a coffee maker.

19:18I'm at the Amazon homepage. My task is

19:20to search for this. So it's

19:21understanding what it's doing. I see the

19:23search spark has copy maker. I'm at the

19:26search spark here and now it actually

19:28puts the actual log of the actual HTML

19:31file. So it's taking screenshots. You

19:32can see what it looks like. It got the

19:34first results. I'm on the copy maker

19:36page. It selected it. And now I got the

19:39title of the now it says, you know,

19:41what's the title of this product page?

19:47All right. Got this Black Decker 12 copy

19:50maker. my task to return the title of

19:51the product page product title. It got

19:54that and it ended the session and then

19:56it also creates a a video log that I can

19:58actually look at to see what it did for

20:00each for everything it did in this webm

20:03file.

20:05Yeah. Question.

20:17Yeah.

20:22So the question was does it reason about

20:26the page in terms of pixels or in terms

20:29of text? Yeah. So it's actually looking

20:32through the actual uh the page itself.

20:35So you see in this video it sees it

20:36looks at the page. I can see what's in

20:38the page. So it's it's a large language

20:40model train. So it can actually see the

20:42actual the page is doing. So it's not

20:44looking at like like the H1 tag or

20:46whatnot. It understands the context of

20:48that particular page. It can see that's

20:50a search box. Okay, I'm going to go

20:52click through that search box. So yes,

20:53it understands the pixel level of what's

20:55on that actual page.

20:58So this is kind of the video. It's hard

21:00to see. Make it bigger.

21:03Sped up.

21:06So, it opens the page. It goes to the is

21:09able to type in coffee maker there. Um,

21:12it gets that information, clicks the

21:14button. So, even with all the ads and

21:16everything, the video can understand the

21:17task, clicks that, and it gets the

21:19information back. So, that's and that

21:21was a couple lines of code. So, you can

21:23extrapolate to other type of workflows

21:25you can do for searching through things.

21:28Sorry, I have a and I have a question.

21:30Yeah. So when you what I have

21:32experienced with these kind of

21:33frameworks is that when you run this on

21:34a server environment um services like

21:37Cloudflare will block the access and

21:39maybe do a capture challenge. How do we

21:42solve that using Q? Yeah. So with uh so

21:45using Amazon Nova so it doesn't do

21:47captures. It doesn't do things of that

21:48nature. So it's it's meant for like

21:50workflows you understand but yes it's

21:51not going to bypass captures and other

21:53things of that nature as well. So it's

21:55made for like going to amazon.com or

21:57look through a booking site. But if

21:58something that's like requires like a

22:00human or it wants to you can't bypass

22:02that

22:06you you wouldn't use Nova Act for that

22:08use case. If you need to pass a capture

22:10of something else that use another

22:11technology this is not meant to like

22:13overtake humans, you know, it's more

22:14like I'm helping them augment things but

22:16not if there's a capture involved then

22:18you have to use a different technology

22:19for that. It's also a preview. It's also

22:22a preview. Yes. So this is a research

22:24preview as well. So if that's a very

22:26good use case, you know, leave feedback

22:28on the Nova the website. So is is human

22:31and loop possible at all with it yet?

22:35Well, with this this one, it's no

22:37because I'm writing all the code here.

22:39So but again, this is Python code. So I

22:41could probably put in something here

22:42like, you know, ask something, make an

22:44API call here. So this is, you know,

22:46it's a Python code. you might be able to

22:48create some type of uh workflow that

22:50might augment like wait for a human

22:52response or whatnot because the browser

22:54is happening in like headless mode but

22:56could you make it work with a browser to

22:58human is also seeing at the same time?

23:00Yes. So it can pause and wait for

23:02somebody put in like a password or

23:03credentials or do a capture and then

23:05once it receives that works continue on

23:07the workflow. You could do yeah because

23:09right now I I ran it in headless mode

23:10but yes it can also run uh you know it

23:12would open up the browser. If I ran this

23:14on my MacBook, I would open up a Chrome

23:16browser and go through that session.

23:18Also, if you're running it and you

23:20wanted to bypass something that has two

23:22factor, if you're already logged into

23:25say Amazon.com and then you run a code,

23:28it's going to use your credentials in

23:29that browser session to continue on to

23:32perform that task. So, that's something

23:33that you can do as well.

23:36Cool.

23:38So, let me Oops.

23:42And then one other thing you can also do

23:44multi- uh you know parallel execution.

23:47So my last my next example is actually

23:49I'm trying to find multiple monitors and

23:51I wanted to compare them all at once. So

23:53I'll show you how that code looks like

24:04so I can check for the monitor extract

24:06information. I'm setting you know I want

24:09I'm defining what I want. So again, I'm,

24:11you know, saying I want to find the

24:12price, the rating, the size. Uh, go to

24:15amazon.com.

24:17Uh, I set it headless mode this time. So

24:19I don't need to do the frame buffer. I

24:21start multiple threads. It looks for

24:23each monitor simultaneously because each

24:25of these are individual tasks. So I can

24:27paralyze them instead of waiting it to

24:28to go through. I I define the list of

24:31monitors I want to go through, start the

24:33thread, and then it starts executing and

24:35finds the the results of the monitors.

24:37So I can run that in the background.

24:44So starting the three parallel threads

24:47and it's so again it's running in

24:48headless mode so it's going to be able

24:50to do this in the background where we

24:51can see kind of what the model is

24:53thinking how it navigates through the

24:54web page.

24:56Yep.

24:58I I have tried to use Nova uh in the

25:01past April and uh it worked for the

25:04first time but once I did it again it

25:07triggered the capture. Is this something

25:09that has been already resolved or is

25:11this happening because I think the

25:13website and it was Amazon in this case

25:15it was detecting it was a bot and uh is

25:18there like an LLM.txt

25:20or robots.txt txt that can declare it.

25:23So Nova actor is a GitHub repo. So you

25:25could go there and just grab that. But

25:27it's it's working now. Like I'm running

25:29it, you know, I just I this is just live

25:31code I'm doing right now. Like uh I just

25:34exported my API key, started running it.

25:36So uh you can try it in the workshop.

25:39Yeah, I mean it's it's ready to go.

25:40We're building right now.

25:44And you can kind of see that it's going

25:45on in the background what it's doing. Uh

25:47I've looked at this monitor, the Dell

25:49monitor. I'm at the Amazon homepage.

25:51It's like it's going through looking

25:53through the search results. It's saving

25:54things. So, you can see it's running in

25:56parallel. It got the information for the

25:58one of the first ones. So, it's going as

26:00I just set that up and it can execute

26:02that. So, if you have some type of uh I

26:05don't know like daily news thing. You

26:06need to go to the website and get news

26:08or something and like have a report Nova

26:10and there's no API for that. This is one

26:12way you can encodify how to do that kind

26:14of search and get the information.

26:17Have a question. Yeah. I'm wondering so

26:20how successful is this in terms of like

26:22more ambiguous test because I I ran the

26:24Amazon demo and that worked but I'm

26:25wondering could I just add Google there

26:28and and how like how vague and sort of

26:31how much does it know when it's

26:33navigating through like I was thinking

26:35like if I wanted to return a pair of

26:37sunglasses that broke would I would I be

26:39able to just say like start in Google

26:41and then find this company's website

26:43find a way to you know engage support

26:46open a ticket like how much sort of like

26:50how vague can you be and how smart is it

26:52currently would that would that yeah I

26:55mean the more instruction you give

26:56obviously the better but it's able to

26:57understand how to navigate a website

26:59that's what the model's trained on so if

27:00you say you know go to this sunglasses

27:02website it doesn't it probably wasn't

27:03trained on a specific sunglass website

27:05but it can understand that button

27:07support you know this but click a ticket

27:09so understand kind of the the general

27:11knowledge of how to navigate the website

27:12but if there's something very intricate

27:14about that website you're going to have

27:15to encode it in the text like make sure

27:17you click button an experts or whatever.

27:19So, it understands how to navigate

27:21websites. Got it. And does it understand

27:23when it's failed? Yeah, sometime

27:25sometimes I've seen it sometimes get

27:27stuck in a loop and like, oh no, I keep

27:29scrolling. I keep scrolling. I keep

27:30scrolling. It doesn't know when to stop.

27:32So, it again, this is in research

27:33preview, so things are getting better.

27:35The model's getting updated behind the

27:36scenes, but it's not like it's not AGI.

27:39So, that's got it. And one last

27:41question. Um, h how is it in terms of

27:44navigating like distrustful parts of the

27:46internet? I mean there's a lot on the

27:47internet that we see and we know is not

27:49to be trusted or it's something not to

27:51be followed. H how have you sort of

27:53worked around that problem? Yeah because

27:55again it is a model in the background so

27:56it's going to understand like if you're

27:57doing something it's not going to want

27:59to click that or might be there

28:01safeguards in place. So that's built

28:03into the model but again uh it is in

28:06research preview. You still have to

28:07explicitly say what buttons to press for

28:09certain actions but again the model it

28:11isn't LLM trained. is going to be able

28:13to understand the nuances and say if it

28:15can't take this action or can't do that

28:17that that could happen. But I haven't

28:19seen that use case. But if you keep

28:20pushing it, maybe you'll find those

28:21those things. Well, the thing I had in

28:23my mind is like if you go to a site

28:25where you have to download a link,

28:27sometimes there's an ad that says

28:28download a link and you know that that's

28:30just an ad trying to get your attention

28:32would the model know or is that some is

28:34that like for example like in the the

28:37Amazon.com it shows an ad for something

28:39but it said find the first thing. I was

28:40able to scroll past that ad and click

28:41something. So the model understands the

28:43task you give it. So yes, it can

28:45understand that. Thank you.

28:49All right. So this this just finished.

28:51Yeah, that's really quick. It showed it

28:53was able to find all the models, give me

28:54the size, the rating, the price for each

28:56of the monitors. So again, it it

28:58executed that on parallel. It got me the

29:00nice information. And that that's kind

29:02of the idea of like it can do parallel

29:04execution in the background. So you

29:05don't have to wait for it and don't see

29:07it actually clicking through the the

29:08task and you get your information.

29:11All right, one more question then we'll

29:12move on to the MCP part. So Nova is

29:16specifically meant to be used with a

29:18browser. Correct. Uh so Nova act. So

29:22Amazon Nova is a family of models on

29:24Amazon. So if you go to this website

29:26Nova Amazon.com

29:29uh you see there are different

29:30foundation models like Nova Pro,

29:32Premiere, Light Micro. These are like

29:34the text understanding models. So like

29:36your typical LLM calls. There's also an

29:39image model called Nova Canvas can

29:40generate images. There's a video real

29:43called Nova Real where can generate uh

29:45videos uh and then it's also a speech

29:47model text speech to speech called Nova

29:49Sonic. So Nova is a foundation of found

29:53uh foundation models by Amazon to do all

29:55these type of tasks and acts as just

29:57another one for browser automation. Are

29:59there plans to expand this like beyond

30:02the browser so that we can someday take

30:04actions in Slack or IDE or anything

30:09outside of the browser? Maybe some of

30:11the team is here so maybe talk with them

30:13later.

30:15Right. Thank you.

30:18All right. So I'm going to move on to

30:20the MCP part. Banjo. Yep. Nova Act is

30:24only available in US.

30:26Yes. Right now, Nova Act is only

30:28available in the US. It's in preview, so

30:30it's just getting started. So, if you

30:32log in from like a different uh account

30:35like address like UK or something, it

30:36might not it won't work. So, it only

30:38works in the US at the moment. Yes.

30:42Right. One more question over there and

30:44then I'm going to move on.

30:51Samsung

30:53might be Oh.

30:56[Laughter]

30:58Your Amazon.com is different. I don't

31:00know. Yeah, because it is opening up a

31:02different browser. So, it could have

31:03clicked something differently. Yeah. So,

31:07yeah, that's right. Look at the video

31:10preview video playback to see what your

31:12results were. Right. Yeah.

31:16Oh, one more. Okay. One more quick quick

31:19one. Are there plans to support

31:21persisting browsing data such as cookies

31:24in the cloud browser? So right now it's

31:27opening up its own uh browser, but you

31:29can also set like your own like Chromium

31:31profile and open up that browser. So

31:33everything you have saved there like if

31:35you want to log into your stuff, you can

31:36set your own custom browser, but by

31:38default it opens up a new like

31:40completely new browser without anything

31:41saved.

31:44All right. So I want to show uh I

31:47actually made an MCP server for Nova

31:49ACT. So a module tool is going through

31:52uh MCP and I can kind of show you what I

31:55did for the MCP server. Uh in fact we

31:57can use Amazon Q here. So I'm going to

32:00ask it uh

32:02can you tell me about the Nova

32:09ACT MCP server?

32:15Tell me what it does

32:19and oops.

32:23So tell me about the Nova act MCP

32:25server.

32:27So you can see it's going through um

32:30integrates Nova act browser and MCP. It

32:32has the browse session tool, browser

32:34action, execute parallel task, take

32:36screenshots, close browser, list

32:38results. So I created these different

32:40aspects of the MTCP server. So I can use

32:43something like claw desktop or cursor or

32:45Amazon QCLI to say you know open

32:47Amazon.com and find information for me.

32:49So it's it's portable. It understands uh

32:52so I don't have to actually write code.

32:54I can say so go to amazon.com and find

32:56me the co the first coffee maker. It

32:58will actually write all that code I did

32:59in the initial one to do that or the

33:02multimonitor. So I wrote wrote a bunch

33:04of code to do this. If I just said you

33:05know get me these three monitors to get

33:08the price. it would actually write all

33:09the Nova act code it needs to do that

33:11using the MCP server. So that's kind of

33:13the power of MCP that I just describe a

33:15task and then I can it will encode the

33:17actual browse action things it needs to.

33:20So and I also made an MCP client that

33:22can actually interpret that. So oops

33:26uh it connects to the MCP server it runs

33:29the code and it's able to use query

33:31bedrock. uh I am using a model so I'm

33:34using cloud 3.5 sonnet here because I'm

33:36is an MCP client and needs to have an LM

33:39behind that and then it's able to you

33:41know understand which tools to use uh

33:43run the code and open up the browser and

33:45whatnot. So let me just run the example

33:48here.

33:50So module two.

33:55So

33:57we are open the file. Just did that.

34:01We ask Amazon Q to explain the file to

34:03us. And now we're actually going to run

34:05it. So Python 3. And then I can open

34:09this up.

34:24Okay. So, let's be adventurous. So,

34:26somebody give me a query to try since

34:29anyone has an idea. Yeah, I'm going to

34:31just ask it and do something. So,

34:32someone give me an idea of what to run

34:34another act. Fix Wi-Fi.

34:39Uh, how would you fix the Can you find a

34:44website to find fix website? can find

34:48let's see website to fix Wi-Fi use

34:53headless mode

34:58I spelled it wrong but let's see

35:06all right goes to google.com how to fix

35:08Wi-Fi problems troubleshooting guide in

35:10the box and press enter return a list of

35:13the websites title descriptions

35:15All right,

35:17it's going through that. So, it open

35:19google.com. Uh, how to fix Wi-Fi

35:22problems. I see an empty search bar

35:24where I can type queries for search

35:25information. I should type how to fix

35:27Wi-Fi problem. So, you can see it's

35:28understanding what to do. It oh, it hit

35:31a recapture page. So, okay, the search

35:34results are not viewable. Blah blah. So,

35:38so see it looks like it got stuck on a

35:40recapture page. So, this is like a

35:41headless agent. So, someone asked a

35:42question about can I pass captures? What

35:44now? You see that it's it got stuck

35:45doing that. It looks like it's stuck in

35:48a loop now. So, it sees the capture

35:50again. So, I should skip the clip button

35:53to skip the capture window. The capture

35:55is still open. So, it it's probably

35:57going to be stuck here unless I close

35:58it. So, you can see there are

35:59limitations. It's not going to pass

36:01captures and whatnot. But that that was

36:03a good query to show that it Oh, did it

36:06fill it? It's still open. So, it's going

36:07to be stuck here. So, I'm just going to

36:08close it out. But you can see, you know,

36:10it it can't pass everything. and can't

36:12navigate through websites. So something

36:13like that was will not work. So that was

36:16a great test example to show.

36:20If I use the the bakedin one, you know,

36:22find that copy m under $50, it'll be

36:24able to go through that and use headless

36:25mode. But any questions on that? Seeing

36:28how the MCP server is working. I didn't

36:30have to write code. I just said do

36:32something. It actually wrote the code to

36:33to do it for me.

36:36Question over here.

36:41Yeah. Yeah. So, a question about if I

36:43can actually go into the browser and do

36:44it myself. Yeah. If I ran this locally

36:46on my machine, it'll actually be able to

36:48it'll open up the browser and I can

36:50actually click the button and it'll

36:51continue doing that. Right now, I'm

36:53running it within the browser. So, I'm

36:55de everything in headless mode. So, we

36:57can't interact with that.

37:02So, you can see it's able to find search

37:04under $50. It can actually look at the

37:06website. It's found search results on

37:09Amazon.com. So yeah, so that for that

37:11use case where we're not passing

37:12captures is able to continue and find

37:15the information there.

37:20So a question about can I actually order

37:22something? If I used my own browser

37:23session and like logged in at to my

37:26Amazon.com account and said yes, order

37:28this for me, you know, click through,

37:29it'll be able to understand that thing.

37:31But I would have to put in I would have

37:33to use my own browser sessions like I

37:35wouldn't want to log in by myself. Yeah.

37:44A question.

37:48If you give Nova act the authentication

37:50for Amazon for example like you give it

37:52your login details then can it log in

37:54and complete that action for you? Yeah,

37:56if I if I like say this is my username,

37:58this is my password, enter that into

38:00that field and you'll be able to

38:01understand, you know, this is a signin

38:03button and I have this information. But

38:05again, this is all Python code. So yeah,

38:07you can encode it, you can make it an

38:08environment variable so it won't read it

38:10directly. So a lot of ways to do that.

38:12Does it also like understand 2FA? Let's

38:13say it asks you to go to your Gmail and

38:16you will it then open the Gmail website,

38:19check the email if you're logged in

38:20again on your session and then input it

38:22or is it and you can well if there's no

38:24capture like we just thought of the

38:25capture. Yeah. So there's no nothing

38:27blocking. So but yeah again Nova Act is

38:30free to use. So there's a lot of

38:31creativity in this room. So I think we

38:33should have like a Nova Act hackathon. I

38:34think that would be you know do

38:36something crazy with Nova Act.

38:41All right. So, one more question. Yep.

38:44One more. Can I book a flight when my

38:47price alert is less than $100? It's like

38:49a continuously check. You could probably

38:52use something else for that. But yeah, I

38:54mean, nobody can open up that website.

38:55You can just have a query every day, you

38:57know, open Google flights and look at

38:59the quickest things and if something is

39:00below this threshold, you know, send me

39:02an email. So, again, this is all a

39:04Python script. So, you can set up

39:06something that triggers like once a day

39:08like in a lambda function and so yes,

39:10totally possible. So, Novax is very

39:12flexible and because it can run in

39:14headless mode, you don't need to have

39:15that UI. So, that's really what makes it

39:17helpful for interacting with websites

39:19that don't have a native API.

39:29Thanks. Yeah, this is pretty cool. I'm a

39:31little bit confused. Like, we have the

39:34Nova SDK SDK API key and we were also

39:38doing some stuff in bedrock. Ah, yeah.

39:40So how does this actually work? Yeah.

39:42Yeah. So in the the Nova API key

39:46separate but for this MCP client I did

39:49it actually needs a large thing with

39:50model to understand what's still

39:52happening. So if I go to claude oops I

39:57actually said I'm actually using claude

39:59sonnet 3.5 for my MCP server. So that's

40:02how because I just asked it you know

40:04find that website for me. How how does

40:06it know that without any of the code

40:08doing that? So it's using a large

40:10language model underneath the hood to

40:11actually find that information. So

40:13that's where we use bedrock for trying

40:16to find it in the code but

40:19sonnet. Yeah, I set the model ID. So

40:22you're an AI system helping you have

40:24tools you're using cloud 3.5 sonnet.

40:27You're making an API call a bedrock

40:28whenever something happens. So that's

40:30where the the LLM we're using. But Nova

40:32act is separate from that. So this MC

40:35like if you're using you know claw

40:36desktop it's running an LLM inside of

40:39that to be able to understand that for

40:40the MCP server

40:44question here

40:47question.

40:56Uh the question is uh does it integrate

40:58with browser plugins as well? Like could

41:00it integrate with LastPass? If you have

41:01the LastPass plugin, fill in the

41:03credentials through LastPass and then

41:05continue. I haven't tried that. But

41:06again, it does you can set up to use

41:08your own browser. So if you do that and

41:10that's integrated, it might be able to

41:12do that and click through that. But I

41:14have not tested that, but something to

41:15try out. Thank you.

41:18And the biggest problem you would face

41:20is two factor. Like even if you gave it

41:22a password like if you're using

41:24something like Google authenticator or

41:25something that would be like the biggest

41:27problem or capture but other than that

41:29if you provide it environmental variable

41:32or if you give it instructions on how to

41:33access LastPass in the browser it should

41:36be able to do it

41:38right and uh oh one more question then

41:40we'll go on to the last module.

41:53So clearly there are a lot of different

41:54uh agent architectures you could use. Um

41:57and I can imagine using this as uh like

42:01you have a coordinator agent set up

42:02somewhere that's running in the overall

42:04app and then when something pops up and

42:07says hey you need to go and look this up

42:09online go and check it. uh it should mod

42:12so my question is how modular it I mean

42:15it's just python so it should be pretty

42:16modular right is that the way in which

42:19you're imagining the architecture to be

42:22is just if I was coding a coordinator

42:25agent in lang chain or lang graph for

42:26example it would then call your sub

42:29agent and get and and run its stuff and

42:32then get and then get a textbased output

42:35that I throw into my message queue

42:38that's how it all integrates together is

42:39that right Yeah, that's one way you can

42:41do it. So, Nova act again, right? It's

42:42just Python. So, it could be a tool, it

42:44could be an API call. And the next

42:46module, we're actually going to show you

42:47how to actually make an agent from that.

42:49So, good good tea app right here. Uh, so

42:52Dan talked about the strands uh at the

42:55beginning. So, strands is a new agentic

42:57framework launched by uh AWS. So, let me

43:00open up the link. Uh, it's easy as a pip

43:03install strands and the first agent is

43:06like agent equals that. So it's very

43:08it's a model first uh way of interacting

43:11with agents. If you use a lot of agent

43:14frameworks in the past, there's a lot of

43:15bootstrapping and making sure everything

43:16is correct and like but that was

43:18necessary for kind of the older models

43:20like if you think back to like like

43:22Llama 2 for example, like how how far

43:24models have evolved since then. So but

43:26now we we can pass a lot of the you know

43:29bootstrapping we did previously. The

43:31agent can figure that out. So we don't

43:32need all these very uh heavy weights and

43:35like you know make sure everything's

43:36typed and every so whatnot. So here's a

43:39very simple example of how I actually

43:41spun up uh and also it has MCP native

43:44support. So in this example I actually

43:46have two MCP servers. Uh I have the AWS

43:50documentation and AWS diagrams MCP

43:53server. So if you go to this like AWS

43:55labs MCP, these are their official um

43:58AWS MCP servers and there's a bunch of

44:00different ones from like a cost

44:02analysis, Nova Canvas, diagramming,

44:04cloud form, uh lots of different ones

44:07here. Uh so again, it's all on GitHub,

44:10AWS Labs, MCP, but the example I do here

44:13is I'm actually uh I made like a

44:15solutions architect agent. Your role is

44:17to help customers understand is building

44:19on AWS. And I define these two MCP

44:22servers here. I give it the prompt and I

44:26say this agent has all the tools in the

44:28MCP server. It has a bedrock model. I'm

44:31using claude haiku here. And what's cool

44:33about strand is it can also use like

44:35light lm and o lama. So it has access to

44:38launch of different things or you can

44:39run it locally and of course it has

44:41access to Amazon bedrock. So that's what

44:43we're using here. So all those three

44:45things makes the agent, the tools, the

44:47model and the system prompt. And then I

44:49can say uh get the documentation for AWS

44:52Lambda and create a diagram of a website

44:54that uses Lambda. So let me run this

44:58code.

45:07CD.

45:18Okay. Okay, so it uses UV to install the

45:20MCP server locally. A lot of people I

45:23where does MCP run. This is running

45:25locally, but there are other ways to run

45:27it like in a lambda function and

45:28whatnot. But for just testing it out, it

45:30pulls down the the MCP server locally

45:33and runs it. And you can see it's

45:34already executing. So let's make this a

45:37bit bigger. Uh

45:42so it says, okay, I'm going to help you

45:44with that. First, I'm going to search

45:45the AWS Lambda documentation. uh read

45:47the documentation, then I'll create a

45:49diagram illustrating a static site. So

45:51you can see it does a post request to do

45:53the search. So the MCP server defines

45:55where everything is. I don't have to

45:56like feed it in the well architected

45:58framework. The AWS documentation is

46:00always updated. So it just knows called

46:02the search function. It got the Lambda

46:04welcome file. It it put that in. It's

46:07able to generate the diagram. It it

46:10generates the diagram. It tells us what

46:11is going on, how the workflow looks

46:13like. It tells me it saved the diagram

46:15to this location. I can open it up.

46:17Generated diagrams.

46:20Oops.

46:22And oh, it's very small. Let me see if I

46:25can make this bigger.

46:29There you go. So, it was able to

46:30generate the diagram for me. So, all

46:32through that about uh you know 40 lines

46:35of code. I have two MCP servers. I have

46:38my prompt and it's able to understand

46:40that get that and just generate

46:41something for me with that. Uh so that's

46:43very easy to get started with strands of

46:45building a agentic workflows. I know

46:47agent means a lot of different things to

46:49different people but you know you have

46:51tools the model the system prompt do

46:54some type of action and strands makes it

46:56extremely easy to do that. If I use

46:58other frameworks it could be a lot more

47:00code to do something like that

47:01especially integrating MCP natively like

47:03that. I'm going to pause here for any

47:05strands questions.

47:14It's coming.

47:18Um I know Bedrock already had it kind of

47:20agents SDK. So is strands replacing that

47:24or is this now the is this replacing

47:26that or is it supposed to complement

47:27that? Like is this the preferred way of

47:29creating agents with models in bedrock?

47:31Yeah. Well, when it comes to preferred

47:33way, it always comes down to your use

47:35case. So the bedrock agent has a lot

47:37more I guess opinionated ways to do

47:39things. It's you can do it through the

47:40console. It has built-in support right

47:43there in AWS. Well, strand is more as an

47:45open source framework. So you can

47:47download the code, you can use other

47:48models through that like light lama. If

47:51you use bedrock agent, you can't run

47:52that offline. So there's different use

47:54cases, different developer tooling. I

47:57mean me as a software engineer, I like

47:58you know code first doing things. So it

48:00does depend on your use case, what

48:01you're trying to do in your experience.

48:03Can can you show the code real quick?

48:05Yeah. Yeah, this is the code. Yeah, just

48:07show the agent.

48:10So, this is an open source framework. If

48:12you go where it says agent, you and it

48:15says model. Right now, we're using a

48:16bedrock model, but you can use another

48:18model with light LLM. Yep. So, you don't

48:20need AWS at all in that instance.

48:26Right.

48:32Yeah.

48:33So there's documentation anthropic

48:35lightm uh lot of different model

48:37providers lama open aai. So it's an open

48:40source framework so you can use it

48:41whatever you want. So but yeah that's

48:43the idea with strand open source model

48:45agent development kit.

48:47One question suppose I want to build a

48:50tax to SQL agent and I have um say 15

48:54tools already built in that I want this

48:57agent to be able to use. If I use this

49:00framework, um, how can I make sure that

49:04the agent know when to use the right

49:07tool and the sequence? Yeah, great

49:10question. Uh, so I didn't this example I

49:13have a weather agent. So one thing you

49:16said you already have tools. What I like

49:18about strange a lot is I can write a

49:20Python function I already have and let's

49:22put this tool decorator and that's it.

49:24You know, you don't have to put anything

49:25else. it understands this is the uh what

49:28you need to do and then when I'm going

49:30to that agent I have this tools and it

49:32has put in the the native tools we're

49:34going to be using http request is a as a

49:36standard tool in the strands framework

49:39so in this example I'm like asking what

49:41is the weather in Seattle and then also

49:43how many words are in this response uh

49:45this open API uh API weather.gov gov

49:48where you don't need an API key and it

49:50can find the information for you. So,

49:52I'm gonna just update this San Francisco

49:57and this

49:59show wrong, but it's a figure it out.

50:01Weather example, weather word count. And

50:04I was very specific, you know, find the

50:05weather first and then how many words

50:07are in the response. So, it's able to

50:08use that tool. It gets the forecast and

50:10then it knows to use that word count

50:12tool next. So, we're passing a lot of

50:14the information to the model. The models

50:16are very smart now. We don't have to say

50:18do this, do this, do this. The let the

50:20agent figure it out. That's kind of the

50:21goal of the agent. You give it the

50:23context and the tools necessary, it

50:25figures out the best way to solve the

50:26problem. But then wouldn't it be prone

50:29to hallucination when you give it 20

50:31tools and then because we've tried that

50:33with AWS bar know the similar things

50:37when you bind more I think more than 10

50:40tools it's going to sure there's always

50:43you know a balance but I again the

50:45models are much better like try using

50:47claw force on it. Is it hallucinating as

50:49much? Like these newer models are much

50:51better for understanding the concept and

50:52understanding what tools when. The older

50:55models sure they get confused. There's

50:57so many things. But I'm very confident

50:59on these newer models they can

51:00understand your use case and what tools

51:01available and figure out the best way to

51:03solve the problem. So then with this

51:05framework there wouldn't be a way for

51:06you to orchestrate a customized flow but

51:11more like you give the control to the

51:13agent. You could if you want to have

51:15like specific like do this specific way

51:18uh there are different ways in strands

51:20uh with something called workflow mode

51:23where you actually say uh you know this

51:26is the workflow I want to do research

51:28results analyze things write a final

51:30report if you have to do something very

51:32sequential a strands has that I won't

51:34have time to go through all the

51:36different you know ways to do multi-

51:37aent collaboration and whatnot but this

51:39for that particular like I wanted to do

51:41xyz first the workflow way can do that.

51:44So yes, then is it possible say um I I

51:49don't have a predefined workflow but I

51:51know it needs to figure out the right

51:53workflow then then that's what I just

51:55did there. You know I just gave it a

51:57sentence and figured it out. I see. I

51:58see. Okay, perfect. Thank you

52:02on it but um Cloud 4 has something

52:05called interle thinking. I believe

52:06that's what it's called where it can

52:08handle multiple tools processing much

52:11better than most models today. So if

52:13you're passing in 20 tools, it's able to

52:17work through the agentic loop to really

52:18figure out which tool to run. And it's

52:21also able to run parallel tool calls. So

52:24rather than just say, okay, here's the

52:27objective, let me run this tool. It can

52:29say here's the objective, let me run

52:30this tool, this tool, this tool, then

52:32this tool, and then process the results

52:34and determine what needs to happen next.

52:37So I would try a cloud for which he like

52:39Banjo mentioned.

52:42Then last example really quick. Uh again

52:45you know strands I made my Nova act MCP

52:48server and it can actually run that you

52:49know I define this is the MCP server use

52:52the Nova MCP you know use the cloud. So

52:55same type of thing I can have another

52:57agent you know use uh nova act as well.

53:00Uh so strands make it very easy to build

53:02these agentic workflows. Uh so that's

53:04really really enjoy the the developer

53:06experience of using strands and you know

53:08I already have the MCP server. We see

53:10the same exact example before. So once

53:12you have the MCP server, it's very easy

53:14to plug in into different uh

53:16architectures and strands makes it very

53:18easy to to accept that.

53:23Uh but yeah, those were the three

53:24modules really about how to use strands.

53:26Uh MCP then Amazon Nova ACT. Again, uh

53:31Strand is open source. You can download

53:32it pip install strands. Uh if you just

53:35type strandagents.com, it'll take you to

53:38the documentation.

53:39again also Nova act nova amazon.com it's

53:44free and log in

53:47and then think that's all the time we

53:49have but we do have a a survey uh and

53:52you can get AWS credit code by filling

53:54out this survey so I I have a question

53:56about that workflow thing in uh strands

53:59when you create these individual agents

54:01can you define which tools are passed on

54:04to each agents yeah yeah it's a great

54:06question Dark about different agents

54:07we're running out of time but I'll

54:09quickly show uh I have a multi- aent

54:12example I believe.

54:15Oh I think you had it in the docs. Yeah.

54:17Yeah, it's in the docs. Yeah. Yeah.

54:20Yeah. Each of these is a different

54:22agent. So you know this is an agent. You

54:24can have a different system prompt. You

54:25can have different tools. So you're just

54:27defining the agent and then yeah you can

54:29have different tools, different whatever

54:30there different models and then the

54:32workflow would just call that. So yes,

54:34completely customizable. So that's the

54:35good thing about Strand. It's very easy

54:36to customize and build scalable

54:38solutions like that. Thank you. And then

54:41again, uh here's the survey. You can get

54:44AWS credits for filling out this thing.

54:46Tell us how we did, what you liked, what

54:47you want to learn more. And now go

54:50build.

54:52[Applause]

55:03Yeah. Any other questions while we wait?

55:05I think we have a minute.

55:15Thanks for the presentation. Um so as

55:18these systems develop I think that it's

55:20reasonable to assume that um they would

55:23emerge as an increasingly effective

55:25vehicle for committing fraud online at

55:27scale which would push businesses to

55:30implement uh more things like capture

55:33which kind of decreases the surface area

55:35that tools like this would be

55:36applicable. So what is the long-term

55:39strategy for that? Well, you already saw

55:41we failed to capture today. Like, you

55:43know, we're not trying to b capture.

55:44We're not trying to break things. You

55:46know, a responsible AI is very important

55:48to Amazon. So, no, we're not trying to

55:49let this tool commit fraud. You know,

55:51you have to have an API key, so it could

55:53be monitored. So, use cases like that

55:55will be shut down.

56:00We

56:03think we're done. Yeah. So, thank you

56:05all.

56:08I think it's finished.

56:13Oh, we can keep going. We have more

56:15time. Oh,

56:17the clock the clock ran out. So, I

56:19thought we were kicked out. All right.

56:22Well, more questions then, I guess. I

56:25thought Yeah, another question.

56:35Um, so regarding Nova Act, let's say

56:38that I have a headless browser in the

56:41cloud. Is there a way to connect Nova

56:43act to my custom browser instance in the

56:45cloud? Yeah. Yeah. Yeah. You can there's

56:47a way to like put your own browser

56:48instance. So yeah, Nova supports that.

56:50So possible. Yeah. Thanks.

57:05Let me go to Novak GitHub page.

57:11And just some examples there.

57:34So yeah, there's a way to set up your

57:35own user agent for Nova app. Definitely

57:37possible.

57:47Questions. Yeah.

57:54Yeah. All right. Well, apparently I have

57:55still more time. So, I don't know if

57:56anyone actually got into the workshop.

57:58So, we can still uh

58:01build some stuff or I can try some other

58:03examples.

58:26Try to make Nova act.

58:37I tried to make a stream app with Nova

58:40Ax. So, we can try if that works.

58:43Oops.

59:05So, one example I tried, I tried to make

59:07a Streamllet app that uh look for like

59:10the top five uh PlayStation games on

59:12game FAQs and then create an image like

59:15a nice graph for me, but it it can fail.

59:18So, uh I think that's one of the issues

59:20there. I think it failed at one of the

59:22steps there.

59:23Uh

59:25let's see. Oh, that Nova app got an

59:28error. So,

59:30it couldn't navigate game faqs.com. So,

59:33it does it does fail at some of the

59:34things. So, that's you know, again,

59:36research preview. You have to be more

59:38specific on how it goes through things.

59:40Uh, but yeah, let me show you where the

59:42the code is just so you can have an

59:44example. Let me pull up the code.

59:52Yeah, let me try let me set up my local

59:54machine so we can see how it works.

59:55Yeah.

1:00:04Oh, yeah. Go for it. How much does Nova

1:00:07act depend on like uh semantic HTML and

1:00:11like good web design to actually work? I

1:00:13mean it understands the actual page so

1:00:15it can click through those things. But

1:00:17if the if the page like doesn't have

1:00:18like a search box or button and not be

1:00:20able to navigate. So as long as the p it

1:00:22can see the page, understand where to

1:00:24click and then click those correct

1:00:25buttons. So maybe a follow is there any

1:00:29like efforts to do like experimental

1:00:31like engagement on the page? So if it

1:00:34comes on a page that it's not familiar

1:00:35with, maybe it would try and act like a

1:00:38human would to like click on things or

1:00:40try things out depending what you you

1:00:42put in that prompt because again you're

1:00:44creating that workflow what it should

1:00:45do. So if you say, you know, explore

1:00:47this website and find things, it will

1:00:49it'll try to click through that. But

1:00:50again, it's up to kind of what that

1:00:52initial prompt is that you have for it.

1:00:55Yeah. When you're using overact, you're

1:00:56kind of giving it step-by-step

1:00:58instructions when you're using the SDK.

1:01:01So that way, if you kind of know it's an

1:01:03obscure website, you can give it those

1:01:06instructions that it need to perform

1:01:08rather than the MCP server um is using

1:01:11natural language to infer what needs to

1:01:13be done. So it's not specific

1:01:15instructions

1:01:16coming from you unless you provide it.

1:01:27Yeah. So, I'm going to run it locally on

1:01:28my machine just to show an example. Uh,

1:01:31let's see.

1:01:39Oh, let me hide my key for a second

1:01:42because it's been recorded.

1:01:55Python get coffee.

1:01:59Thanks for coming.

1:02:04All right. So, I'm just running it

1:02:05locally on my machine. So, without

1:02:06headless mode, so you can see it opens

1:02:08up the browser.

1:02:15It's able to type coffee maker.

1:02:19So what we're looking at now is not in

1:02:22headless mode. This is actually Nova act

1:02:24actually performing the task in a

1:02:26browser. So yeah

1:02:28a lot of questions about how does it

1:02:29work you know and we can try more

1:02:31complicated examples. I just wanted to

1:02:32show it could work on your machine

1:02:38and you can see the log. You know, I'm

1:02:40looking for and if I like change the

1:02:42page while it's doing something, it's

1:02:44going to like mess up. So, I'm going to

1:02:45click the page and see what it does.

1:02:46Like, so someone asked about click

1:02:48things of that nature. What's it going

1:02:50to do now?

1:03:00So see it crashed now because I brought

1:03:02I changed a different page didn't know

1:03:03what to do. So example you can interact

1:03:05with it when it's going through the

1:03:07motion as well. And then I believe I

1:03:10have an uh can the MCP server I set up a

1:03:14cloud instance.

1:03:17Oops.

1:03:26And then I have a my Nova act MCP server

1:03:29is there. So I'm able to actually you

1:03:30know I click this you can see all the

1:03:32tools it has available. So I can ask it

1:03:35to like navigate a website. So uh

1:03:39anyone have a complex example? You can

1:03:41see the MCP server. So I know some

1:03:44people have been asking some complex

1:03:45examples. So get go ahead and give me

1:03:47one

1:03:50here. You got you got one.

1:03:59You can try it. Do you have a specific

1:04:01website that has like drag and drop?

1:04:16Draw.io. Uh, let's go to draw.io. io and

1:04:21make a cool diagram. Use Nova act.

1:04:28Let's see what happens.

1:04:37All right. So, let's go to draw IO. All

1:04:39right. It opened the page.

1:04:45Do I have to accept something? Nope.

1:04:47It's going. Oops. All right. Open

1:04:49dry.io. Let's see.

1:04:55Make this smaller.

1:05:01Wait for page to load. Look at my

1:05:02initial setup for template selections.

1:05:05All right, it's going. Uh.

1:05:09Oh, it crashed.

1:05:11What happened? Oh, do I have to allow

1:05:15allow always?

1:05:17Oh, it took a screenshot.

1:05:26I need to continue the browser session

1:05:28to see what's available. Let's look at

1:05:29the screenshot. All right, it's opening

1:05:31up again. Uh, it's going to draw.io.

1:05:48Yeah, if I keep clicking away, it clicks

1:05:50back to the di the browser session. So,

1:05:54I need like two monitors.

1:05:57See, is it going to figure out how to

1:06:00use draw io?

1:06:04Wait for pay. Take screenshot. Look for

1:06:06template options. Come with blank pay.

1:06:08All right. It's so it's kind of I didn't

1:06:10give it any specific instructions. I

1:06:12just said make something cool. So maybe

1:06:14that's too hard to interpret for this

1:06:16website. Maybe I have to say click this

1:06:18click the square button and then drag

1:06:21the square to the center or something. I

1:06:22might have to been more explicit for

1:06:24that.

1:06:27It seems it seems to have frozen. All

1:06:29right, it's clicking something. All

1:06:31right, click new.

1:06:38Oh, okay. Hey, it's doing stuff

1:06:43again. It's not like super real time.

1:06:45It's going. It's not like

1:06:46instantaneously, but it it's it is

1:06:48clicking through the buttons, clicking

1:06:49through stuff.

1:06:51All right.

1:06:53Did it do anything? Oh, the CL. So, it

1:06:57looks like it fa So, yeah, looks like

1:07:00Claude failed that one. So, I won't

1:07:02blame Nova for that. But that's the

1:07:04that's the idea. So, thanks for trying

1:07:06to do something hard.

1:07:08All right, another question back there.

1:07:11Oh, yeah. Can we can Can we try another

1:07:13one? Yeah, let's try another one. Sure.

1:07:14Can we do um you know on Google Maps,

1:07:18find the top three rated coffee shops

1:07:21with within a mile radius of this hotel.

1:07:23Top three coffee shops

1:07:27shops near the Marriott Marquees in San

1:07:33Francisco.

1:07:39You'll figure it out.

1:07:46All right. Open Maps Google. Search Mary

1:07:48Marque San Francisco. Wait for results

1:07:50to load. So, it has a plan. It's going

1:07:51to do something. So, let's see. It

1:07:53opened Google Maps.

1:08:01All right. Type MQ San Francisco. So,

1:08:03it's able to type that.

1:08:11Okay. It searched. It found the Marquee.

1:08:20So, there's a copy button. Let's see if

1:08:22it clicks that. I'm curious.

1:08:37Looks like it's frozen.

1:08:39Give it a couple more seconds.

1:08:45What did it click?

1:08:47It got this 15 minutes. I was trying to

1:08:50type in that box. Okay.

1:09:03All right. Just type in coffee shops.

1:09:04All right. All right. It's going.

1:09:14All right. So, all right. It'll open the

1:09:15coffee shops and let's see if we can get

1:09:17those top three. There's a 48 47 another

1:09:2047. Let's see if it can get that.

1:09:39Did it crash?

1:09:41I think it did it, but I think I'm going

1:09:44to blame Claude. Cloud desktop crashes.

1:09:47might need a zip MCP client. Uh

1:09:52yeah,

1:09:56I think yeah, I think Claude Desktop

1:09:58doesn't like doing that. But again,

1:09:59because it's an MCP server, I can open

1:10:01up a different MCP client. So I can open

1:10:03like cursor, for example, and ask it

1:10:05questions through that

1:10:08cursor.

1:10:16Let me close this.

1:10:20And then

1:10:22you see it has the MCP tools. Oops, it

1:10:24has this up. Let me just open up a new

1:10:26one. I can do the same thing and use

1:10:31Nova act

1:10:41and then it's calling the MCP tool

1:10:43again. So that's the beauty of MCP. I

1:10:45already have this server. I can just use

1:10:47a different client. It can understand

1:10:48all the information it needs to and do

1:10:50the exact same command. So

1:10:53it's going to do the same thing. cursor

1:10:54might be smarter than cloud code.

1:10:58But yeah, it's able to do the exact same

1:10:59type of thing. So

1:11:04a question over here. Yeah, I just got a

1:11:06question.

1:11:08Yeah.

1:11:12Yes. So Novak question was where is

1:11:13Novak running? And yes, it's running in

1:11:15the cloud. So yeah, it's just you get

1:11:17that API key and it's doing the call

1:11:19behind the scenes in AWS cloud. Yeah. So

1:11:21then what what does it upload to the

1:11:23cloud? Well, it's asking the the

1:11:25questions and like you know go to Google

1:11:27Maps and then they say I understand that

1:11:29and it's actually clicking those buttons

1:11:31and doing the actions. So the the actual

1:11:34uh intent of what you're trying to do in

1:11:36the specific action

1:11:39and if I was using it locally,

1:11:43you couldn't use Nova act locally. It

1:11:46has to be uh connected to the internet

1:11:48to use it.

1:11:50Okay.

1:11:51But if I for example if I wanted to look

1:11:55my

1:11:57Yes.

1:12:01Ah yeah I I see what you're saying.

1:12:02Yeah. Yeah. If you I mean it is you know

1:12:05it's a API endpoint. It's been passed to

1:12:07AWS. So you know only pass information

1:12:09that you feel like it's not going to be

1:12:10we're not training the data or taking

1:12:12any of that nature but it's going to the

1:12:14AWS cloud and processing you know what

1:12:16to click on this button locally on your

1:12:18like browser.

1:12:24So looks like it's not. Yeah. See, now

1:12:26it's even certain the rating. It

1:12:28actually knows which rating to press. So

1:12:33So the Nova act is going to just give

1:12:35the plan, right? Yeah. Yeah. Well, when

1:12:39Nova act is is executing like in this

1:12:41MCP server example, I say, you know,

1:12:43find the top three copy stops in

1:12:45Marriott near the Marriott marquee and

1:12:47then I'm passing that information to the

1:12:49the LLM to understand that plan and then

1:12:51it uses Nova act to interact with the

1:12:54browser because like cursor or cloud

1:12:56code or Amazon Q, they can't interact

1:12:58with the specific uh you know website by

1:13:01itself. It uses it uses Nova act to do

1:13:03that, right? But like given a question

1:13:05though like how how does it come uh come

1:13:08up with a plan? Oh the MCP server like

1:13:10the the client so I picked the model in

1:13:13the example we had the MCP client we had

1:13:16this we showed the model I don't use

1:13:17cloud 3.5 that's coming up with the plan

1:13:20same thing here you know I asked you

1:13:22know help me find the top three copies

1:13:24of native Mario marquee this the model

1:13:26that uh cursor is using is coming up

1:13:29with that plan and then I'm using the

1:13:31nova act mcp server to act on it.

1:13:33Exactly. So this is the plan. Search for

1:13:35Mary Marquee. Click the mirror marquee

1:13:37you know search for the things and you

1:13:38see all this information Nova act

1:13:40returned and it actually it returned

1:13:42this time. So I think the problem was

1:13:44with claw desktop but it got the three

1:13:47top three copy stops there. Right. What

1:13:49are all the tools that uh Novaact can do

1:13:51today. Uh so the MCP server is what I

1:13:54wrote. So uh but the idea between Nova

1:13:57act it can interface with the web

1:13:59browser that that's the tool. The

1:14:00browser is the tool and it can anything

1:14:02that on the website can actually click

1:14:03through, go through the example, etc. I

1:14:06see.

1:14:09You got the repo. Do you got an

1:14:10architecture that shows the MCP just so

1:14:13they can see it? Yeah. So, I mentioned

1:14:16uh there's an official AWS MCP servers.

1:14:18So, uh this AWS Labs MCP and a lot of

1:14:22different um MCP servers here. For the

1:14:25one, the Nova Act one, I created my own

1:14:27one. uh go back to the nova act examples

1:14:30or where do the ah here when I use

1:14:35amazon to explain you know the am the

1:14:38mcp server for like what what's going on

1:14:40what tool was the browser session

1:14:42performing an action on the browser so

1:14:44this is a good uh thing to talk about so

1:14:47can you dive deeper

1:14:51on the browser action function and then

1:14:55we can see because this is how it's

1:14:56actually acting So, uh, Amazon Q browser

1:15:01action is designed to perform actions.

1:15:04It has this, uh, what's cool about it,

1:15:07it just does, oops, let's go into the

1:15:11code. It performs a single action in the

1:15:14Nova act browser. So, it's executing

1:15:16that action. It stores this act. act is

1:15:19like what Nova says you know click the

1:15:21search bar do this XY you know

1:15:25why the MCP client understands how to

1:15:27use this act that passes the correct

1:15:29action so we saw the example here one of

1:15:32the actions was like go to Google maps

1:15:35or click this button or do that search

1:15:38that's how it's able you know these

1:15:39actions and then the nova act MCP server

1:15:42is translating that to actually click

1:15:43that button so the MCP server provides

1:15:46all the interfaces it necessarily needs

1:15:48So then these MCP clients can interact

1:15:51and do actions and do things. Yeah. And

1:15:54Nova act is just the model in the

1:15:55background that's able to click those

1:15:57buttons.

1:16:00Extending this question, it so your MCP

1:16:03server so claw uh or um cursor running

1:16:07locally, right? It's calling your MCP

1:16:09server that's also running locally. Is

1:16:11your MCP and your MCP server is the one

1:16:13that spun up the I guess the Chromium

1:16:15instance, right? Is it is your MCP

1:16:18server taking screenshots of what you

1:16:20see in Chromium and shipping them to

1:16:22Nova to Nova Act? The screenshots are

1:16:25locally and then based on that like you

1:16:26can see it's actually getting all the

1:16:28information uh the final page

1:16:30information. So it's not storing your

1:16:31screenshot data and sending that

1:16:33everything that it's running locally and

1:16:35it's clicking those buttons based on

1:16:36what's on the browser sensing. Got it.

1:16:38But is is any of any of the information

1:16:40in Chromium does that any of that need

1:16:42to be sent into any form? Everything

1:16:44running Yes. running locally. I have the

1:16:46distinction. Okay, perfect. Thank you.

1:17:00And let me open up the

1:17:10Where's that looking?

1:17:15So one of the things about making MCP

1:17:17servers is you have to provide a lot of

1:17:18context. So uh for no act like I say you

1:17:22know when writing action for no action

1:17:24be descriptive of what to do you know

1:17:26click the hamburger menu icon go to

1:17:28order history don't find my order. So

1:17:30the more you know uh concise and

1:17:33prescriptive what you want to do it's

1:17:34better you know search for hotels in

1:17:36Houston sort by average customer like so

1:17:38the better specific it is uh that's how

1:17:41the MCP uh client is able to make those

1:17:43great requests and find the information

1:17:45so type coffee maker search block enter

1:17:48so so the more prescriptive you are of

1:17:50nova act the better results you're going

1:17:51to be and I encoded that all into this

1:17:53uh MCP server so the clients can

1:17:56leverage that

1:17:58so I think that's Probably one of the

1:18:00hardest things about making the MCP

1:18:01servers that's making sure you provide a

1:18:03next context of when to use the tool,

1:18:05how to use the tool, the inputs and

1:18:07outputs. But once you solve all that,

1:18:09it's very easy to plug and play to

1:18:11different MCP clients like we've done

1:18:13here.

1:18:39question. Yeah.

1:18:52Right. So when Nova act is doing

1:18:54something, it's passing back the log of

1:18:56everything it's doing. So you know what

1:18:58what steps it did. So the starting page,

1:19:00the act the results, the action result

1:19:02ID. So it's keeping a log of everything

1:19:04it did. Uh power. So it's able to get

1:19:06that JSON to understand what the ID what

1:19:08the result is. So you can see what it's

1:19:10doing so it can move on to the next

1:19:12step.

1:19:14Yep.

1:19:16Make this bigger.

1:19:21A question.

1:19:28Sorry, a quick question. Yeah. Is this

1:19:31able to do uh like uh automated UI

1:19:33testing because of this?

1:19:36Well, with Nova, you know, you can

1:19:38define like what you want it to do. So,

1:19:40you're going to have to define, you

1:19:41know, go to this button, click this,

1:19:43does this work? So, you can define that

1:19:45workflow. So I mentioned before like

1:19:47back in the day like if I'm writing

1:19:48selenium code I have to go click this H1

1:19:50tag do this like now you can just write

1:19:52in natural language you know click this

1:19:54button click that button so yes it can

1:19:56handle that use case uh specifically of

1:19:58like opening the browser checking these

1:19:59things and but you have to like you know

1:20:02this nova act search for coffee maker

1:20:04you know you have you specifically have

1:20:05to write what buttons to press.

1:20:08Thank you.

1:20:19See, guess if we have time, I can show

1:20:22some multi- aent collaboration with

1:20:24strands. That could be something cool.

1:20:26Uh, I think I have a repo for that. So,

1:20:31should be

1:20:34uh go to the AWS labs page. Where's that

1:20:39work?

1:20:44and then claude.

1:20:49Cool.

1:20:56Okay,

1:20:58I'm just going to copy this code and put

1:21:01it into our environment.

1:21:27So in this example, I'm actually going

1:21:29to show how strand says multi- aent

1:21:31collaboration. So one uh way I'm

1:21:34actually going to create a PowerPoint

1:21:36presentation based on uh you know a

1:21:38cloud migration request. I want to like

1:21:41move my u infrastructure on premise to

1:21:44the cloud. give me a presentation of how

1:21:46I would do that. And so for this, I

1:21:48created three different agents. I

1:21:50created a cost analysis agent. So I have

1:21:52a system prompt there, a solutions

1:21:54architect agent to map out what you're

1:21:56going to be doing. And then each of

1:21:58these uh tools is an actual agent. So

1:22:02this uh costbus has the docs MCP server,

1:22:05the cost analysis MCP server. It has its

1:22:08own prompt. The presentation agent has

1:22:10its own system prompt. It has a tool

1:22:12from there's a a PowerPoint MCP server

1:22:15that I'm using and then there's an

1:22:17architecture agent that also has you

1:22:18know its own specific tools system

1:22:21prompt etc. So uh different agents for

1:22:24different uh things in the workflow and

1:22:27then I have this orchestrator agent what

1:22:29I've called the migration orchestration

1:22:31agent. It has a prompt. I tell it what

1:22:33tools it has access to. And then the

1:22:35cool thing with strands is I make this

1:22:37orchestrator agent and then the tools or

1:22:39this other agents in that. So it knows

1:22:42when to call this agent for this

1:22:43particular tool when to do that and I

1:22:45say you know I want to migrate my work

1:22:48my uh workload. So write the right tools

1:22:52to find that. So I made a fictional

1:22:54company called shop easy e-commerce.

1:22:56They have onremise Java MySQL database.

1:23:00I want to zero down from migration like

1:23:02all this all these little constraints in

1:23:05there and I wanted to make a migration

1:23:07plan and a PowerPoint presentation that

1:23:09I can present to my executives of how

1:23:11this would work and I just assigned and

1:23:15I'm the orchestrator agent will find out

1:23:16what to do. I don't specifically say do

1:23:18this one first, do that first. We'll let

1:23:20the the agent figure that out. So let me

1:23:23run that strands

1:23:26and it should be multi- aent

1:23:34right so cloud partition agent as tools

1:23:39all right again so all the MCP server is

1:23:42running locally it downloads it's using

1:23:43the UX it start with the architecture

1:23:46design first generates a diagram

1:23:55going to use W. So take some time. It

1:23:58might fail but it would just update

1:24:00update itself.

1:24:02Making another judgment.

1:24:13All right. Think it couldn't generate

1:24:15the diagram there, but it's saying all

1:24:16right. That's going to this is what the

1:24:18diagram should have. This is what we're

1:24:19going to doing.

1:24:27Now it's going to do a cost analysis

1:24:29cost analysis on based of the things we

1:24:31did there. So it's it's a this workflow

1:24:33takes maybe a couple minutes to run. But

1:24:35you can see it's calling all these

1:24:36agents uh different things. It's

1:24:38understanding what to do, what actions

1:24:40to take first. It's finding pricing for

1:24:42EKS because it has the uh cost analysis

1:24:46tool and knows where to find that

1:24:48information. So it has the up-to-date

1:24:49pricing all the time finding for Aurora

1:24:52for its database. So it's able to

1:24:54understand all that information and get

1:24:55real time up-to-date information just

1:24:57because we have that uh pricing MCP

1:25:00server from the AWS labs example

1:25:04pricing

1:25:08is it oh cost analysis.

1:25:11Yeah, cost analysis, MCP server

1:25:13documentation, all the stuff you need

1:25:15for finding the right price on AWS. It

1:25:17has all that information and the agent

1:25:19was able to just use that once it's

1:25:22going to generate a report.

1:25:29So, it's still running. Again, this does

1:25:31take a while because I'm asked a very

1:25:33complex question, a lot of things going.

1:25:35Uh, so it does take a couple minutes to

1:25:37run through all that. It gets it monthly

1:25:39spend predictions, monthly savings, etc.

1:25:43So, it's able to understand all the

1:25:44information and get all up-to-date

1:25:46information based on the plan we've

1:25:48provided.

1:25:51And the last thing now wants to create

1:25:53an executive presentation. So, download

1:25:55the PowerPoint MCP server and now it's

1:25:57going to make a PowerPoint presentation

1:25:59based on that.

1:26:03So, adding the title slide. So, you

1:26:05know, add a placeholder. So generating

1:26:08powerpoints is a very popular use case

1:26:10and there's an MCP server that can go

1:26:11ahead and just do that add bullet points

1:26:14etc.

1:26:15So give it a couple another minute or

This transcript was generated from the captions YouTube publishes for this video. Get the transcript of any YouTube video atfreeyoutubetranscribe.com: free, unlimited, no sign-up.