- All right, so what we are gonna do is, I'll quickly go through a couple of demos, that's all. That's the plan. So Strandset is an open source SDK, which has only one motivation, is to make your agents as simple as possible, without any scaffolding. The only thing that is needed is tool 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 model of your choice using LightLLM. And also you can use OLAMA 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 strand 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 strand 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. 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 a 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. All right, 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 strand tools. So this is a 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. These are the three tools that we are going to use. So 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 Cloud 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 am 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 want to show you, if you want to define your own model, how you can define the model. In case you want olama, you can use olama 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. 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 human eye functions like a camera, with light entering through the cornea. 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. All right. How many of you have heard of 3Blue1Brown 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 3Blue1Brown. It is powered by one of the library called Manim. So I have been working with this Manim for a couple of years to, if you are from science and mathematics background, eigenvalue, you know, 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. Manim. 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 am 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. If you see here, this is my MCP server path where I have returned the code to execute that MC, Manim code. So that, this particular code I am 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 am not using any of the default tools. My tool is nothing but the MCP server.
And for that, I am 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 x 2 perform a metric multiplication, or whatever, right? So now let's see this. So for this, before I start the MCP client or the strand agent, I have to make sure that server is up and running, right?
So in here, I'm just making the MCP server up so that this is available in that local host. 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. 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 Strand. And before I show you a few of the resources, let me show you the code.
No one pings me while I'm working, but everybody pings when -- okay. All right. So this is the -- so this is the MCP server that I have. It just -- I have imported fast MCP and this is the -- 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 this becomes -- these two are the tools for my MCP server. And when I come here -- 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 I -- 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, you know, and construct in using Manning.
That's all. You can think of it like one-shot prompting. It's like that. But my -- as far as the agent is concerned, it's just one line of code. You know, 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.
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? This is -- 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 -- 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, you know, turn that function into a tool, all you have to do is this -- 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 we 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. So this is the launch blog. And 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, you know, 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, you know, 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. . . . . . . . . We'll be right back.