Hello, everyone. Thank you for joining this session. In this session, we're going to talk about how you can build AI agents using Cloud on Vertex AI. Before to start, let's set the scene. As you probably know, building AI agent is very powerful. With AI agents, you can build such a cool applications. But the reality is, after you start developing and prototyping agents, and let's assume that you are happy with what you build, it's so hard to productionalize these agents. And the reason are essentially three. So first of all, you need to, because right now, to build agent, you have so many frameworks that provides tools that provides capabilities that you can use to enhance your agents. The landscape is so fragmented, so you need to figure it out how to integrate the different frameworks and different tools to make the system work. So the other reason is, let's assume that you are capable of building one agent or a multi-agent system with one framework. But at the same time, you want to use different framework together. It's not easy to make the communication happen between this two set of different agents. And then, even, let's assume that even if you are able to build agents, create this network of agents that are capable of communicating between them, it's so hard to manage them in production, because you need to take care of all the operations around the agents and the relative governance. So all the monitoring capabilities, the logging capabilities that you need to implement on your agent, they are very hard to be managed. In this sense, let's imagine that you will be able to have a toolkit that will allow you to standardize and develop your agent in a very efficient way. And then, together with this toolkit, you get a set of protocols that will allow your agent to consume tool and context with the LAM. But at the same time, connect with other agent in a seamless way. And third, you will get an agent platform that will allow you to deploy at scale this agent system and manage all the operations that are around this new kind of application. So with these challenges in mind, and these three main reasons that we want to address, that's why we define our own AgenteStack on Google Cloud. And our AgenteStack is composed by four main components. So the first one is AgentDevelopmentKit, which is an open source, code first, and developer-friendly framework that will allow you to build, evaluate, and deploy your agent at scale. But in order to enhance your agent, you need a way to standardize the agent, communicate with different tools, as I saw you before. So to address these challenges of protocols, one thing that we did when we designed AgentevelopmentKit is making it compatible with MCP. So probably you know what is MCP. You're already heard about it. But with MCP, essentially, you will make the agent compatible with several tools. And in general, application, you will provide your contacts to your application using LLAMs. On top of MCP, we also introduce like these Vertex AI Engine Engine, which is essentially a managed platform that has been designed to deploy, manage, and scale your AI agent in production. And it takes care of all those operational challenges and you know, possible capabilities that you need in order to deploy your agent in production. And finally, to address the challenges of allow communication between different agent build with different frameworks, we also introduce agent to agent protocol. So which is essentially, you know, open source protocol that will allow you to create this a seamless communication and collaboration between agents in whatever framework you built. So with this stack, so today we are going to use this stack to build multi-agent systems. But before to do that, let me introduce myself. I'm Eva Nardini. I'm a developer at the Google Cloud. I'm based in Sunnyvale. And today I want to go through this journey with you. And the journey will start with building a very simple ADK agents using Cloud. And then we are going to announce these agents using some pre-built tools and MCP. And finally, we will deploy the agents on agent engine. As a bonus, we will try to cover, we will try also to show you how you can connect multiple agents using agent to agent protocol. But in case we are not, we will not able to do that. Don't worry, we are going to have a live webinar at the end of a month. So we will show you how to do that later. With that being said, we want to build an agent, but to build an agent we need an LLAM. So let me show you how you can get access to Cloud Models on Vertex AI. So Cloud Models on Vertex AI are accessible through Vertex AI model garden, which is essentially a centralized hub where you can discover, deploy, and manage a wide variety of foundational and open models, including Cloud. So on a model garden, you will find the latest and greatest Cloud model this morning we just roll out Cloud 4. So I will show you. And after you simply, you know, you provide some credential and everything, you will get access to the model and you will be able to use it through API or through the console. So without further ado, let me show you how you can get access to Cloud. So let's switch on the, yes. So for people that doesn't know Vertex AI, this is how the Vertex AI console looks like. So Vertex AI provide a set of services to build both the generative AI and predictive AI application. And model garden, as I said, is a centralized hub that provides you several models from different, you know, model providers, including Cloud, including Anthropic. In fact, in the partner session, you will find the Anthropic Models. And here you can see all the Anthropic Models that we provide, including the latest that we released this morning. So in order to, you can use the model garden to test this model. So here is the Vertex AI, Vertex AI Studio, which is our prompt UI that you can use for test this model. As you see, I already select Cloud 3.7, so on it, which is the model that we are going to use today to build our agent. We are already integrating Cloud 4 with SDK, so stay tuned in the coming weeks. But through this UI, what you can do, you can test the model. And, you know, you can start interacting with it and using the API that you can get here to integrate with your application. So with that being said, now that you know more or less how to get access to Cloud, through Vertex AI, let's go back to the presentation and let's start building agents using this model. So in this demo, we are going to build a very simple agent, which is a birthday planner agent. So we will, it's an agent that essentially will allow you to organize a birthday party, such as in teams and, you know, getting the guest list and so on. And, you know, before to start this, before to build this agent, you need to know some concept related to ADK. Just one thing, I know this session is supposed to be a workshop, but because all the Wi-Fi issues that you've already faced, I will, you know, we will, we will already give you some credits, and I will share the repository with you. So after this session, you will be able to reproduce this code and go and show you at home. And if you have a question, you can always come back to me, okay. With that being said, these are the core concepts that you need to know about ADK. In order to build an agent with the agent development kit, first of all, agent development kit provides several type of agents that you can use. You already prebuilt some, you know, pattern, some agent in pattern, including sequential agents that you can use in order to implement your application. But the simplest pattern that you can find is the one that we use with the LLM agent, which essentially use just an LLM to feed, to, you know, build, to use the agent, to build the agent. And so these, these class represent the brain of the agent and it supports several models, including Claude, and essentially it allows, it requires you to set the model, give it the agent a name, some instructions, and they find the tool that you want to use. And then after you've done this, you get your agent already up and running. With respect of tools, you know what is a tool T's, it's essentially a mean that you can use to, you know, assign some skills to the agent. And, uh, EDK, if we provide some pre-build tools that you can use, but you also can, you, you can also define your own tools and integrate with the, with the framework. So you have the agents, you have the tool. In EDK, you have this concept of runner that puts together everything and coordinates, you know, execute the agents. So you manage the session, so the conversation state along the, while you're running the agents, and it is integrated with a very nice CLI that you can see here, EDK run and EDK web, that will allow you to interact with the agent programmatically or, you know, through a web UI, that I will show you later. And then last important thing that I want to mention, you have this concept of session, which essentially will allow you to store the conversation and interact with the agent in a way that, you know, it remembers what you already discussed with him before. Okay, so with that being said, I told you EDK support clause, how it is a per clause with two, you can use clause in two ways with EDK through the LL, uh, light LLM integration, which is something that I will assume you are familiar with, or you can use the pre-build integration that we provide as a vertex AI team, uh, using clause in the LLM registry, which is the one that I will show you, uh, today. It's just a nice way, you know, to integrate the model with, uh, with the interface. So with that being said, let me show you how you can build, um, an agent using, uh, using EDK. So this is the repository that, uh, you will, you will get once you, uh, download from, once you get, once you call the repo from GitHub. So in the repository, you will have three agents, we are going to cover them, uh, today. And the first one, as I said, is the birthday planner. So in order to be an agent with EDK, all you need to do is providing essentially three file, uh, the agent.py, which contain the agent logics, uh, the environment variable file, which contains all the environment variables that you want to use for your agent. And I need file, uh, as you probably are familiar with. So just this three file will allow you to run the agent. And as you can see, we design EDK to be so close, uh, to software engineering best practices. So this is something that you should be capable of running easily. With them being said, here you can see how you can use EDK. So you need to import the LLM agent, a class, the cloud, a class, which is going to represent the cloud model that we are going to use today. And then you can introduce, uh, you can also use some other classes related to memory, the runner that I already explained. But with them being said, once you get this, uh, once you import this class, this is all the bullet plate code that you need to write in order to create your first agent. So you use the LLM agent class, you define a name, the model that you want to use, in this case, the cloud 3.7, the description. So what the agent, uh, is going to do, and the instruction that we want to give to the agent. That's it. Once you have this, you are ready to go. So all you need to do is that running, if you want to interact with the agent in a programmatic way, you can run EDK, uh, run. And then behind the scene, it will start a session with your agent. Oh, sorry, I forgot one thing. EDK ran birthday. And then it will run a session, uh, an interactive session with your agent. So from here, you can start interacting with your agent, and then you can start, you know, understanding how it works. And so in this way, you can interactively develop, uh, develop the agents. So, and you can improve the agent depending on the task that you are trying to achieve. So again, three files, one CLI, and you are done. And you can, you can start, you know, uh, improving your agents. So let's go back to the slide. Okay. So let's assume that, uh, you know, you clone the repo, you get the origin after running. Uh, let's make things a little bit more, uh, complicated. So we want to extend our agents, uh, in a way that it becomes a multi-agent system. So we have this agent that it will give us suggestion for the birthday party. But then once we get the birthday party, we want also, you know, to schedule some time in our agenda, for example, for going, uh, and by the, uh, gift for the party, or, you know, just, uh, setting a reminder of the birthday day. So how you do that, you do, uh, you introduce, you know, tools. And, uh, the cool thing of EDK is that we, we didn't want to reinvent the wheel. So we, uh, we, by day zero, we introduce this integration with MCP. So again, I'm not going to explain you what, uh, it is MCP and the difference between, you know, the language specific tools, or the API. Uh, the idea is essentially with MCP, you standardize the way, uh, LLM, uh, get access to the context, uh, not only LLM, but also, but also agents. Uh, with EDK, you have two ways to use, uh, MCP. So you can use MCP, uh, some MCP existing, uh, server. And, uh, you know, integrate them as a tool with EDK. This is something that we are going to do today. So whatever MCP server is out there, you can use, just, uh, like you can use today already with the EDK, so without you remanting, you know, the wheel in that sense. Or if you have a EDK and you build some tool in EDK, you can use MCP to deploy this tool and interact with other agents. So these are the two ways that you have, uh, that you can use to leverage MCP with EDK. So with that being said, let me show you how you can use, uh, EDK with MCP. So let's go back here. Let me access it to this agent. And then let's go to, so this is the second agent. So again, as I said, now we want to, what we want to do is that we want to introduce, um, uh, a calendar service agent, which will allow me to schedule some time in my, in my agenda. And because now we have two agents, the birthday one and the calendar one, we want to also introduce an orchestrator which route my, you know, request to the right agent, depending on what, uh, I want to achieve. So in this particular case, the birthday planner is exactly the same agent that we defined before. Except that now I want to create an hybrid system, um, because for example, like, for, uh, scheduling, for some, for getting some birthday idea, I can use also a very, you know, I can use also a different model like Gemini. But then I have these, uh, calendar agents that in this case, we'll use, again, Cloud 3.5 with an MCP server to schedule some time in my agenda. So in order to use an MCP server, we dedicate, these are the two line of codes that you need to, uh, introduce. So you get, um, you, you get to the MCP server that you already have out there or you already created, right, or deployed as, uh, as a serverless service. And then you create a connection with it. And then what happened behind the scene when, uh, you start building your agent, when you run this command and you start building your agent, what it does is, like, get all the information, all the requirements to run your MCP server, it converts these MCP servers as a tool and they use these MCP servers as a tool of the agent. That's it. But again, the, the cool thing, what I really believe is powerful of etiquette is that it will allow me with two line of codes to integrate any kind of MCP tool that you have already. Once you have this MCP tool, you integrate it as a tool again in the, uh, our agent and you're done. Same, similar things, uh, so now we have the birthday agent, we have the calendar agent, this is how the, uh, the organizer look like. So look at how easy it is to pass multiple agents in, uh, in an orchestrator like this one. Again, you all you need to do is defining, uh, better instruction because in this case, this agent is, is going to orchestrate a multi-agent system. So you will define a, what agent, uh, like, what each agent is capable of doing and then you pass all the agent as a tool in this orchestrator. So again, it will figure it out, uh, what agent to use depending on your request. Once you have done this, you are good to go. So what we can do is that running, uh, going back here, uh, local. Actually, let me do this. Let me show you this. So before I show you how you can interact, uh, I can spin up an agent interactive program, uh, programmatically, but because now this system is more complicated, we have three agents, right? We want something more, a little bit more solid to, to try to understand what is happening behind the scene. So in SDK, you have these, uh, web UI, which allows you to, um, the bug interact, uh, interact with your agent. So this is, uh, the web UI. So in this case, this is how it looks like. So the web UI, we select the agent that I want to run. And this is, uh, so in this case, it's like what we did before, except now we have the, um, we have the other agents. We have the multi-agent system that is running behind the scene. And as you can see here, this UI will nicely provides you a way to see what is happening behind the scene with your agent. So while you are, uh, while you're running the conversation with it, you will see which agent is using for doing what? Okay. With that being said, so now you know also the web UI, let's go back on, uh, on the presentation. Thank you. So, uh, let's, um, for the last part of this presentation, I want to show you also how you can easily deploy, uh, the, uh, the agent on agent engine. So in order to do that, um, let me do this. Yeah. In order to do that, um, let me first introduce you what, what is an, uh, what is, why, why you need an agent engine like this one? Essentially, when, uh, when you need to deploy agent at scale, in order to do that, you need to figure it out a lot of complexity, right? You need to get the origin code, you need to, uh, um, you know, wrap the agent, you know, one of those, uh, services like fast API or jungle, you need to build your container and then, you know, you need to figure it out your environment to run it. In this case, you can be a GCP environment. And then, uh, you need to, uh, handle all the operation related to infrastructure. And at the same time, you also need to monitor these agents because at the end of the day is, uh, is an application, right? So with the agent engine, uh, you can simply deploy the agent using a metal like, uh, agent engine creates and, uh, you will get your agent after running as well as all these, uh, observability, um, all those, uh, ability capabilities and the monitoring that you need in order to deploy your agent, they are directly managed by the platform itself. And, uh, also, all the interaction that you have with the agents, they are going to be automatically, uh, collected by our logging system and you will directly use them to run some evaluation in a way that, you know, you can keep improving your agent a long time. So, these, uh, like, this gives you an idea of the reason why you want to consider an agent engine and this gives you the picture, uh, the overall picture of the agent, uh, vertex AI agent engine. So in this picture, uh, as you can see, agent engine is capable of integrating, you know, any kind of agent framework, uh, educate, uh, as, uh, as I just said, but if you build agent with land graph, land chain, you can, you can do that. You can use those framework as well. And then, um, with whatever tools and whatever model that you want and the agent engine will take care of deploying your agents and will enable all these observability, uh, capabilities of features that you need using some cloud tools and, uh, the evaluation parts is also covered by one of our services, which is the vertex AI, uh, evaluation service. So to wrap up like the agent engine capabilities, so you can deploy any, uh, agent that, like, uh, you can define agent in any framework that you want. You can use these, uh, manage your runtime to deploy these agents and then, uh, you will automatically get, you will automatically be able to observe the behavior of the agent, call the agent at scale. And, uh, we, uh, the agent engine, uh, uh, is also as an integration with another, with another services that we provide on Google Cloud, which is, uh, agent space, which I'm not going to cover today, but just to give an idea, it's the gate that will allow your agent to go in the ends of business. So really, you know, have an impact of the agents that you are going to build in an enterprise context. But with that being said, uh, let me jump in the last lab that we are going to cover today. So I already show you, um, how you can build the agent. So in this last lab, what I want to show you is how you can easily deploy an agent with a few line of codes. So in the repository, you will find these, uh, these, uh, module that essentially will allow you to iteratively, uh, deploy your agents. All you need to do to deploy an agent on, uh, vertex AI, agent engine is providing the base requirements that your agent needs in order to run. And then, as I said, we provide already a class that will allow you to create an agent and point in this case on the agent engine. So in this class, you have your agent that you define. In this case, uh, we are going to deploy the first agent, the birth planter agent. And then here you have the requirements. You can provide extra packages if you want. But then again, few line of codes to deploy your agent, uh, in, uh, in a manager, in a manager service that is scalable and will allow you to open your agent to several users. So with that being said, let me run this script. So first of all, let me close this session. Clear. Then let me go in the repository. Aless. Aless. And then here I have my module. So in this case, I do Python, deploy agent. So what happened behind the scene is that it will start, uh, deploying my agent. So you can monitor the deploy on the agent directly in the vertex icon. So now this step is going to get some time, as you can imagine, because it's building the image and deploying the agents. So let me directly jump into the UI. So once you, once the deployment of the agent will successfully run, what you will do is, uh, you will get an entry in the vertex AI agent engine UI. And from this UI, you will be able to monitor this agent. So the query that it receives, the latency that, uh, it takes, so how, how long it takes to respond to the query. And you will also monitor, you know, the CPU and the memory that the agent is using. So you can better understand if, um, you are located enough resources to serve this agent at scale. The, um, engine is, is also many session. So in this case, I just deployed one. So we don't start a session yet, but here you will see the session. And, uh, it will give you all the information that you need in order, you know, to integrate this agent in application, both in a real time or streaming, depending on the method that you want to use. And you can always check the details, uh, of the, of the deployment. Okay. So let's go, so now you have also an idea of how to deploy, uh, the agent. Let's go back to whose line. Thank you. So as I said, this was a bonus part. I don't think we are gonna call, uh, we have time to cover it. But what I want to tell you is that let's assume that you build your agent, you deploy it on engine engine, right? And, uh, right now we build all our agents using just a decay. But what if you want to deploy or build your agent, build and deploy your agent using Lenshane, Cruei or whatever, uh, framework? As I already said, agent engine support this, but what the, the main problem is that you, you don't have a way to connect these agents that are built with different framework together, right? So that's when you need a protocol to do that. So in a world where you have, you are gonna have multiple agents that, they're, uh, they are, uh, built and deployed with different framework, there is this need to find a common language between this agent to interact, uh, to interact and collaborate in order to achieve some task. And that's why as a Google Cloud, we introduce, uh, agent to agent protocol. So again, it's an open protocol that has been designed to, uh, enhance to foster the agent collaboration using very simple, uh, concept that I will show you in a minute. But the key thing that I want to share with you is that has been already designed to, uh, to be enterprise ready. So it has a bunch of features that will allow you to govern and, uh, in a secure way your agents. And we did, again, also in this case, we didn't invent the wheel because it's based on some standard protocol, uh, HTTP, JSON, RCP, something that it's common adopting in the industry. The concept that you need to know about it way is the concept of agent skills. So which essentially describe the function or the capability of the agents. And it's, it's, uh, like a business card of your agent with respect to other agents. And then you have, uh, the, uh, the, sorry, the, the, the agent skill describe what the agent is capable of doing. So, uh, it manage, uh, the function that the agent has. And then you have the agent card that essentially is, uh, uh, digital business card for the agent will allow other agent or other application to know what the skills, what are the skills of the agent and how to interact with it. So one is describe the agent, the other one, describe what is, uh, the agent capable of doing to the other agents. And then, as before, you have an agent executor that essentially managed the communication, the request and, and, uh, response that the system generates between agents. So these three concepts, with these three concepts, you can build system like this one where you will say, you will essentially have multiple agents, uh, Britain with different framework, communicating between each other in order to achieve a particular and more complex task rather than the one we built today of, you know, uh, scheduling or buying a birthday gift. So we are not going to cover this today, but again, as I said at the beginning, we are going to have a web, uh, uh, live webinar at the end of the month. So I will share with you the QR code. So just recap, we start from these three main problems, right? Building agent, uh, agent that is powerful, but there are several challenges when you want to put them in production. You have a fragmented landscape, uh, there are some integration complexity that you need to manage. And even if you are capable of fixing this, you have to manage all the operational overhead that, uh, you need to, uh, in you need to handle in order to deploy these agents. And then that's when you want to enable, like you want to get access to a toolkit, protocols, an agent platform that at the end, it allows you to standardize the way you build the origin, to scale them to production. And to give you this kind of tool, we put together this agentic stack using ADK, MCP, agent engine and endway that will essentially allows you to confidently build, um, agentic system and scale them in, uh, in production as, uh, required. Okay, so scan a alert. So, uh, please get your phone out. I'm going to share with you some useful, uh, uh, uh, QR codes. So the first one that I want to share with you is code. So in this, uh, in this repository, you will find all the code related to, uh, ADK. So samples, you know, getting start, everything you will find here. Three, two, one, okay. And then if you want to know how, if you want, I mean, we covered these in 30 minutes, but it can be like a one hour workshop. So here you can find the webinar. We are going to run together with Anthropic next month. And where we show also the integration with that way. So please scan this code. Three, two, one, okay. And then, uh, I mean, I was fast. So, uh, I, I, I assume that you have a several questions. So feel free to reach out. Uh, I'm always that full, uh, happy to answer your questions. But with that being said, I hope you enjoyed the session. I am just 20 seconds late. So, uh, I hope you enjoyed and, uh, yeah, thank you for attending this.