AIAI EngineerJun 27, 2025· 14:26

Introducing Strands Agents, an Open Source AI Agents SDK — Suman Debnath, AWS

Suman Debnath, a Principal ML Advocate at AWS, introduces Strands Agents, an open-source SDK that simplifies AI agent creation by requiring only a model and tools, eliminating scaffolding. He demonstrates building an agent in a few lines of code to read, summarize, and speak a file, using default tools. Another demo integrates Strands with an MCP server to generate animated math videos via Manim, requiring no system prompts—the model reasons autonomously. Custom tools can be created by decorating functions. Strands supports any model via LiteLLM or Bedrock, and is available at strandsagent.com with a GitHub repository for contributions.

Transcript

Intro0:00

Suman Debnath0:15

Alright, so what we are going to do is I'll quickly go through a couple of demos, that's all. That's the plan. So Strands is an open-source SDK, which has only one motivation: it is to make your agents as simple as possible, without any scaffolding.

The only thing that is needed is tools and the model. That's all. There is no scaffolding. You don't have to dictate what the agent should do. And the idea is, since the models are becoming more and more intelligent, we want the model to take the reasoning part of our agents.

We don't want to scaffold with a lot of prompts, a lot of system prompts, a lot of backgrounds, and all that. So that's all to it. And it is also integrated with various

third-party providers like LangFuse, LightLLM. You can use any model of your choice. You don't need to use Bedrock-hosted models, but you can go ahead with any of the models of your choice using LightLLM. And also, you can use Ollama if you want to test it out locally.

Now, this is the agentic loop that we have in Strands. As I mentioned, it's just the models and the tools. That's all. And that is actually the two Strands in this logo of Strands denotes: one is for model, one is for tool.

I just happened to know this yesterday, so yeah. Okay. So now let's see a demo: how you can create a Strands agent. So the demo that we are going to have now, it's very simple. We are going to read one file from our disk, and then we will generate a summary of that.

File Agent Demo1:50

Suman Debnath2:10

Then we will write that summary into our local drive. And then we will also tell the agent to speak out the result. So basically, we are trying to add the voice aspect of this. Okay. So now there are three things we are doing: reading a file, writing a file, and generating a speech.

All of these three, we are doing it using the default tools from Strands. So you don't have to write any custom tool for this. You just have to install Strands tool, and boom, you can get started with this.

Okay. So just remember this use case. I have recorded this because I heard that the Wi-Fi is pretty fantastic here, so.

Alright. So let's see how it goes.

So here, the first thing we need to do is we need to install Strands. So that is what we are doing here. We are just installing the Strands agent. And then we are going to install Strands tools. So this is simple pip install, nothing fancy here.

And when you install the Strands tool, it gives you a lot of default tools. You can always make your own custom tools, but this is how you can create or use out-of-the-box tools. So these are the three tools that we are going to use.

Now we are going to write the application.

So the first thing that we need to do is we need to import Strands. And by default, it uses Bedrock model, which is Claude 3.7 under the hood. But if you don't want to use that, you can always use any model of your choice.

But by default, it uses Bedrock. I'm trying to show you how you can define the model, but later on when we create agents, you will see that you don't have to give model ID. By default only, it should work.

But I just wanted to show you, if you want to define your own model, how you can define the model. In case you want Ollama, you can use Ollama there. And now this is a system prompt. When I share the GitHub repo, try to do this: delete the system prompt.

It should still work. But I just wanted to give you an intuition of how things work under the hood. And if you see here, all we are doing here, we are giving the model ID, system prompt, and the tools.

That's all. And now we are asking the same question: read this chapter number 10, summarize that, and write it in a markdown file, and speak out. Now to listen to the speech, let me increase the volume. So now it is reading the file.

Then it is trying to write the file after creating the summary. And now it should speak out.

The humanoid functions like a camera, with light entering through the cornea.

Suman Debnath5:04

Okay. So you get the idea,right? So how these things work. Now, there is one more demo I have, which is around MCP with Strands. Because without MCP and agents, I was told that you cannot have any talk in this conference.

So. Alright. How many of you have heard of

MCP & Manim5:21

Suman Debnath5:26

Three Blue, One Brown YouTube channel? Oh, wow. So you know what we are talking about. So we are trying to build animations and videos like what we see in Three Blue, One Brown. It is powered by one of the libraries called Manim.

So I've been working with this Manim for a couple of years. If you are from a science and mathematics background, eigenvalue, eigenvectors, SVD, these are the concepts which are very easily we can explain using visualization. So what we are going to do now is we are going to create a Strands agent using an MCP server, which will help me to generate these videos using Manim.

With me so far? Yeah? So this is how we can do. Assume that we already have an MCP server, which can generate this video. Okay. Just assume that. It is not here, but it is already there. Okay.

So now what we are going to do is, using Strands, we are just going to call the MCP client and make use of that server. So in this case, I'm importing the Strands agent and the MCP client. The next thing that we are going to do is we are going to create the MCP client.

And if you see here, this is my MCP server path, where I have written the code to execute that Manim code. So this particular code I'm not showing, but after this, I will show it to you what that code is doing.

But that's all. I don't have to do anything else. Now, when I create an agent, in the previous example, if you remember, we mentioned that

agent then tools equal to read file, write file, and speak. In this case, I'm not using any of the default tools. My tool is nothing but the MCP server. And for that, I'm just using tools equal to Manim MCP client list tool sync.

So this will broadcast all the tools that the MCP server has to my client. So that is nothing but the Strands agent. With me so far? Yes? Perfect. And at the end, we are just going to give the prompt.

So in this case, you can give any prompt of your choice. But here, we are just saying that create a visualization for this cubic equation within the range of x minus 3 to x equal to 3. If you want to try this with something else, you can always give, like, explain me byte pair encoding in a visual way.

Or you can say, explain SVD. Explain how two metrics of 2 by 2 cross 2 perform a matrix multiplication, or whatever,right?

So now let's see this. So for this, before I start the MCP client or the Strands agent, I have to make sure that server is up and running,right? So here, I'm just making the MCP server up so that this is available in that localhost.

And now I'm running this app.py, which contains the code which we have seen a while back. So finally, we can just give the prompt. So this is the same prompt that we have seen in the previous slide. And let's see what it generates.

And if you notice, we have not mentioned

any scaffolding kind of, like, system prompt and all that. We want the model to reason about this and figure it out of its own.

So I have not done anything. This is. And it is not Photoshopped. It just came up like that.

And you can actually define the duration of the video, let's say 30 seconds, 10 seconds, and all that.

And if you have worked in Manim to generate this code, it takes some time,right? So it's not that straightforward. Okay. So that's about the integration with MCP and Strands. And before I show you a few of the resources, let me show you the code.

Server Code9:55

Suman Debnath9:55

No one pings me while I am working, but everybody pings when. Okay.

Alright. So this is the

MCP server that I have. I have imported FastMCP. And

this is a couple of the tools that I have defined. And if you see this here, the way that you can create an MCP tool is just wrap it around with an MCP.tool decorator,right? So these two are the tools for my MCP server.

And when I come here,

not this one. When I come here, and if you look at the main function, so this is the function where I'm going to call that using Strands agent and MCP client,right? So what I've shown in the presentation is just a few lines from this main function, but we are doing a little bit more.

Before just calling the agent, we are listing the tools. But before that, we are also giving some examples. And if I show you this example,

I'm just giving one example of how to create

and construct using Manim. That's all. You can think of it like one-shot prompting. It's like that. But

as far as the agent is concerned, it's just one line of code. We just list the tools. And then here, we are just calling the agents. That's all. And then we have a while true loop so that we get an interactive chat kind of an experience.

Okay. And in our first demo, not first demo, I want to show you one quick thing is

how you can create a custom tool. Okay. I'm just jumping around a couple of things because we just have two, three minutes. It's no less than a time bomb, trust me, when I see this. So let's say you have any function.

Custom Tools12:05

Suman Debnath12:22

Okay. Let me just quickly scroll down and show it to you.

Yeah. So if you have any function and you want to create that function, turn that function into a tool, all you have to do is this.

Where is that? Yeah.

Let's say this is a function. This is a different example. It's there in the GitHub, but I will not explain that. But the idea is, let's say you have a function. You want to convert that into a tool.

All you have to do is just import tools from here and decorate it with tools. Once that is done, this retrieve from quadrant will become a tool for you. So next time when you create an agent, when you create an agent, you just give that as a tool.

And now here, in this list of tools, you can give your custom tool as well as your default tools, whatever you have. Read file, write file, speak, and so on and so forth. Okay. So that's about it. Now, if you want to learn more about Strands, we have a GitHub repository.

Resources13:35

Suman Debnath13:35

So this is the launch blog. This is the documentation, which is nothing but StrandsAgent.com. And this is the GitHub link. Okay. And if you have any questions, feel free to

ask me. I'll be around. And we have a booth inside as well. There are plenty of demos with Strands, with Lambda, MCP, and

to get started. This is an open-source project. Feel free to raise a PR if you have something. If you have built something into the samples code repository within Strands GitHub. And yeah, share what you built. And if you have any feedback, let us know.

Thank you so much.