You're someone who I think cares a lot about the craft of things. One of the knocks on using agents for coding is it gets rid of some of that feeling or something like that. How do you feel about that?
I love the fact that my people, makers writ large, so software engineers or mechanical engineers or woodworkers or potters, if you are really passionate about what you do, you're going to have very strong opinions about how you do it. I've been a woodworker for almost as long as I've been a programmer. This is not the first moment in the past four decades where the nature of software development has changed in a non-trivial way. Like if agents are going to be useful, they have to take action on your behalf. They have to be able to use tools and make changes in systems and consult information sources that are diverse and rich. And in order for that to really be great, you need an ecosystem that looks a lot like the internet. If you have a source of information, you already have a website, you already have an API that's doing something for people out there, like you've got to figure out how to plumb things through where agents can talk to those things. Like one of the things as CTO that I've been pushing for at Microsoft is I want all of our systems internally to speak a standard protocol to all of the agents that we're writing inside of Microsoft. Be curious, try stuff. And if it works for you, use it. And if it doesn't, don't.
Kevin, welcome to the show.
Oh, thanks for having me.
One of the things that's interesting is that I was here last year. And you said two things, there were two big themes. One was agents are going to be everywhere. That's one of the things you said, which I think really came true. That was very refreshing. Another thing is I noticed a big emphasis last year on scaling laws. There were a lot of graphs of like we're building big infrastructure, we're building these bigger models and every two years we're going to get these big performance improvements. This year the emphasis is really on the agentic web. So what has changed? What have we learned from last year to this year?
Yeah, I think there's a bunch of things that have changed. Like one of the things is that I think last year people were really in this state of mind that they were doubting that the scaling laws were going to continue to work really well. Whereas I think we've demonstrated year after year that they are intact and working quite well. That's not a thing that people need to be reminded of anymore. And I think the other thing too that's happened honestly is that the reasoning capabilities of the models has actually gotten a little bit ahead of what we're using the models to do in products. I've been talking a lot lately about this thing called the capability overhang. And I think we actually have some work to do collectively across the whole industry to close the gap between what the models are actually capable of and what we're delivering to users of that capability.
So that's one of the big thematic things why scaling laws might not be as interesting to talk about at this year's Build as last. And then the other thing too is that we've just discovered as all of these agents have emerged over the past year and so both the number of agents and the amount of time that people are spending doing stuff inside of these agents or with these agents, is that there's a bunch of other stuff other than reasoning that has to get sorted out in order to make them as useful as they should be. So the things that I was talking about at the keynote today at Build were, yeah, we need better agentic memory. Our agents right now, because memory is constrained in a bunch of interesting ways, they're a little bit transactional. So you use them for one thing and memory is coherent across the course of that task, but then it may or may not completely go away and you're starting from scratch the next time, which really inhibits your ability to delegate increasingly complicated tasks to these things.
And then there's just this real issue that if agents are going to be useful, they have to take action on your behalf. They have to be able to use tools and make changes in systems and consult information sources that are diverse and rich. And in order for that to really be great, you need an ecosystem that looks a lot like the internet where if you have a source of information, you already have a website, you already have an API that's doing something for people out there. Like you've got to figure out how to plumb things through where agents can talk to those things. And where all of the incentives are aligned for everyone to go have all of this stuff participating in ways that make sense to them in this agentic web. And so I think that is the big story this year. You've seen the first glimpses of real progress with super awesome simple open protocols like MCP that are serving the same purpose in this agentic web as HTTP does on the internet and where you have things like NL Web that are serving the same moral equivalent purposes HTML does on the internet. And so I think you're going to see these simple things that are composable and layering and just lots of activity in the open community and a bunch of things hopefully getting to ubiquity so that agents can actually do stuff.
Right. So I think to play that back, one of the things I hear is like we have agents, agents are starting to work, and in order to make them powerful, agents need access. They need access to whatever is out on the internet, whatever is on your computer, all that kind of stuff. And you need basically protocols and processes for agents to be able to access that stuff. And so you're looking at different parts of the stack. So like the runtime layer where you're building memory and all this kind of stuff and then MCP which allows you to connect into the wider internet to get more information into agents. I guess why is that important to Microsoft and what role do you want to play in that kind of an ecosystem?
Well, look, I think there are two maybe three things that are super important. So one is like we make agents and in order for our agents that we're building for folks to be useful, we need to solve these problems inside of these agents. And even if you scope it down narrowly to enterprise agents, one of the things as CTO that I've been pushing for at Microsoft is I want all of our systems internally to speak a standard protocol to all of the agents that we're writing inside of Microsoft so that we're not exposing the entire world to Conway's law, which is, you know, organization — Conway's law is this funky thing in compilers where this guy Conway said that the number of stages or passes in your compiler is going to be dictated by the number of teams you have working on the compiler.
Correct. You ship your org chart. And so, inside of the confines of a company like Microsoft, you don't want to be shipping your org chart when you are building your agents. And it's just kind of a horror show to watch as an engineer all of this inefficient building when you don't have those standard protocols and services that everybody's using. But I think if you really imagine what agents could do and what users, like not me, but people who are hoping these things can be more useful than they are right now, you need things to start happening the same way that they were happening with the web. And I kind of see it right now. MCP is a really great example. It is a really simple protocol that solves a really important problem not just for people who are making agents and building platform infrastructure, but for users of these systems who want them to be more useful and for people who are providers who are like, hey, I want to be participating in this new agentic web. People are doing less of one thing which is, I knew how to connect to, and they're sitting here using these agents, how do I get my stuff wired up into this and how does it make sense for me even from a business model perspective to do that? And so that's the two things. It's like make our own agents more useful and then we're a platform company. Even more important than the agents that we're going to write ourselves, that platform layer that Microsoft has been building in technology for 50 years, we just want to make sure that we are helping solve the problems that are emerging as this agentic web is happening.
Yeah. It's been really cool to see you guys leaning really hard into MCP and integrating it into all of Windows and all that kind of stuff. That's really awesome. And it brings up for me, I've been starting to hear rumblings from people who are thinking a lot about MCP that the security model needs a lot of work. And I'm curious for your take on that because you're making a lot of comparisons between this stack and the internet stack. And the internet has a bunch of things in its security model like the same origin policy that make sure that if a website is serving you code, it's only able to execute on its own data. MCP doesn't really have that. So what do you think the right security model is for this?
Well, look, I don't know that I know what exactly the right security model is, but the interesting thing about MCP is it is so coherently simple that it's going to be relatively easy for the community to decide what the security model is. Yeah, we have a bunch of enterprise things that we care a lot about and that we're doing really good work with the MCP team to get done. So we need agents to have identities so that you can build entitlement systems so you can say this agent is acting on behalf of this person and they're entitled to see these resources in this system. And even having a way for an agent to sort of go query a bunch of systems and say, here's the thing that I would like to do, these are the systems I need to touch in order to do the thing, what entitlements do I need to ask for in order to do this? And so I can request permission from the user, the person who's delegated this task to me, can I present to them, can I have permission to these things in order to do this thing you asked me to do? Yes or no. And then for the administrators of all of these systems, hey, is it okay for all of this to be happening? And so all of that's going to be relatively straightforward to do — not easy, but relatively straightforward to do on top of MCP. And the important thing is let's do it in an open way. We don't need it to be proprietary to our agents or our systems. We've just got to figure out how to get this done where things kind of work like the web works.
Yeah. Well, it's an interesting question for me because I feel like there's maybe two potential models or two potential go-to-markets for AI stuff that you guys have been talking about. One is this sort of verticalized model where you own the model and you own the UI layer, you do all the applications and everything in between. And the thing about that model, which maybe you could say the App Store Apple iPhone model is a good example of that, is you can guarantee security in a lot of ways. And an open model, it's harder to do security stuff, but you get much more innovation basically because there's no central authority. So how did you guys think about making that decision?
Yeah. So, look, I know that that's the argument that a lot of people make. I think it might be a false dichotomy. There is a thing that you have in these open systems where they are permissionless. And there's a real advantage in having permissionless innovation. So the thing that as an individual excites me most about what's happening right now is the extent to which you can go innovate and build things without having to seek someone's permission. Where you have to have them grant you permission for distributing your things to other people and having all of these complicated gatekeeping things that are sitting in between you who are the person who had the idea and the people who might benefit from it. I think some of these middle layers that we have that have emerged over the past handful of years just aren't contributing much value honestly to the two parties in the transaction that matter, which is the person who did the hard work to make a thing and then the people who are going to either spend their attention or their money or some other currency that's valuable to access the thing. So I get kind of excited about that. And so that's one of the reasons why we've made the decisions that we wanted to.
But I also think that there are ways that you can get real robust security in these systems like leveraging some of the AI capability that you have now. Where you may be able to have better security if you have an agent that you are running that is attending to your personal security requirements — these are things I'm willing to share, these are things I'm not willing to share — and it has some kind of knowledge or risk assessment. And for instance, my wife this morning while I was getting ready to jump on stage, I got this flurry of emails because I'm the backup security account for my wife, where somebody was fiddling around with two-factor authentication on her account. And the first thing I did was I texted her. I didn't want to email her because somebody might have gained unauthorized access to her email account. I texted her, I was like, hey, are you screwing around with the configuration here? She's like, yes. And so you could imagine having an agent that is privy to a whole bunch of your communication modalities, being able to notice that something funky is going on and then using a bunch of resources to triangulate whether that's legit activity or illegitimate activity. So I think there's just a bunch of stuff like that where you can have both, right? I don't think it needs to be one or the other as you framed it.
Yeah, that makes sense. One other thing that I'm curious about is it just seems pretty clear that software engineering is changing. And you're someone who's been involved in software engineering for a long time. You're someone who also I think cares a lot about the craft of things, like the craft of how things are made. We were talking earlier about you do a lot of ceramics, you make your own bags, you love having your hands in things. And I think one of the knocks on using agents for coding is it gets rid of some of that feeling or something like that, which I don't necessarily agree with, but I'm sort of curious for you, as someone who cares about the craft of code, looking into this future of coding with agents, how do you feel about that?
Well, so let me start by saying that I love the fact that my people — and when I say my people, I mean makers writ large. So software engineers or mechanical engineers or woodworkers or potters or just sort of pick your thing where people are trying to create things from raw materials or nothing. If you are really passionate about what you do, you're going to have very strong opinions about how you do it, the tools that you use, the materials that you use, like how things get put together. It is a necessary thing for you to be great at your job. The interesting thing is people have lots and lots of different opinions.
And one of the things you said, like I've been doing it for a long time. Like I'm an old fart. I wrote my first program when I was 12, which means I've been programming for 41 years. And so the thing that you get to see when you've been doing a thing for a very long time is this is not the first moment in the past four decades where the nature of software development has changed in a non-trivial way and where people have very strong opinions about the change and what it means. And so I think the reality is that people will have choice. Like I still when I go into a text editor — I probably shouldn't say this because we make Visual Studio Code — I'm such an old recalcitrant fart that I still use VI. I use Vim at least. But my text editor of choice is this extremely antiquated thing. And I just refuse to go use something different, even though I know for sure that that is sub-optimizing a part of what I'm doing. But I make the decision anyway because I get to choose.
And then in other aspects of my making, like either software or something else that I'm doing, I will be like, okay, the important thing here is not the way that I'm doing this particular part of it, it's the outcome that I'm trying to get to. And I'm going to use the most powerful or most convenient way to go get to the outcome. And I don't care who's going to throw rocks at me for doing it. And it's literally everywhere. I've been a woodworker for almost as long as I've been a programmer. And when I was a teenager, the big debate was like, oh, are you a real woodworker if you use power tools? Real woodworkers only use hand tools. There's still a little bit of that debate today. But the real debate is like, are you a real woodworker if you use CNC tools, computer-controlled power tools versus just power tools.
And I understand it. I actually think it's interesting, the debate itself. But sometimes people are going to make different choices because they value something different than you do. If you value the process more than you value the outcome, sometimes you'll make different decisions than people who value the outcome more than the process.