Free YouTube Transcribe

Video transcript

Building the digital workforce: Multi-agent apps with Azure AI Foundry | BRK148

Microsoft Developer · 10,804 words · 50 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

Introduction and Speaker Information

0:00SHAWN HENRY: All right.

0:00Hi, everyone.

0:01Hope your Build is going well.

0:02We're kind of in the middle innings now.

0:04We're halfway through.

0:05Hope everyone's learning all sorts of stuff

0:08and enjoying themselves.

0:09My name is Shawn Henry.

0:10I run product for Semantic Kernel and AutoGen, and I'm here

0:14with my colleague, Salman, who is Engineering Manager

0:18for the Agent Service part of AI Foundry.

0:22So today we're going to talk

0:23about building your digital workforce, multi-agent apps

0:27with Azure AI Founders.

0:28This is going to be a very technical course.

0:29We've got a lot of demos,

0:32code-first stuff we're looking at.

0:33We'll spend a lot of time in Visual Studio,

0:36so I hope you guys are ready for that.

0:38But we'll start off with the slide.

0:42Who has not seen a slide like this like 10 times already?

0:45Right? Like, what is an agent?

Brief on Agents

0:47Yeah.

0:47So I won't spend too much time on this.

0:48You guys all know what agents are, I hope.

0:50Anyone not know what an agent is yet?

0:52I mean, I think there's all sorts of different definitions.

0:54But really, you know, an agent is, you know, is an AI app

1:00that has connected to an LLM to make inferences,

1:03has instructions and context, and most importantly,

1:06has tools so it can perform actions.

1:09Hopefully, you've all seen this already.

1:10What I want to talk about, though, is how we kind

1:12of deconstruct this and get from very simple agents all the way

1:15up to complex multi-agent systems.

1:18So first of all, we can think of agents

1:20that actually don't have tools.

1:21Now, really, like, a tool is what makes an agent.

1:24But there are times when you might actually use an

1:26agentic framework.

1:27You might actually use the Agent Service

1:29and not actually have tools that you're connecting to your agent.

1:33So if you have a simple task, like you're summarizing text,

1:35we've all done this by making inference calls to,

1:39you know, GPT-4 or whatever.

1:41But there's cases where you may want to use Postgres

1:43in the Agent Service or use tools

1:44like Semantic Kernel and AutoGen.

1:46And the reason for that is that you get state.

1:50You get that state stored if you want to make multiple calls.

1:52If you want to have that prompt stay persistent.

1:55If you want to observe the agent,

1:58you want to see telemetry.

1:59Or if you just want to have the same API across all

2:01of your systems and be able to grow, you know,

2:02start with agents and then build more complex agents

2:06and then multi-agent systems.

2:07So you know, it's a great idea to just start

2:09with these agent frameworks and use them, Agent Services,

2:14and use them, you know, from the beginning.

2:15Because very quickly you end up growing

2:17into more complex single agent systems.

2:21And kind of the canonical one that's up here is agentic RAG.

2:25So we've all seen rag where you do retrieval-augmented

2:27generation over search.

2:29And, of course, adding an agent

2:30to the mix can give you much better results.

2:33When you have an agent, it can take the human input

2:38from the user, can generate a bunch of queries,

2:40look at the text in natural language, generate a bunch

2:42of queries, do a search over that over your vector database,

2:46return a bunch of results,

2:47and then synthesize that result together.

2:49And there's lots of places where you would use a single agent

2:51like this, and they can get very complex.

2:53You can give them lots of instructions,

2:54and you can give them lots of tools to use.

2:56But at some point you'll often end

2:57up building a multi-agent system.

3:00And a multi-agent system is

3:01where you have many agents -- there go the cameras.

3:05All right.

3:06A multi-agent system is where you have, you know,

3:10one or more agents working together

3:12to solve a particular task.

3:13And, you know, things you can do

3:15with a multi-agent system is you can give it a very complex task

3:18to perform.

3:19So in this case we're asking it to build,

3:21kind of do some research

3:22and build a large marketing campaign.

3:24And so we have, you know, an agent that specializes

3:26in talking to the user.

3:27We have an agent that builds the plan.

3:29It's the coordinator agent.

3:30And then it talks to all these other agents

3:32and solves the problem and, you know,

3:35comes back with a solution.

3:36Each of these agents that it's using may be specialized

3:38into talking with a particular web service, doing searches,

3:42talking to a database, or executing code.

3:46So putting all these agents together enables you

3:48to build much more complex

3:50and reliable applications on top of agents.

3:53And we see data to back this up.

3:54So this is data where, you know, we've looked

3:57at single-agent systems with models, in this case GPT-3.5,

4:03and then built multi-agent systems with them.

4:06And they get very similar performance now to the kind

4:08of the next generation model.

4:09So 3.5-based agent systems with multi-agents now become like 4.

4:14As we do the same thing with 4, this also scales,

4:16starts behaving more like 4.1 and 4o.

4:21So this is kind of a great way

4:22when you build multi-agent systems is you can kind

4:25of get more performance.

4:28So you can use kind of older models,

4:30get the same performance.

4:31Older models, less expensive models,

4:32get the same performance, newer models.

4:34You can use newer models and get performance

4:36that you couldn't get with those models alone.

4:38And more importantly, you can kind of dial in your quality

4:42by building your agent system

4:44and having different agents collaborate together

4:46for a certain amount of time.

4:47You can kind of build a better-quality answer

4:49out of your multi-agent system.

4:51So that's why we build multi-agent systems is really

4:53to keep the agents on context,

4:55be able to solve complex problems with them.

4:59So at Microsoft, we have a lot of different ways

5:01for building multi-agent systems, and they all kind

5:03of fit together on a spectrum.

5:05You know, at the top end, at kind of the SaaS layer,

5:07we have Copilot Studio, no-code approach

5:09for building enterprise-connected agents.

5:12We have the PaaS service with Azure AI Foundry Agent Service,

5:18which allows you to have managed hosted agents available

5:20in the Foundry.

5:21And then we have things like Semantic Kernel and AutoGen,

5:23which allow you to build agents kind of much closer

5:25to the metal using your models and your vector stores

5:28and your tools directly in a pro-code environment.

5:36So what are we going to talk about today?

5:38So we're going to talk

5:39about building agents on Azure AI Foundry.

5:42And there's a lot of things you can do with that.

5:43You can see kind of the menu here, and we'll touch

5:45on a bunch of these things.

5:45We'll talk about connecting your agents to things

5:49like Azure AI Search and Bing for grounding.

5:52We'll talk about all the different models

5:54that you can use that we support through Foundry.

5:56We'll talk about the open ecosystem and how we have agents

5:58that connect together and how we connect agents

6:00to other services.

6:01But we'll really focus on two areas.

6:03One at the bottom, we'll talk about the Foundry Agent Service,

6:06which is where you can build and host your agents

6:08and your multi-agent systems.

6:10And we'll talk about the agent frameworks that you can build

6:12on top of agents hosted in Foundry or agents

6:15that are hosted elsewhere.

6:17So to kick things off, I will hand it over to Salman to talk

6:20about the Agent Service.

6:23SALMAN QUAZI: Perfect.

6:24Thank you, Shawn.

6:26So I'm super excited to be here today.

6:28Just a few months ago, we announced public preview

6:31of the Agent Service at Ignite,

6:33and today we're making it generally available

6:35for everybody.

6:37One of the most important things we've been working

6:39on over the last year or so is to make the service reliable,

6:44secure, and interoperable.

6:47We already have tens of thousands

6:48of customers using the Agent Service

6:50to run production workloads, and we've been processing trillions

6:55of inference tokens and terabytes of vector indexes

6:58that customers are already depending on.

7:01So I'm very excited about the general availability

7:03so that you can actually build production workloads

7:07on top of this.

7:10So while we were working on all of the security

7:14and reliability aspects, there were three key areas

7:16that we were focusing on in terms of differentiation.

7:20One is around enterprise-grade security.

7:24So the Agent Service, by definition,

7:26actually is a stateful service,

7:29which means that we persist a lot of state

7:31about conversation history, about run execution,

7:34and we do these things so that we can simplify recurring

7:38complexity that you all have to deal with.

7:41So what we've done is we've made these state stores

7:44single-tenant, which means that they live or optionally can live

7:48in your subscription, and you have full configurability

7:52of these resources through Azure policies and other controls

7:57that Azure already provides.

7:59One of the most important things that you can do

8:02on these resources is that you can put a virtual network

8:06so you can actually contain what services can talk

8:10to those resources, and that provides you defense in depth

8:15on top of everything that you're doing.

8:19The second differentiation

8:21that we've done is around model choice.

8:23We've heard consistent feedback from customers around being able

8:27to leverage just not OpenAI models,

8:30but other models as well.

8:31And as you've seen from many talks, that we have

8:33over 1,000 models in our model catalog.

8:37And independent of the projection

8:39of enterprise-grade security and the hosted tools that we have,

8:43you can select any model from the model catalog

8:46and have the Agent Service interoperate

8:48across the model ecosystem.

8:52And then lastly, we've invested a lot

8:54around building hosted tools.

8:58So hosted tools is its idea that they are services

9:01that are managed by Microsoft,

9:02and you can just use them to provide value.

9:06And we've added tools like SharePoint grounding,

9:10which allows you to ground your agent responses

9:14through SharePoint sites.

9:15We've added Azure Functions integration, which allows you

9:19to have hosted functions running in the cloud

9:22and have the agent interact with the Azure function directly

9:26over the cloud as opposed to coming back down to the client.

9:30We've also invested in OpenAPI-based tools,

9:34which allows the agents to talk to any API

9:37that has a Swagger spec, which most do,

9:41and you can connect these agents to be able to read

9:45or use these APIs to make mutate state outside of them.

9:50We've also have Logic Apps integration

9:52that we're announcing.

9:53And some of these tools are in preview,

9:55but the service itself is in GA.

9:58And the last one that I'm very excited to talk

10:00about is a browser automation tool,

10:03which will allow browser automation tasks

10:06through a hosted browser scenario.

10:10So that is our single agent story, right?

10:14An enterprise-grade, interoperable,

10:16secure set of service with tons of hosted tools

10:20and many more to come.

10:22And this gives you a cohesive story that you can go in front

10:25of your security organization with to say

10:28that this is our security model

10:31and that satisfies the most strictest of organizations,

10:34including banks and healthcare.

10:38But today we are here not to talk about single agents.

10:43We're here to talk about multi-agents.

10:45And to talk about that, I want to make sure all

10:49of you have this sort of picture in your mind as we go

10:53through the demos today.

10:56When we design traditional software,

11:00we have complete deterministic process

11:02with deterministic outcomes.

11:03You control every aspect of the control flow,

11:06and you know exactly what's going to happen.

11:08In fact, there's a name

11:09when traditional software don't have determinism.

11:12It's called segmentation fault.

11:14If you haven't planned for it, things happen

11:16and your process crashes.

11:18But on the other end of this is a probabilistic process

11:22and a probabilistic outcome, and these are multi-agent systems,

11:26where you're completely sort of relinquishing control

11:28over how the control flow works, and you're leveraging these LLMs

11:35to direct flow control.

11:38Now, obviously, we cannot live in this other spectrum, right?

11:40You can't build software systems

11:43that are completely probabilistic.

11:44You want predictable outcomes for your end customers.

11:49And I'm going to talk about how we will achieve

11:51that through a new service that we're going

11:53to be announcing today, which is in preview,

11:57called the AI Foundry Workflow Service.

12:00But to get to that, I'm going to sort

12:03of slowly make the progression.

12:05We want to start with the single agents, and we're going to go

12:09to this concept called connected agents.

12:13And to do that, I'm going to switch over to my demo,

12:16because I think we've had enough time on PowerPoints.

12:22So we're talking about connected agents.

12:25Now, all of you have built single agents.

12:28Single agents, you've given it power through APIs and tools.

12:32Connected agents is this idea

12:34that you use other agents as tools.

12:37So I'm going to go ahead and quickly create one.

12:39So I'm creating a new agent.

12:41And down below, you'll see this new sort of toggle

12:45that has this concept of connected agents.

12:48And all you're seeing here is essentially a list

12:50of all your existing agents within this project scope.

12:53So you can simply connect

12:55to your Bing search agent, give it a name.

12:59And you can provide instructions to this main agent

13:02that I'm creating now, Agent 856, and say,

13:06trigger this agent any time you need real-time information.

13:15And this works in conjunction

13:16with however the sub-agent itself is configured.

13:20So as you can see, when you're building traditional software,

13:23you don't write everything in a single main method.

13:26You break it down into different functions.

13:29Functions have single responsibilities.

13:31So sort of in that same mental model,

13:34sub-agents are those functions.

13:36They do a very small set of tasks.

13:38They are prompted.

13:40They're given tools that perform that specific task.

13:43And this top-level agent is then able to use that sub-agent

13:48to accomplish higher-level tasks.

13:50So I'm going to go ahead and add that.

13:52And I'm going to add one more.

13:54And I'm going to add this coding agent.

13:57Give it a name.

13:58Coder.

13:59You can use this agent for coding tasks.

14:08And notice that I am not spending time mentally thinking

14:12about how the code execution agent is configured,

14:16what tools it has access to,

14:18what permissions it's given, how it's prompted.

14:22All of that becomes sort of the responsibility

14:24of that single function or the single agent

14:27that I'm now composing up.

14:29So I'm going to add that.

14:32And then, now that I have this,

14:33I can just try it in the playground.

14:35Now, the beauty of this is that the API interface that you use

14:39to interact with a single agent is the same API interface

14:43that you have to talk to this connected multi-agent.

14:46Because, at the end of the day, they're just tools.

14:48So it works really nicely.

14:50So I can ask, what is the weather

14:52in Palo Alto, California?

14:57And notice, I don't have Bing grounding set up.

14:59I don't have any of those tools set up.

15:01And yet, this top-level agent talks to this connected agent

15:07to hopefully give me an answer.

15:09And these are all live demos.

15:11So I am not -- I actually don't have anything recorded.

15:15So as you can see, this works.

15:18So you can actually break this complexity down.

15:20And you get better precision and recall

15:23because these sub-agents can only view a narrow scope

15:26of the world rather than the entirety of things

15:30that it would otherwise have to see.

15:33So you get much better control and precision.

15:37So that is connected agents.

15:39So this takes you from the world of building single agents.

15:43As you start to hit limits on them, as you start

15:46to add more functions and tools, you may slowly graduate

15:50into this concept of connected agents

15:52to provide you additional value.

15:54But this, again, is an implicit orchestration.

16:00What I mean by that is you are specifically not controlling the

16:06order in which these agents are invoked,

16:09how many times they're invoked, or what parameters or values

16:12that are used to invoke them.

16:15All of those things are sort of left up to the LLM to decide.

16:19And that generally works, but that may

16:22or may not be what you desire.

16:24So for that, I was going to show you a demo today

16:28around the workflow service,

16:30which is something I'm very, very excited about.

Workflow Development Stages

16:34So again, to mentally associate yourself, we're not recommending

16:43that you jump into building workflows right away.

16:46You build your single agents.

16:47You see what these limits are.

16:49You start to go into connected agents

16:51because all your tool chain, all your SDKs, they all work.

16:55So it's an easy progression to get to connected agents.

16:59And then if you start to hit limits within connected agents

17:02because of particular scenarios that you're trying to build,

17:05then you can sort of move on to workflows.

17:07And even workflows use the same set of tool chain.

17:11So it is an easy transition.

17:13So we'll talk about that today.

17:18So the class of problems workflow solves are

17:22where you want much more granular control

17:25over how the control of these agents happen

17:30and the data bindings that need to happen

17:34as you move through the system.

17:37So to give you an example,

17:38if you're building a customer agent bot,

17:41you don't want the bot to act in a way where I can log in

17:45and say, my name is Shawn and all of a sudden,

17:48the bot treats me as Shawn and starts to act like I'm Shawn

17:51and give me all of Shawn's information.

17:53So there's particular data bindings that you want

17:56to guarantee that the model will not hallucinate

18:00and they work consistently throughout the stack.

18:02So those are things that you get out of the workflow service.

18:06And the second thing you get is

18:07that unlike other multi-agent systems like LangChain or Swarm,

18:13where they are essentially SDK offerings,

18:17you basically build multi-agents through code,

18:21we have a declarative system for multi-agents

18:24where you declare what your process looks

18:26like through Semantic Kernel's process framework.

18:30And once you declare it, you can publish it.

18:32And when you publish it, you get an endpoint that you can use

18:35to interact with that workflow.

18:37So with that context in mind,

18:39let's spend a few minutes looking at what this setup is.

18:44So to do this, I'm going

18:45to build a deep research multi-agent.

18:50Now, deep research, some of you may have used in ChatGPT.

18:54It's an option where the agent goes into doing research

18:59on the web, does follow-up research, and eventually

19:01after tens of minutes of work,

19:03it produces a pretty comprehensive summary

19:07of that work.

19:09You can use it to research your next vacation plans.

19:12You can also research it to figure

19:14out many other complex tasks

19:17that almost produce publication-quality work.

19:22Now, to do that, we have built this deep research agent using,

19:28or at least inspired by the AutoGen team's work

19:31through Magentic One, where they have this notion of teams

19:36where each block here is an agent

19:42that does something specific.

19:44For example, it can do research, it can gather facts,

19:48and it maintains this ledger of work where the planner,

19:54essentially given the task, plans a ledger of work.

19:57And as the work gets done, the ledger is marked as completed.

20:02And eventually, when all of the work in the ledger is done,

20:05the research is considered to be complete.

20:10Now, we're going to open-source all of these workflows

20:16that you can then build on top of.

20:18These are opinionated versions of things

20:20that we think how deep research should be done,

20:22but you can change them, you can mutate them,

20:25you can make them even better.

20:27And so to run this, the way we have this configured today is --

20:34let me go ahead and close that.

20:38So we have this notion within the workflow service of sort

20:47of dependency injection,

20:48where the workflow can be given an instance of another workflow,

20:53and that instance can be injected with a set

20:56of properties that you can use to run it.

21:00So in this case, as you can see, this workflow has a single box.

21:03The single box is that deep research workflow

21:07that you saw earlier, and it accepts a certain set of inputs.

21:11For example, it accepts a set of team members and an instruction.

21:14The team members are the specialized agents

21:18that can do work.

21:19For example, it could be a research agent

21:21and a coding agent.

21:22So you can inject those team members to it,

21:25and you can start off interacting with it.

21:29So what I'm going to do now is, as you can see, I am connected

21:34to my Build 2025 project, AI Foundry project,

21:39and I'm going to deploy this.

21:42And what it does is it deploys this workflow into the service,

21:47and you get a managed endpoint that you can use

21:49to interact with this workflow.

21:52So this is the point that you're not actually building this

21:57in code.

21:57You're just declaring what your workflow looks like.

22:01Once that's done, so as you can see, there's a workflow ID

Workflow Execution and Process Framework

22:03that comes up, and I can go ahead and run it.

22:08When I run it, what I get is a chat experience directly

22:13in VS Code, where I am actually interactively chatting

22:16with this workflow.

22:18Now, our workflows have two modalities.

22:20You can interactively chat with them for interactive scenarios,

22:25but you can also do asynchronous workflows

22:29where you can run them, and they can run in the cloud for hours

22:32and days, and we will take care of hydrating state,

22:37persisting them, and rehydrating them when necessary,

22:40and doing it in a way that's durable, so that you don't have

22:43to deal with that complexity.

22:45So to get this going, I'm going to just give it a task

22:49of studying the latest S&P report

22:52and generate a report for me.

22:55And this will take a while, so I'm going

22:57to just slowly kick this off and then move on to something else,

22:59but I want to show you that there's these events that happen

23:03that the workflow has started, and it's going

23:06to produce a ledger of work,

23:08so it knows exactly what the plan is,

23:11and then other agents sort of pick up work from that ledger,

23:14and they do them, and ultimately, this completes.

23:16So we'll see it when it's sort of done in the side.

23:21So I'm going to let this run, and in the meantime,

23:24because this is obviously a developer talk,

23:27I want to spend time showing you what it looks like building one

23:31of these workflows in code,

23:33because that's precisely what most of you will be doing.

23:37So to do that, obviously, we can use Semantic Kernel,

23:44but I wanted to take this sort of a step further,

23:47where I'm using a classic sort of SDK

23:51to build these single agents, and then just

23:53for the multi-agent piece, I'm using the process framework.

23:58So if you look at my CS project, for the process framework piece,

24:04I'm using this Semantic Kernel package,

24:07and my code is pretty simple.

24:11So this is a very simple setup.

24:13I've got a teacher and a student, so two agents.

24:17The teacher agent is configured

24:19to give preschool-level math homework to a student,

24:23and then the student is asked to do that homework.

24:27And if they get it right, you progress into the next state,

24:30and if they get it wrong, they're asked to continue

24:32to retry until they finish.

24:36And then once I create those agents,

24:39you can see that there's this build operation that I can do

24:43on it which builds the process,

24:47your business process automation.

24:49So here is where I'm using process framework.

24:52So if you've been to Scott Hanselman's talk yesterday,

24:56he used the exact same SDK to build a linear process

25:00where he automated sort of his podcasting flow.

25:03So I'm using a different kind of process

25:05to have these two agents talk to each other.

25:08So this brings up another interesting point

25:10about process framework is that unlike other multi-agent systems

25:16where there is sort of official support for conversation models

25:20where you have two-way chat or group chat or handoff,

25:26here we don't have those notions.

25:28We work off of events, and with events you can model any type

25:33of conversation as long as you raise the right events

25:37with the right payload.

25:38So event-based programming is something that we've been doing

25:41for decades now, so it's sort of bringing

25:44that same concept into multi-agents.

25:48And so here I've got two agents that are configured external

25:54to this method, and they happen

25:58to be creating two specific threads that they are using.

26:02So you can see this term scoped.

26:04What this means is that these two agents have a narrow view

26:08of the world.

26:09They get to see only the things that they are operating on.

26:13Now this is just a choice because of the problem

26:15that I'm trying to solve, but I could be trying

26:18to solve a problem where I have shared knowledge,

26:20which would be effectively what group chat is,

26:24because group chat is this notion

26:25that every agent has universal knowledge

26:28of everything that's happening,

26:29whereas this is sort of a two-way chat.

26:33So you can model a lot of these conversation states using very

26:36simple states and transitions.

26:39So once you do that, you build this process,

26:45and you can publish it.

26:47And when you publish it, you get a workflow ID.

26:51So these are sort of virtual identifiers that you can use

26:55to execute tasks on top of.

27:00So the key point to take away here is

27:03that the process isn't actually building.

27:08You're not writing code to define your multi-agents,

27:12but you're writing the process through code.

27:16And once you do that, we fall back to all the existing APIs

27:20that we have seen before, create, thread, and run.

27:23And instead of running a single agent,

27:25which would be the parameter here,

27:28here we're giving it the workflow ID,

27:30which is the multi-agent.

27:32So that is something we also spend a lot

27:34of time optimizing on, where we want

27:37to make your transitions very simple.

27:40We don't want you to move to a different stack,

27:42a different programming model.

27:44You can stay on the existing programming model

27:46and make minimal changes to switch into this next thing.

27:50And then I pass in a user message,

27:52and then I start printing these streams as I get back.

27:55So let's go ahead and quickly run this.

27:58And this is all real.

27:59So none of this is recorded.

28:01So I'm hoping this comes up.

28:05And as it's coming up, we can go quickly check what is happening

28:10with the other agent.

28:13So as you can see, this is the multi-agent

28:16that created a ledger.

28:17It created a plan on step one to gather data,

28:21step two to analyze the data, execute code,

28:24compile the report, and these would be the deliverables.

28:28So this is quite nice.

28:31And then you can also see

28:32that the Bing grounding tool was used.

28:34It was used to do a specific search about latest S&P

28:38and performance in May 2025, which is the month we're in.

28:42So you get a lot of observability through our stack.

28:44So you can see exactly how the tool interactions are happening,

28:47what inputs and outputs are provided to the tools.

28:50They all sort of show up directly in VS Code.

28:52You obviously could do this in the Foundry portal too,

28:56but this is where you are.

28:58So we just natively connect to that.

29:02And eventually, when all of this work is done,

29:04you can see there's a coder agent that was pulled

29:06up to actually do some coding work.

29:09In this case, it was given a bunch of different industries

29:12and sort of their performance over time.

29:15And a plot was asked to generate.

29:18And we used our code interpreter service, which is a hosted tool

29:22to generate that plot.

29:24And eventually, after all of this work was done,

29:27you get sort of the visualization.

29:30And ultimately, I think the work is still happening.

29:35So we'll leave it be for now and we'll go back to this.

29:40So now we're back to the two-way chat student-teacher.

29:45And I'm just going to say go,

29:46because it actually really doesn't matter what I say here,

29:49because the, and this is this idea of,

29:54having much more granular control over the flow.

29:58It really doesn't matter what I say, because the teacher

30:00and the student are directed to work in a very specific way.

30:03So I'm going to just start that.

30:05And you will see that the student comes up and says,

30:09I'm ready to answer your question.

30:10Teacher, what should I do?

30:12The teacher says -- this is all real.

30:16So maybe it's thinking.

30:19I'm not sure.

30:21We'll give it a few more minutes.

30:24All right, here's your question.

30:25Three apples, you've got two more apples.

30:26How many apples do you have in total?

30:28And then the student says, yeah, yeah,

30:30let's try figuring out this math.

30:33And it does that.

30:35It's like, five apples in total.

30:37And then it goes back to the teacher for correction.

30:40So the teacher then checks the math to make sure

30:43that the math is correct.

30:44And it is.

30:45So it says, yes, you're done.

30:47And then it deletes the user thread that I was on.

30:50And then I can finally hit enter.

30:52I can delete those two teacher agents and the workflow,

30:55which all of these are ephemeral entities.

30:58You can create them, use them,

30:59and then delete them whenever you're done.

31:02So that was the demo of workflow agents.

31:07So let's go back here just

31:09to make sure this actually completed.

31:13The task has not been completed.

31:14So it's working and instructing other workflows to do stuff.

31:17And you can see some of them will fail because, you know,

31:20I may have exhausted my tokens usage for the time being.

31:25But there's sufficient retries in place to try

31:29and complete the task.

31:32And then the last thing I wanted to show is

31:36that we've been also working very hard

31:41around interoperability around A2A.

31:44So Google recently announced a protocol

31:47for agent-to-agent communication.

31:49And to show that off, what I'm going to show you here is a demo

31:55where I've got an agent that I've created, in this case agent

32:05AS GZA that has some tools and things involved.

32:10And this particular project, if you look at its dependencies,

32:14has everything A2A, Azure identity

32:17to obviously authenticate with Azure services,

32:19but everything else is just A2A client, A2A HTTP.

32:24But because our agents starting today is going

32:28to be A2A compatible, what this means is you can actually

32:34interact with them through the A2A protocol.

32:36So these are all A2A constructs.

32:38You create a send task request,

32:40you wait for the response and you print it.

32:43So if I run this, I should hopefully see

32:49that I can interact with this agent using the A2A protocol.

32:52So I mean, we'll extend this further

32:54into our workflow service itself.

32:57So our workflow service will not only be able to interact

33:00with single agents that are designed by us,

33:04but single agents that live in other clouds.

33:07So you can then interoperate across the cloud platforms.

33:12And as you can see, the agent responded with, I'm doing great

33:16and thanks for asking.

33:17And this was all through the A2A protocol.

33:19So thank you.

33:24[ Applause ]

33:25And with that, I am going to bring over the JM Family

33:30to talk a little bit about how they've been using our

33:33multi-agent stack to provide value to their organization.

33:40[ Applause ]

33:40Welcome, John.

33:41Nice to meet you.

33:42Amit, nice to meet you.

33:44So tell me a little bit more about how you found value

33:48in using multi-agents within the JM Family organization.

33:52JOHN: Yeah, definitely.

33:52So interestingly enough, you know,

33:54one of our biggest use cases was actually

33:56within our own technology organization.

33:59So for those of you who might not be familiar,

34:01JM Family is a $22 billion privately held company.

34:05Our businesses include,

34:06we're the largest independent distributor

34:08for Toyota in the world.

34:09We do captive automotive financing for Toyota customers

34:13in the Southeast US and JMFE Group business has finance

34:17and insurance products that we provide and manage

34:20through auto dealerships across the country.

Multiple Business Units Undergoing Simultaneous Technology Transformations

34:22Now, all of these business units are

34:24in massive technology transformations all

34:27at the same time.

34:28One of our biggest challenges was the inputs our engineers

34:31were getting to execute those technology transformations.

34:34So things like requirements, user stories,

34:37even though we have published standards and guidelines,

34:40the level of granularity, the form, the format,

34:44varied wildly across teams.

34:46This turned out to be a perfect opportunity for agentic AI.

34:51This was producing everything from defects downstream

34:54to just countless of hours spent going back and forth,

34:57trying to get clarity on what actually could have been more

34:59clearly outlined up front.

35:01And that's where our captive product development entity,

35:04Mosswall Technologies stepped in and built a tool

35:07to bring this capability through multi-agent

35:10to our product owners, our business analysts,

35:12quality analysts, as essentially a team of AI assistants

35:16to help generate the inputs

35:18to give our engineers what they need to do best,

35:20which is build great software.

35:22SALMAN QUAZI: That's awesome.

35:22And what were some of the return

35:24on investment done using the stack?

35:26JOHN: Yeah.

35:26I mean, not only, you know, did we see the process time

35:30to create these inputs shrink by 30 and even upwards of 40%,

35:35but just the time saved in meetings.

35:37And I know how much, you know,

35:38we as engineers absolutely love sitting in meetings.

35:41So people are probably heartbroken,

35:43but that time could actually be spent

35:45like engineering novel concept.

35:48SALMAN QUAZI: That's great.

35:49Awesome. And then any key learnings, any takeaways

35:52that you want to share, Amit?

35:53AMIT: Interestingly, there's a lot of key learnings.

35:57If I spend time, I can just keep talking about it.

36:00So starting from, you know, one of the learnings is you need to,

36:04when you start any of the use case,

36:06you need to be very precise what you wanted to achieve.

36:10Make sure you have clear rules defined for these agents.

36:14And, you know, you need to test these Agent Service

36:18as individually.

36:19Now talking about platform, someone has talked

Exploration of Various Platforms and the Challenges Encountered

36:23so highly about this platform.

36:25I must say, we have leveraged pretty much everything

36:29from human in the loop to going back to, you know,

36:33the agent interaction, four or five agents interacting

36:37with each other successfully, as you can see on the screen.

36:40Now, one thing I wanted to highlight

36:42about this platform is we have looked

36:45at various other platforms or frameworks like LangChain.

36:49And in fact, one of the things was AutoGen.

36:51One of the challenges we faced over there was,

36:54how do we host these services?

36:56It's always being a challenge.

36:58Managing that session, threads, data,

37:01and users is always in the issue.

37:03And thanks to, you know,

37:05Microsoft bringing this Agent Service as a PaaS platform

37:09for us, where we worry about business use case rather

37:14than worrying about the infrastructure.

37:17Human in loop has become very seamless.

37:19It was very easy.

37:21As you can see on the screen, there are four

37:22or five agents running around.

37:24My demo is not as fancy as the newness

37:27which has been introduced, but there's a lot of easiness.

37:31You worry about configuring FDL,

37:35which is a YAML type configuration rather

37:38than writing a code.

37:39JOHN: I would say just the last thing, you know,

37:41outside of the technology or in addition to the technology,

37:44just the multi-agent paradigm itself is a lot easier

37:48of a concept for our users to grasp.

37:50So historically, Gen AI retrieval methods,

37:53like it's been seen as a bit of a black box,

37:55but with multi-agents and having very specifically designed

37:58and intentional purpose-built agents that work collectively

38:02with our users, it's just opened up a much wider dialogue

38:06of how we can leverage AI in the enterprise.

38:08SALMAN QUAZI: That's great.

38:09Thank you.

38:09Thank you, JM Family.

38:10[ Applause ]

Transition to Discussing Semantic Kernel and Agent Orchestration Frameworks

38:15All right.

38:15And with that, I'll hand it off to Shawn to show off a lot

38:18of nice Semantic Kernel stuff.

38:20SHAWN HENRY: All right.

38:20Thanks, Salman.

38:21Yeah. So let's move over from talking

38:24about managed Agent Services, and we'll talk

38:26about our client agent orchestration frameworks

38:29and how you can use those with our managed services.

38:33Oh, we're over here.

38:33That's right.

38:34So you know, within Semantic Kernel, we have a lot

38:38of the same capabilities that Salman talked

38:40about for building multi-agent systems.

38:42I already talked about, and Salman talked about kind

38:44of these LLM-driven applications where the LLM is in charge

38:49of flow control and decides which tools to use,

38:51how to execute the plan.

38:53But then also having the need for process-driven flows

38:59where you have a lot more control

39:00over which agent executes in which order.

39:02And, you know, these kind of things, you need to look at them

39:04and decide what is the right application for the problem

39:08and the solution you're trying to go after.

39:10And in cases, you may want

39:11to have composability between these.

39:12So you can see in the one on the right here where we have,

39:15you know, a process-driven flow that's very directed,

39:18but within it we have some agent-driven flow,

39:20some LLM-driven flow where you have this radar

39:22and critic agent talking back and forth.

39:25So all these things are capabilities that, you know,

39:27we have within Semantic Kernel,

39:29which is our open-source agent framework

39:32for building agent applications and orchestrating AI systems.

39:38And I will quickly get into a demo here.

39:40Let's take a quick look at how we build agents

39:44with Semantic Kernel on three.

39:47Here we go.

39:48Okay. So I'm going to kind of follow

39:52that same pattern that we had before.

39:55We're going to do first like a no-tool agent,

39:57the most simple agent that you can build.

39:59And you can see here it's just about three

40:02or four lines of code.

40:03So if we look here, building our agents, we create our agent,

40:09we connect it to our chat completion agent type

40:12within Semantic Kernel.

40:13And this is the case, you know, Semantic Kernel,

40:15we support connections to all sorts of different agents.

40:17This can be a chat completion agent,

40:19which means you're bringing your own model,

40:21you're bringing your own connections and your own tools,

40:24or it could be a managed agent, it could be an agent hosted

40:26in the Azure Agent Service, the Foundry Agent Service,

40:29it could be a Copilot agent that's living

40:31in the Copilot stack.

40:33You know, it could be a responses agent from OpenAI,

40:35it could be an agent from AutoGen,

40:37which is our research framework for multi-agent systems,

40:39or it could be an agent from something like Bedrock for AWS.

40:41So you can take all these agents and you can connect to them

40:44with Semantic Kernel and you can ask them questions.

40:46So in the case of this agent, you know,

40:48we're just asking something very simple.

40:49We're asking it to compose a haiku about Semantic Kernel.

40:54So we gave it these instructions and we asked it for a response,

40:58just a single response in this case,

40:59we're not having a conversation.

41:00So we're using this almost exactly like an inference API.

41:03And that kind of goes back to what I was talking about,

41:06in cases where you, you know, you start with an agent system,

41:10even when you're just doing responses, it means you can grow

41:12into more complex things, you know, as you go forward.

41:15So we've got a nice little haiku here.

41:17Code that learns and grows,

41:19patterns weave a mindful core, Semantic Kernel.

41:21Great. Beautiful.

41:24Let's talk about real agents.

41:26So building real agents, you know, with more capabilities,

41:33code very much the same in Semantic Kernel,

41:36but we've added a few new lines.

41:39So we've added these plugins, we've added a kernel object,

41:43and we've added arguments.

41:44So what are those?

41:45So first of all, our plugins, these are our tools.

41:47This is where we connect our tools and other capabilities.

41:50So in this case, I'm connecting with, you know,

41:53a tool that I've created in code.

41:54I could connect to OpenAPI from here.

41:57I could connect to MCP, connect to other agents.

41:59I'll show that in a second.

42:01This is where I put these in the plugin.

42:03In the kernel, I can figure things like telemetry

42:06and filters and things

42:10that I can see what's going on with my system.

42:12And then arguments, I tell the kernel how to handle that data.

42:15So let's look at menu plugin first.

42:18So menu plugin would be something where you normally,

42:20you would connect this to a database or a data store.

42:22And by the way, all these samples are in Python.

42:25I have the link at the end.

42:26We also have all this stuff in C Sharp as well.

42:28I'm going to go back and forth between.NET

42:31and Python a little bit.

42:31So don't worry if you're a.NET person or a Python person.

42:34I got you covered.

42:37We've created our menu plugin class here,

42:38and then we can annotate it

42:40with these kernel function annotations,

42:42which now tell Semantic Kernel to take these functions

42:46and stick them in the prompt that we give the LLM and tell it

42:49that your agent now has these tools to use.

42:53The other piece we're doing is with the settings,

42:55we're asking it to output in response format menu format.

42:59So instead of getting a natural language response,

43:01we're going to get a response in structured data.

43:04And then finally, we're adding this filter.

43:06So the filters are what tell us what tools calls we're making,

43:09what things we're asking the LLM to do, and ultimately,

43:11this is where we'll hook up our telemetry.

43:14So we'll run this agent, and this is an agent

43:17that answers questions about the menu, and we're asking it,

43:20what is the soup special and its price?

43:21So this is like one of those composite questions.

43:23There's two pieces to it.

43:25It needs to call back into our system twice,

43:27one to get the list of specials up here, clam chowder,

43:31cob salad, chai tea, has to identify

43:33which one is the soup special, then call back in and figure

43:37out what the price is.

43:40So we can see here, if we look at our output,

43:45our plugin was called with get specials.

43:48It's called with context.

43:50The response gave us three specials, return that string.

43:54And then our plugin was called again,

43:56this time with the menu item call, and it replied

44:00with clam chowder, $9.99.

44:03And then the LLM took those two responses together,

44:05and instead of generating natural language,

44:08which sometimes you want when you want to send that directly

44:10to a human, to a user, you want natural language,

44:13but sometimes you want structured output.

44:14So in this case, we're building structured output.

44:18Okay, so that's how you connect tools.

44:21You can connect all sorts of things to Semantic Kernel,

44:22and I'm actually contractually obligated to talk about MCP.

44:26So very easy to add MCP into Semantic Kernel.

44:30Actually, MCP is great.

44:30Probably the most important thing in the last three

44:32or four months that's happened in this world,

44:34in kind of the AI and agent world.

44:36And definitely something --

44:37SALMAN QUAZI: MCP versus agents,

44:39everybody's talking about.

44:40SHAWN HENRY: Yeah, which one was more?

44:42SALMAN QUAZI: Yeah.

44:42SHAWN HENRY: Well, we did the full SEO in this topic

44:44where we're talking about we got agents, we got MCP,

44:47we're going to do A2A.

44:47SALMAN QUAZI: We got all of it.

44:48SHAWN HENRY: Yeah, exactly.

44:49We got everything.

44:50That's why you guys are here.

44:51Okay, yeah, so MCP, you know, a great way to surface tools

44:57and build them and connect them to your agents.

45:00Very easy to do.

45:01I'll just run this sample real quick.

45:02This is connecting to the GitHub MCP server.

45:06So there's all these servers available.

45:07If you're not familiar with MCP,

45:09there's these services available.

45:10You can connect to them.

45:11Semantic Kernel can be a client.

45:12We can plug it in just like we saw before

45:14with that menu plugin.

45:15We can plug it in directly to our agent

45:18and then now it has access to all the tools

45:20that the GitHub MCP server has available to it.

45:25So I can now check up on my team and I can see, you know,

45:29what are the top issues they're working on right now?

45:32And we can look, we can see what's going on.

45:34Okay, look, we got a new issue.

45:34Oh, missing index and function.

45:36We got to get on that one.

45:38So this is all happening under the covers.

45:40I just had to give it a natural language request here.

45:42I asked it for what are the latest five issues

45:46in a Microsoft Semantic Kernel repo and it was able

45:48to return this without me having to figure

45:50out the API contract with GitHub.

45:53This is a really powerful way to use MCP.

45:55You've probably seen a lot of MCP being used

45:57with like Visual Studio Code and agent mode and GitHub.

46:01Sorry, and Copilot Studio agents as well.

46:05And now you can use it with Semantic Kernel.

46:07One of the things I do want to point out, I don't have time

46:09to run the demo for it, but what do you think is happening now

46:12with all these MCP servers?

46:14There are way too many of them and so your agents now have

46:17like thousands and thousands of tools to use and they break.

46:21Your agents can typically only handle, most models,

46:23you know, 10 to 20 tools.

46:25So something that we have a sample

46:26for in our Semantic Kernel repo I encourage you guys to go look

46:29at is actually taking all of your plugins

46:33and running a semantic search on them first.

46:35Put them in a vector store and then figure

46:37out what are the best set of plugins to give to your agent.

46:39Something that can really help

46:40with the performance of your agent.

46:41So there's a little nugget for you

46:42as you're building your agent systems.

46:44But you guys paid for multi-agents,

46:47so let's look at multi-agents.

46:51Okay, so as Salman mentioned with like connected agents,

46:54you know, very easy to add agents in Semantic Kernel.

46:57Here we have three agents we've created.

46:59We have a billing agent that focuses

47:01on kind of billing issues.

47:03We have a refund agent focusing on refund agents

47:04and then we have this triage agent that kind of looks

47:07at the incoming request from the user and decides

47:10which of the agents it wants to use to,

47:12you know, resolve that request.

47:14And the other thing you'll notice here is there's two

47:16different types of agents.

47:17So we have our chat completion agent which we've looked at.

47:20Well, that's not what I meant to do.

47:21There we go.

47:22We have our chat completion agent that we've looked

47:24at before and we've given it some instructions.

47:26But these agents up here we've only given them this ID

47:29and that's because we've defined these agents

47:32in the Agent Service.

47:34So I can hop over to the portal

47:35or I can use the Virtual Studio extension

47:37and I can see my agents here.

47:38I have my refund agent and I have my billing agent

47:41and I can manage these all within the portal.

47:43This is a great way to get started

47:44with multi-agent systems.

47:45You can put your agents in the portal.

47:47You can give them prompts.

47:48You can connect them to Bing grounding.

47:49You can connect them to OpenAPI.

47:52You can do all that stuff in a managed way

47:54and then you can build a multi-agent system

47:56with Semantic Kernel.

47:58So I'm going to run this but I'm actually going

47:59to run the UI version here.

48:01I really like using a tool for UI when I'm developing stuff.

48:06I really like to use ChainLit which is a nice tool for Python.

48:12And what you'll see is we've connected the agents

48:14up as plugins.

48:16So we have our triage agent and it's using those two agents,

48:19our billing agent and our refund agent as tools.

48:22And when this runs, I can ask it --

48:25I think I got a query here that I like.

48:31Here we go.

48:31So I'm going to ask it another composite question.

48:33You know, two things that need to be researched here.

48:36I'm going to say I was charged twice

48:38for my subscription last month.

48:40Can I get one of those payments refunded?

48:41So hopefully what's going to happen and typically happens,

48:44these are pretty good systems now.

48:45They're getting pretty good with their tool calls.

48:47We're now making tool calls to billing agents

48:49and tool calls to refund agents.

48:50These are both happening in parallel

48:52and we can see here the response that we get.

48:54So we've got an input into the billing agent

48:57from our triage agent and we've got a response

48:59from the billing agent.

49:00Same thing happening with the refund agent.

49:02We give it an input and we get a response.

49:05And now our triage agent takes those two responses

49:08and generates a human readable response

49:10that composes those two responses together.

49:14So a nice way to do that with connected agents

49:20and agents as plugins.

Discussion on Advanced Multi-Agent Systems

49:22But I want to talk about more advanced multi-agent systems.

49:28So I'm going to move over here to this one and I want to talk

49:32about AutoGen and Semantic Kernel.

49:34For those of you that aren't aware,

49:35we have a couple frameworks for building multi-agent systems

49:39at Microsoft client-side frameworks.

49:41We have AutoGen, which is our research framework focused

49:43mainly on multi-agent systems and we have Semantic Kernel,

49:46which is our AI application,

49:48our production-ready stable framework.

49:49So all the examples I showed here are in Semantic Kernel.

49:52But what we're doing is we're actually converging those

49:54two frameworks.

49:56And we've already done a bunch of the work

49:57to converge them kind of at that lower level

50:00and today actually the runtime for multi-agent systems

50:03in Semantic Kernel is actually the same runtime that's

50:06in AutoGen.

50:06So we've done that work under the covers

50:08and with the next versions of these libraries we're going

50:10to converge the API surface as well.

50:12So we'll just have one of these pretty soon

50:14and if you're starting your projects today,

50:16recommendation, use Semantic Kernel.

50:17That's our production-ready supported framework

50:20and we're bringing all the stuff from AutoGen into there

50:22and we'll have one place

50:23where everyone can build their multi-agent systems

50:26and orchestrate them from the client.

50:28[ Applause ]

50:28So you guys have been waiting, right?

50:32Thanks, Rory.

50:33Yep. It's been a long time coming but we're really happy

50:37with the work the AutoGen team is doing and we're happy

50:38to bring that in to Semantic Kernel

50:42and have a single library that we can use.

50:44So what does it mean though?

50:45So I talked about having a single runtime between the two.

50:51Well, what it means is we can take all those patterns

50:52that you may have been using already in AutoGen

50:54and we can now run them in Semantic Kernel.

50:57So we have a bunch of patterns that are kind of built on rails

50:59within Semantic Kernel.

50:59You can build your own patterns

51:00but these are ones that we supply.

51:03You know, fairly obvious what some of these do.

51:04Sequential, you have one agent talk to another agent

51:07and the results of one agent goes to the next agent

51:08and the next agent and you connect them together

51:10and they go in sequence.

51:11Sequential.

51:12Concurrent, that's what you just saw.

51:13The agents working in parallel

51:16and then the result comes back to, you know,

51:20once they've all completed.

51:21Handoff, a little bit interesting.

51:22You have like a shared context and so kind of the brain

51:24of the agent gets handed off between different agents.

51:26This is good when you kind of have a sequential flow

51:29but you want to have the same state between them.

51:32Group chat, this is a very powerful one to kind of sprinkle

51:34in your more complex processes

51:36where you have two agents talk back and forth.

51:38This is kind of what Salman saw, was showing us

51:41where you have these agents talking back

51:42and forth and iterating.

51:43And often you can do like an author critic pattern

51:45or a worker reviewer pattern where one agent comes

51:48up with some results and then you have a critic gives it

51:50feedback and you have these agents go, you know, two, three,

51:53ten, 20 iterations

51:55and significantly improve the results over time

51:57that you get out of them.

51:59And then two other more complex flows, Magentic, which I'll talk

52:02about in a second, and then workflow processes.

52:04So this is using our process framework directly

52:06to build custom workflows.

52:09So let's take a look at what that looks like.

52:11Let's dive into Magentic specifically.

52:14So Salman talked about Magentic.

52:16Magentic One is a pattern that was developed

52:18by Microsoft Research, by the AutoGen team.

52:21And really what it is, as Salman was mentioning,

52:23was it's a pattern where your coordinator agent gets a task

52:28and it generates a task ledger out of that.

52:30And it works its way through the task ledger and it checks to see

52:35if the agents it's working

52:36with is making progress towards completing that goal.

52:38And if it doesn't, it'll go back and it'll change the plan

52:41and it'll try something else.

52:43So you end up with these kind of self-healing processes.

52:45And what I want to show you, actually,

52:48Salman showed you a demo of that working.

52:50I'm going to show you guys a demo of it not working,

52:53which I think is really interesting.

52:54So this is a recording I did.

52:57This is an earlier.NET version

52:59of Magentic One running on Semantic Kernel.

53:03And what's really interesting here is you can see how these

53:08systems are made.

53:09We have these patterns that you can plug into.

53:12So I'm creating an agent.

53:12This one's got a coder agent and a researcher agent

53:15and an orchestrator agent.

53:16I think there's a few more agents in here as well.

53:18And we create this agent team.

53:20And then we register that team together.

53:21We put all those agents together.

53:23So we have our coordinator and then we have each

53:24of these sub-agents that are used by the coordinator agent.

53:27And so I'm going to run this.

53:29And this instance is where I ran it, I'm asking kind

53:32of a more complex question.

53:34Calculate the distribution

53:35of the top 20 largest cities in the USA.

53:38And we initiate that task.

53:39And so now what it's doing is what we saw in that flowchart.

53:41It's building that plan.

53:43It's figuring out.

53:44It's analyzed the task.

53:45It's kind of building a plan out of it.

53:47You'll see a couple responses going back

53:48and forth here with token usage.

53:50And then now that it's generated a plan,

53:52it's going to pick the agents it wants to use

53:54to accomplish that plan.

53:56And so it's now built this plan where it needs to search

53:57and retrieve the latest data from the web.

54:00It needs to do some math on that.

54:01And then it's going to generate a chart at the end.

54:04But what the Magentic system didn't know is

54:06that I didn't configure one of the agents properly.

54:09So there's agents here.

54:10There's an agent going up to the web searching for data.

54:13There's now a coding agent that's figuring

54:16out the distribution of the population of the cities.

54:20But the agent that is supposed to generate the chart at the end

54:24of it, the visualization,

54:25I actually didn't configure properly

54:27when I was recording this demo.

54:28So you'll see here it'll come back and it'll say, you know,

54:31please create a visualization

54:32for this population distribution.

54:34And it says, ah, I can't do it.

54:36And that was my fault.

54:36That was user error.

54:37I didn't configure the agent properly.

54:40And so it'll go back to the orchestrator agent

54:42and the orchestrator agent will try again.

54:44It'll say, you know, please,

54:46please can you create this visualization.

54:48It sends this back.

54:49It evaluates its plan.

54:50It sends it back.

54:52And our illustrator agent again says, hey, I can't do it.

54:54I can't produce the visual representation.

54:55I just keep getting an error code.

54:57I don't know what to do to fix this.

54:59So it's now tried twice.

55:01And so now it goes back to the orchestrator agent.

55:02The orchestrator says, okay, this agent is not working.

55:05I'm going to try a different plan.

55:07And so it generates a new plan here.

55:08And we'll see, hopefully in a second --

55:11well, I know what's going to happen

55:12because this is a recording,

55:13is that it actually asks a different agent

55:16to generate an ASCII visualization.

55:18So it didn't generate a chart.

55:19You couldn't do it with an image, but it was able

55:21to figure something out.

55:22[ Applause ]

55:23So that's a really powerful way.

55:25And I think it illustrates really nicely these cases

55:27where we have this LLM-driven flow.

55:29And of course, you want this often.

55:30You want this kind of creativity to come from your agent systems.

55:34But of course, sometimes you don't.

55:36Sometimes you want a process-driven flow.

55:40And so I will touch on that real quick.

55:41I know we're running out of time.

55:43So I'm just going to flip over actually

55:44to number two here real quick.

55:48So this is actually the sample that Scott Hanselman and I wrote

55:52for his session yesterday, where he has a process

55:56that is post-processing his podcasts.

56:03So if we look at this process here, very simple process,

56:09not as complex as the one Salman showed,

56:11but it's kind of going through.

56:12And one of the nice things when you're building stuff

56:14in process framework in Semantic Kernel is you can have some

56:17of these steps in the process be --

56:20What we have on the right here is our process going step

56:24after step.

56:26And if we run this -- I'll just do a.NET run here real quick.

56:30Oops.

56:33I found.NET run.

56:37Oh my goodness.

56:38Okay.

56:39So if you run this, it's going to go and it's going

56:40to post-process the podcast the same

56:42as we saw kind of yesterday.

56:44And one of the nice things with building a process framework

56:46with Semantic Kernel, there's cases where you need agents,

56:48there's cases where you need AI.

56:50So if we look and it's cases where you just want to run code.

56:52So you can see here each of these steps, we have some

56:54of them are agents, some of them are just services that we have.

56:59So we talk to our transcription service, which isn't an agent,

57:01it's just a service that we have available.

57:03And we're able to run all those things in code

57:06and have these very kind of complex business processes

57:08that combine agentic steps and non-agentic steps.

57:12And so we can see when this is running.

57:14The other thing I want to show that Scott didn't get

57:17to show you is being able

57:19to see telemetry coming out of the system.

57:22So if I do a search here, actually I'll just do the ones

57:24that are already loaded since the process is still going,

57:26we can hook up our process framework

57:28to Application Insights and if I click on this, we can see all

57:34of our agents running.

57:35This is one I did earlier today.

57:38We can see our timeline of agents running and we can see,

57:40okay, our processing or getting the transcript,

57:42that took a long time.

57:44Then our generate our nodes took a little bit less time.

57:46We can drill in and we can see all the data that is coming off

57:48of our agent system here in Application Insights.

57:51Okay, one last thing I want to show real quick.

57:55I don't know if I have time to show the whole thing,

57:57but we also have A2A support within Semantic Kernel.

58:00This is brand new and actually we haven't pushed it

58:02to main yet.

58:03We were kind of waiting for some things.

58:04I don't know if you guys saw,

58:05A2A actually did a big update today

58:07if you're following it closely, so we're going to fix that

58:09and we'll get it up into main.

58:11But you can now build A2A servers within Semantic Kernel

58:14and you can connect to A2A agents

58:16from Semantic Kernel as well.

58:18So that's a sample we have here.

58:19I don't think I have time to show it.

58:20We're kind of running out of time.

58:22But very easy to create your agents with Semantic Kernel.

58:28Your A2A endpoints, you can just use --

58:32if you're using ASP.NET Core, if you're familiar with that,

58:34you can map your A2A endpoint

58:36and now you can host those directly in Semantic Kernel.

58:38And of course, you can connect to them very easily as well

58:41by just specifying the endpoint.

58:44And we will go and retrieve -- where do I do that?

58:47Here somewhere, I think it's in here.

58:49And then we will go and retrieve the endpoints

58:52for that A2A server and then you can talk to them directly.

58:55Okay, I'm going to go back over to slides and we're going

58:57to wrap up real quick.

59:00Okay, let's do this.

59:02Okay, I do want to talk about a customer, ASUS,

59:05kindly provided us a case study where they've been able

59:08to build an assistant using Azure Open AI service and PTUs

59:14to provision their assistant

59:15and then now their next generation assistant they're

59:17working on uses Semantic Kernel and Agent Service

59:20and actually voice agents to create an interactive flow.

59:25Ooh, it's playing sound.

59:26Computer Voice: Gaming graphics cards

59:27that will suit your needs.

59:28Let me know if you'd like more details or have any questions.

59:32SHAWN HENRY: So you can see they're able to kind

59:33of connect these things together.

59:34They have a multi-agent system.

59:36You can see the diagram here on the left.

59:37One thing that I think is really interesting, too, that they did

59:40with their MCP servers is they put them behind API management.

59:43This is a great way if you're using these MCP servers

59:45and you want to control which agents

59:47and which processes have control of them, put them behind APM.

59:52Okay, wrapping up.

59:53We talked about single agents in the Agent Service.

59:55We talked about single agents, Semantic Kernel.

59:58We talked about multi-agents in the service.

1:00:00We talked about orchestrating them with Semantic Kernel.

1:00:02And we talked about the difference

1:00:03between process-driven flow, directed flow, workflows,

1:00:06and LLM, non-deterministic flow.

1:00:09And we had a demo fail.

1:00:11That was our non-deterministic flow.

1:00:13We had a connectivity fail.

1:00:15I think all our demos worked.

1:00:16I think we were pretty good there.

1:00:18And so to bring it all together, we saw Azure AI Foundry

1:00:23as a service to build your agents.

1:00:24You can select different models.

1:00:26You can select different tools.

1:00:27You can connect to different resources.

1:00:29You can store things in CosmosDB.

1:00:31You can use Azure AI Search.

1:00:34You can use grounding with Bing, which we showed.

1:00:37And then you can use Semantic Kernel to connect agents

1:00:40into the open agentic web with external API support,

1:00:43MCP servers, A2A servers, and then also connect

1:00:47into M365 ecosystem through the M365 Agent SDK, which allows you

1:00:51to now get your agents hosted from Foundry into Teams,

1:00:55into M365 Copilot, into Messenger,

1:00:58into Twilio, all these places.

1:00:59Okay, I'm about to be hooked off stage.

1:01:01Thank you, everyone.

1:01:02A bunch more sessions available.

1:01:04Thank you for your time.

1:01:05SALMAN QUAZI: Thank you.

1:01:06SHAWN HENRY: And one last thing.

1:01:08All the demos for today are available --

1:01:10oh, they kicked us off.

1:01:11There's a QR code.

1:01:12Let me see if I can go back.

1:01:13No, they're not going to let me.

1:01:14All right.

1:01:15Go to the Build site where you can see our feedback,

1:01:20and you can see links to our source code there.

1:01:22[ Music ]

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.